~/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
@@ -213,30 +213,30 @@
-/usr/share/NAnt/bin/NAnt.CompressionTasks.dll baffb49045b5ac80f8ecbb2bce3e96e4d434d5db8b3e3963b8b69682f48ee62c 0
-/usr/share/NAnt/bin/NAnt.CompressionTasks.dll.mdb 7a9751d2368cc9a6428c38b2e7980260887eae0af73d0d97526a5053e5248a2b 0
-/usr/share/NAnt/bin/NAnt.CompressionTasks.xml 2f7a0b851228b281df81bca62060dfbaad20ae954b5c6341b6dd48cc2bcb96d8 0
-/usr/share/NAnt/bin/NAnt.Core.dll a1776ca83af50ebe6bffeeefa8414151a0db6e24cb2fc47d4d5c3a6b2eb0358d 0
-/usr/share/NAnt/bin/NAnt.Core.dll.mdb c5f3dfe0d0feac4a3dbe1b9e28c23f07213b855b569bea0b692d314993722f62 0
-/usr/share/NAnt/bin/NAnt.Core.xml affa19616a911abf371d1968a12a74306e21d571201ff39385cf4d17be3d88d2 0
-/usr/share/NAnt/bin/NAnt.DotNetTasks.dll b5bd28a0f7adab8ad5316ead964823b4e67775af0b0387e5598a647367eec76b 0
-/usr/share/NAnt/bin/NAnt.DotNetTasks.dll.mdb 6b97e197b8d6a48bf8ed6a18774c3cb69560dabeff1c99c3980470408a8b94e9 0
-/usr/share/NAnt/bin/NAnt.DotNetTasks.xml 2afd3da27c683eac443fe5476d2644b8d7a009e6485a8f666d6f6a7adab201e7 0
-/usr/share/NAnt/bin/NAnt.NUnit.dll b8ed9acd41a396081e323b70e27617e377fab8d351278d7e27b1463445324e8b 0
-/usr/share/NAnt/bin/NAnt.NUnit.dll.mdb 3821ad5fc9cd4ddfd2b1cefd5cdd83c6030b6903b0352dc251fa910d5a995f4e 0
-/usr/share/NAnt/bin/NAnt.NUnit.xml 88ace49b289fdc54a740e5ecca79d44d887c28628691199e42bf4ff0badc0dd4 0
-/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll d59307fa1ca3a17a8258b98beb018850d2a36d2fbefb59845493060eccfd45ef 0
-/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll.mdb 71934e06cb2ff4f8e6c8a0edecff52df3f7f2436f107c916ab5efd5cddc56568 0
-/usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml 91dc6f5c3f93b12d4819e5290bf2b939c52c46dd562da0a5b2ef8a76ffe77d4f 0
-/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll 87df09a74c731ed59479933b9b0f4b85be452457e7effe0398410a66aab51945 0
-/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll.mdb 9188621be138977a5aa612416258ac07acdd224b6be7fadacca1a76a0e26a5a4 0
-/usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml 4e24b2f085254c98125347caefc70d5a26bab418489a0549eac1819feba12186 0
-/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll 9ce7124937ed982d594fe87c0ef8fd74cdc7ce84dbbb984363dc0d2dcadc7130 0
-/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll.mdb 1e5c8aca02f5a7ef12fd20fa3d16d1ecc63bf5e1fbbc124c4c6a7da220083ec7 0
-/usr/share/NAnt/bin/NAnt.SourceControlTasks.xml 42da43954fad4dbeb1652e11cf18b75f0565b256afe62230ba66a781232fb148 0
-/usr/share/NAnt/bin/NAnt.VSNetTasks.dll f5b1d5f7b23c366209e5646c6fac1dada3bddbfad3df49203991caf8d52b0820 0
-/usr/share/NAnt/bin/NAnt.VSNetTasks.dll.mdb ef74489b2667c2555eefd85b47be30f91f273d8d4505004975c34dfa2eef5215 0
-/usr/share/NAnt/bin/NAnt.VSNetTasks.xml 1ed02a1d1e15b358947834aab08bd1810909884dc56d5dc67dbbab1ac8cb40ab 0
-/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll b5922abed45d8e746bf715875052070ee12c926ecdd4b9d98ecaa2c9930c0c42 0
-/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll.mdb 2a51422f774da643ea5a388031edd1e8e205b6a26958f4e372fc6d8c4a88daad 0
-/usr/share/NAnt/bin/NAnt.VisualCppTasks.xml b736fedf008f2763961d7554f3072211c5f72b8033c04f1dac3c379d950d472e 0
-/usr/share/NAnt/bin/NAnt.Win32Tasks.dll 2e37b5ce5474d85ed50c07adf0bebbfa10159ec718059e17edf77980d3dfbb77 0
-/usr/share/NAnt/bin/NAnt.Win32Tasks.dll.mdb bac7e19bd67bf15da8c94e356e9cdf9f66fb5e58ef53db8138eda1d2792b20dd 0
-/usr/share/NAnt/bin/NAnt.Win32Tasks.xml 0bf4bcad3025f5b3628c898914c297055bd9a887aa4ad4c3dbd0c9031153e63e 0
+/usr/share/NAnt/bin/NAnt.CompressionTasks.dll 0c2fcc59f57e1f33c3e829adc80c7f076ae00a3deb30efd835f78efddacb40f8 0
+/usr/share/NAnt/bin/NAnt.CompressionTasks.dll.mdb 1c434a5016a8c0f02ad41c774bc8a5db59ee04a4cf232c4c5bb44030b78c8a69 0
+/usr/share/NAnt/bin/NAnt.CompressionTasks.xml 4d4f8f792e3a31e02f693bb931931d0417334d89d3283f539b7e30df4b5fce8a 0
+/usr/share/NAnt/bin/NAnt.Core.dll c238e9da6c2957714ccc48f0ec7330d6a30adc2fc3ae4071a3dfc8fc66fd19ef 0
+/usr/share/NAnt/bin/NAnt.Core.dll.mdb 206f604aabfa603993a0bb3127f8cb2d394f1a43113850971cd93cef926799c5 0
+/usr/share/NAnt/bin/NAnt.Core.xml 95020fd1d47a0275a4ac3e33db95f2c684ba6c6e43405c79f5b963196f52275e 0
+/usr/share/NAnt/bin/NAnt.DotNetTasks.dll 08301706e60942819426c583dedb50c0f62cd718804b115570cebdf01cd8f280 0
+/usr/share/NAnt/bin/NAnt.DotNetTasks.dll.mdb 4be536c25fbda9f7edcf4c0e7116f2b983fd7d849e8b40d6b69b26526df0a6f2 0
+/usr/share/NAnt/bin/NAnt.DotNetTasks.xml 4784ab174d1e52e6b306a45c98e556617380527958b74e29fa62944631b077c2 0
+/usr/share/NAnt/bin/NAnt.NUnit.dll 543fdb1ca1a15cc8d95e8969da0275a15a7777f0236fb3f0fda8b812b2bdd3b7 0
+/usr/share/NAnt/bin/NAnt.NUnit.dll.mdb 819a2dff67f5a932e940dcf27eca9113508a515239aef57cf96058d2cc57709b 0
+/usr/share/NAnt/bin/NAnt.NUnit.xml 5d17dd15535f08feb79973d25c00b7412b066c6edab59a2a26c8d4558e0bb6b8 0
+/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll c9ec4c0f6d0688e6eab30728f51ed435551dea26089695a3ce33a6bcf095dec7 0
+/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll.mdb cf3d7d363d9e150983db0dac39c15c217302c3d0d05f6ea4e8743e720901b83d 0
+/usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml 5a98b4ce05c061ce2cc0b4a8a60987f3b617790aaded9e9b69fa502aaf5aa0a0 0
+/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll beb7e19ccadb487363900544c4e1c757b8c1189c93dc0b49966efb97c1dd7193 0
+/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll.mdb 6fcadb993c2f3134439051a7ab6eff8a715bc078286a5e839bc2a79b8f9e230e 0
+/usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml 7d622f302dc29ee80626d9b16bd57ab7c43590508fc3836674561dcf462b1ca8 0
+/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll 71f4738b341a5f36147a50c467fac3ed7001fb8e36ecbe639ac98e1ce21439f5 0
+/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll.mdb 9f55c4f8c0bc4a2cf5c46a639d82385ac0c23358bbe3f16375d72b7532d745c4 0
+/usr/share/NAnt/bin/NAnt.SourceControlTasks.xml 98a020da146c31e46ae20923ed332958d9358ee8730fa52e2819a9015ecc9372 0
+/usr/share/NAnt/bin/NAnt.VSNetTasks.dll 13cbbdf6463e8f445d8cbf1a331e65f6e9e3f1507ce056f4fd49694a264ad8cf 0
+/usr/share/NAnt/bin/NAnt.VSNetTasks.dll.mdb ef87e0ed3013632831159b8ea33b650c919ce3ec7b2f70bcd653bd80899bdf76 0
+/usr/share/NAnt/bin/NAnt.VSNetTasks.xml 2382c6bc0ced573b7dc836926a9ee68b42d14abc8afd497172fd450c71c98c84 0
+/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll 4e144a2c3fefc335cd13ca27699a52c99ca93827d645054a69cbdd0eb4d5b989 0
+/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll.mdb 7ac8123c987387685531daf6e741ec44003d0d17a37c206046aa8a79cabce12b 0
+/usr/share/NAnt/bin/NAnt.VisualCppTasks.xml 6f134d11c6856dee1792ec7af3a8f07cb761b0e9c352c30b85b0e31fcb630284 0
+/usr/share/NAnt/bin/NAnt.Win32Tasks.dll 671353d7967c2a0e9aaaff6788b86866082a469eb4905a3f64873a140b53c1c7 0
+/usr/share/NAnt/bin/NAnt.Win32Tasks.dll.mdb 58e8db77adbfedee590e2e4b81e78c2f230b6c288a555092fecb4bd884a9496b 0
+/usr/share/NAnt/bin/NAnt.Win32Tasks.xml 71c5df6465e87185ddcd50eddb06596910c09ddf49a95e30562551932e8204c2 0
@@ -247,2 +247,2 @@
-/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll a6accd28d2ff221276d45e2446c8e6d7f0a18da1164f6568c9be204a98caee6e 0
-/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll.mdb 50fe81a08e91adb39f547be6932709d6cbd7450f98130fc408828282a568537c 0
+/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll 9e87ae477dd349e6bc2ea4e4d3740599643d986eed97a148fd6fbb73fb72ca9c 0
+/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll.mdb 1d8283bdc3320b65c28e6d4c22dc41b6448f3cac05074ae455ecccf98d7c26cc 0
@@ -253,3 +253,3 @@
-/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll ecd32253baac9b4019ec4353ec2aeba1b695a134498c2ecde55cd79ba4fabea7 0
-/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll.mdb 9d41cb8974c6f6483104b727a22bb2faa5610160cafcfbbc1f8282e94093a284 0
-/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml 939bac3e87887896bd89d7c4e9acc23a6847e027db0a1b545cf90ae2e7e2800d 0
+/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll eb79de729c98faedcb3fd0123f696b10b5bb6abf56b0622fadf62d135edc5eca 0
+/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll.mdb 23501318ef0549b98b864e0088ce69441368341f36439e17874ddd3868f373db 0
+/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml 31f383788e88cde21cbad35527d08e52f28421836764337161d1005562541086 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)
@@ -64,6 +64,293 @@
 
 .namespace NAnt.Compression.Tasks
 {
+  .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 74 61 72 00 00 ) // ...untar..
+
+    .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 1
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x22a8
+	// Code size 14 (0xe)
+	.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
+
+    // method line 2
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
+    {
+        // Method begins at RVA 0x22b8
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method UnTarTask::get_SrcFile
+
+    // method line 3
+    .method public hidebysig specialname 
+           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22d3
+	// 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_0008:  ret 
+    } // end of method UnTarTask::set_SrcFile
+
+    // method line 4
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x22e0
+	// 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_0007:  brtrue IL_0022
+
+	IL_000c:  ldarg.0 
+	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:  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.UnTarTask::_destDir
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
+
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method UnTarTask::get_DestinationDirectory
+
+    // method line 5
+    .method public hidebysig specialname 
+           instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x231c
+	// 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_0008:  ret 
+    } // end of method UnTarTask::set_DestinationDirectory
+
+    // method line 6
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
+    {
+        // Method begins at RVA 0x2328
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Compression.Types.TarCompressionMethod	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method UnTarTask::get_CompressionMethod
+
+    // method line 7
+    .method public hidebysig specialname 
+           instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2343
+	// 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_0008:  ret 
+    } // end of method UnTarTask::set_CompressionMethod
+
+    // method line 8
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x2350
+    } // end of method UnTarTask::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.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 DestinationDirectory ()
+	{
+		.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..
+
+		.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.UnTarTask
+}
+
+.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 9
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x25fc
+	// 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 10
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
+    {
+        // Method begins at RVA 0x2604
+	// 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 11
+    .method public hidebysig specialname 
+           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x261f
+	// 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 12
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
+    {
+        // Method begins at RVA 0x262c
+	// 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 13
+    .method public hidebysig specialname 
+           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2647
+	// 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 14
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x2654
+    } // 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
   {
@@ -81,11 +368,11 @@
     .field  private  class [mscorlib]System.Collections.Hashtable _addedDirs
     .field  private  class [mscorlib]System.Collections.Hashtable _fileEntries
 
-    // method line 1
+    // method line 15
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x27d4
 	// Code size 54 (0x36)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -108,11 +395,11 @@
 	IL_0035:  ret 
     } // end of method ZipTask::.ctor
 
-    // method line 2
+    // method line 16
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
     {
-        // Method begins at RVA 0x2088
+        // Method begins at RVA 0x280c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -127,11 +414,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_ZipFile
 
-    // method line 3
+    // method line 17
     .method public hidebysig specialname 
            instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x20a3
+        // Method begins at RVA 0x2827
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -141,11 +428,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_ZipFile
 
-    // method line 4
+    // method line 18
     .method public hidebysig specialname 
            instance default string get_Comment ()  cil managed 
     {
-        // Method begins at RVA 0x20b0
+        // Method begins at RVA 0x2834
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -160,11 +447,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_Comment
 
-    // method line 5
+    // method line 19
     .method public hidebysig specialname 
            instance default void set_Comment (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20cb
+        // Method begins at RVA 0x284f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -175,11 +462,11 @@
 	IL_000d:  ret 
     } // end of method ZipTask::set_Comment
 
-    // method line 6
+    // method line 20
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_Stamp ()  cil managed 
     {
-        // Method begins at RVA 0x20dc
+        // Method begins at RVA 0x2860
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -194,11 +481,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_Stamp
 
-    // method line 7
+    // method line 21
     .method public hidebysig specialname 
            instance default void set_Stamp (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x20f7
+        // Method begins at RVA 0x287b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -208,11 +495,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_Stamp
 
-    // method line 8
+    // method line 22
     .method public hidebysig specialname 
            instance default int32 get_ZipLevel ()  cil managed 
     {
-        // Method begins at RVA 0x2104
+        // Method begins at RVA 0x2888
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -227,11 +514,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_ZipLevel
 
-    // method line 9
+    // method line 23
     .method public hidebysig specialname 
            instance default void set_ZipLevel (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x211f
+        // Method begins at RVA 0x28a3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -241,11 +528,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_ZipLevel
 
-    // method line 10
+    // method line 24
     .method public hidebysig specialname 
            instance default bool get_IncludeEmptyDirs ()  cil managed 
     {
-        // Method begins at RVA 0x212c
+        // Method begins at RVA 0x28b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -260,11 +547,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_IncludeEmptyDirs
 
-    // method line 11
+    // method line 25
     .method public hidebysig specialname 
            instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2147
+        // Method begins at RVA 0x28cb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -274,11 +561,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_IncludeEmptyDirs
 
-    // method line 12
+    // method line 26
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Flatten ()  cil managed 
     {
-        // Method begins at RVA 0x2154
+        // Method begins at RVA 0x28d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -293,11 +580,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_Flatten
 
-    // method line 13
+    // method line 27
     .method public virtual hidebysig newslot specialname 
            instance default void set_Flatten (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x216f
+        // Method begins at RVA 0x28f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -307,11 +594,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_Flatten
 
-    // method line 14
+    // method line 28
     .method public hidebysig specialname 
            instance default class NAnt.Compression.Types.ZipFileSetCollection get_ZipFileSets ()  cil managed 
     {
-        // Method begins at RVA 0x217c
+        // Method begins at RVA 0x2900
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -326,11 +613,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_ZipFileSets
 
-    // method line 15
+    // method line 29
     .method public hidebysig specialname 
            instance default void set_ZipFileSets (class NAnt.Compression.Types.ZipFileSetCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2197
+        // Method begins at RVA 0x291b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -340,11 +627,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_ZipFileSets
 
-    // method line 16
+    // method line 30
     .method public hidebysig specialname 
            instance default valuetype NAnt.Compression.Types.DuplicateHandling get_DuplicateHandling ()  cil managed 
     {
-        // Method begins at RVA 0x21a4
+        // Method begins at RVA 0x2928
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -359,11 +646,11 @@
 	IL_000e:  ret 
     } // end of method ZipTask::get_DuplicateHandling
 
-    // method line 17
+    // method line 31
     .method public hidebysig specialname 
            instance default void set_DuplicateHandling (valuetype NAnt.Compression.Types.DuplicateHandling 'value')  cil managed 
     {
-        // Method begins at RVA 0x21bf
+        // Method begins at RVA 0x2943
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -373,11 +660,11 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_DuplicateHandling
 
-    // method line 18
+    // method line 32
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
     {
-        // Method begins at RVA 0x21cc
+        // Method begins at RVA 0x2950
 	// Code size 54 (0x36)
 	.maxstack 2
 	.locals init (
@@ -404,11 +691,11 @@
 	IL_0035:  ret 
     } // end of method ZipTask::get_Encoding
 
-    // method line 19
+    // method line 33
     .method public hidebysig specialname 
            instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
     {
-        // Method begins at RVA 0x220e
+        // Method begins at RVA 0x2992
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -418,18 +705,18 @@
 	IL_0008:  ret 
     } // end of method ZipTask::set_Encoding
 
-    // method line 20
+    // method line 34
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2218
+        // Method begins at RVA 0x299c
     } // end of method ZipTask::ExecuteTask
 
-    // method line 21
+    // method line 35
     .method private hidebysig 
            instance default void CleanUp ()  cil managed 
     {
-        // Method begins at RVA 0x2808
+        // Method begins at RVA 0x2f8c
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  nop 
@@ -524,482 +811,16 @@
 
 .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 22
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2821
-	// 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 23
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
-    {
-        // Method begins at RVA 0x282c
-	// 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 24
-    .method public hidebysig specialname 
-           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2847
-	// 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 25
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
-    {
-        // Method begins at RVA 0x2854
-	// 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 26
-    .method public hidebysig specialname 
-           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x286f
-	// 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 27
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x287c
-    } // 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 UnZipTask
-  	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..
-
-    .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 28
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2c54
-	// Code size 7 (0x7)
-	.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
-
-    // method line 29
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
-    {
-        // Method begins at RVA 0x2c5c
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method UnZipTask::get_ZipFile
-
-    // method line 30
-    .method public hidebysig specialname 
-           instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2c77
-	// 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_0008:  ret 
-    } // end of method UnZipTask::set_ZipFile
-
-    // method line 31
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x2c84
-	// 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_0007:  brtrue IL_0022
-
-	IL_000c:  ldarg.0 
-	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:  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.UnZipTask::_toDir
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
-
-	IL_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method UnZipTask::get_ToDirectory
-
-    // method line 32
-    .method public hidebysig specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2cc0
-	// 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_0008:  ret 
-    } // end of method UnZipTask::set_ToDirectory
-
-    // method line 33
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
-    {
-        // Method begins at RVA 0x2ccc
-	// 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 34
-    .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2d0e
-	// 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 35
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x2d18
-    } // 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 UnTarTask
-  	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..
-
-    .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 36
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2ee4
-	// Code size 14 (0xe)
-	.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
-
-    // method line 37
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
-    {
-        // Method begins at RVA 0x2ef4
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method UnTarTask::get_SrcFile
-
-    // method line 38
-    .method public hidebysig specialname 
-           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2f0f
-	// 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_0008:  ret 
-    } // end of method UnTarTask::set_SrcFile
-
-    // method line 39
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x2f1c
-	// 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_0007:  brtrue IL_0022
-
-	IL_000c:  ldarg.0 
-	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:  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.UnTarTask::_destDir
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
-
-	IL_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method UnTarTask::get_DestinationDirectory
-
-    // method line 40
-    .method public hidebysig specialname 
-           instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2f58
-	// 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_0008:  ret 
-    } // end of method UnTarTask::set_DestinationDirectory
-
-    // method line 41
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
-    {
-        // Method begins at RVA 0x2f64
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Compression.Types.TarCompressionMethod	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method UnTarTask::get_CompressionMethod
-
-    // method line 42
-    .method public hidebysig specialname 
-           instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2f7f
-	// 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_0008:  ret 
-    } // end of method UnTarTask::set_CompressionMethod
-
-    // method line 43
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x2f8c
-    } // end of method UnTarTask::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.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 DestinationDirectory ()
-	{
-		.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..
-
-		.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.UnTarTask
-}
-
-.namespace NAnt.Compression.Tasks
-{
   .class public auto ansi abstract beforefieldinit ExpandBaseTask
   	extends [NAnt.Core]NAnt.Core.Task
   {
     .field  private  bool _overwrite
 
-    // method line 44
+    // method line 36
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x29fc
+        // Method begins at RVA 0x2050
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1010,11 +831,11 @@
 	IL_000d:  ret 
     } // end of method ExpandBaseTask::.ctor
 
-    // method line 45
+    // method line 37
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Overwrite ()  cil managed 
     {
-        // Method begins at RVA 0x2a0c
+        // Method begins at RVA 0x2060
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1029,11 +850,11 @@
 	IL_000e:  ret 
     } // end of method ExpandBaseTask::get_Overwrite
 
-    // method line 46
+    // method line 38
     .method public virtual hidebysig newslot specialname 
            instance default void set_Overwrite (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a27
+        // Method begins at RVA 0x207b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1043,11 +864,11 @@
 	IL_0008:  ret 
     } // end of method ExpandBaseTask::set_Overwrite
 
-    // method line 47
+    // method line 39
     .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 0x2a34
+        // Method begins at RVA 0x2088
 	// Code size 369 (0x171)
 	.maxstack 7
 	.locals init (
@@ -1219,11 +1040,11 @@
 	IL_0170:  ret 
     } // end of method ExpandBaseTask::ExtractFile
 
-    // method line 48
+    // method line 40
     .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 0x2bdc
+        // Method begins at RVA 0x2230
 	// Code size 91 (0x5b)
 	.maxstack 3
 	.locals init (
@@ -1297,11 +1118,11 @@
     .field  private  valuetype NAnt.Compression.Types.TarCompressionMethod _compressionMethod
     .field  private  class [mscorlib]System.Collections.Hashtable _addedDirs
 
-    // method line 49
+    // method line 41
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3238
+        // Method begins at RVA 0x2fa5
 	// Code size 50 (0x32)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1324,11 +1145,11 @@
 	IL_0031:  ret 
     } // end of method TarTask::.ctor
 
-    // method line 50
+    // method line 42
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
     {
-        // Method begins at RVA 0x326c
+        // Method begins at RVA 0x2fd8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1343,11 +1164,11 @@
 	IL_000e:  ret 
     } // end of method TarTask::get_DestFile
 
-    // method line 51
+    // method line 43
     .method public hidebysig specialname 
            instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3287
+        // Method begins at RVA 0x2ff3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1357,11 +1178,11 @@
 	IL_0008:  ret 
     } // end of method TarTask::set_DestFile
 
-    // method line 52
+    // method line 44
     .method public hidebysig specialname 
            instance default bool get_IncludeEmptyDirs ()  cil managed 
     {
-        // Method begins at RVA 0x3294
+        // Method begins at RVA 0x3000
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1376,11 +1197,11 @@
 	IL_000e:  ret 
     } // end of method TarTask::get_IncludeEmptyDirs
 
-    // method line 53
+    // method line 45
     .method public hidebysig specialname 
            instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x32af
+        // Method begins at RVA 0x301b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1390,11 +1211,11 @@
 	IL_0008:  ret 
     } // end of method TarTask::set_IncludeEmptyDirs
 
-    // method line 54
+    // method line 46
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Flatten ()  cil managed 
     {
-        // Method begins at RVA 0x32bc
+        // Method begins at RVA 0x3028
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1409,11 +1230,11 @@
 	IL_000e:  ret 
     } // end of method TarTask::get_Flatten
 
-    // method line 55
+    // method line 47
     .method public virtual hidebysig newslot specialname 
            instance default void set_Flatten (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x32d7
+        // Method begins at RVA 0x3043
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1423,11 +1244,11 @@
 	IL_0008:  ret 
     } // end of method TarTask::set_Flatten
 
-    // method line 56
+    // method line 48
     .method public hidebysig specialname 
            instance default class NAnt.Compression.Types.TarFileSetCollection get_TarFileSets ()  cil managed 
     {
-        // Method begins at RVA 0x32e4
+        // Method begins at RVA 0x3050
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1442,11 +1263,11 @@
 	IL_000e:  ret 
     } // end of method TarTask::get_TarFileSets
 
-    // method line 57
+    // method line 49
     .method public hidebysig specialname 
            instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
     {
-        // Method begins at RVA 0x3300
+        // Method begins at RVA 0x306c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1461,11 +1282,11 @@
 	IL_000e:  ret 
     } // end of method TarTask::get_CompressionMethod
 
-    // method line 58
+    // method line 50
     .method public hidebysig specialname 
            instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
     {
-        // Method begins at RVA 0x331b
+        // Method begins at RVA 0x3087
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1475,18 +1296,18 @@
 	IL_0008:  ret 
     } // end of method TarTask::set_CompressionMethod
 
-    // method line 59
+    // method line 51
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3328
+        // Method begins at RVA 0x3094
     } // end of method TarTask::ExecuteTask
 
-    // method line 60
+    // method line 52
     .method private hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x3804
+        // Method begins at RVA 0x3570
     } // end of method TarTask::<NULL METHOD SIGNATURE>
 
 	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
@@ -1536,6 +1357,185 @@
   } // end of class NAnt.Compression.Tasks.TarTask
 }
 
+.namespace NAnt.Compression.Tasks
+{
+  .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 7A 69 70 00 00 ) // ...unzip..
+
+    .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 53
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x35f2
+	// Code size 7 (0x7)
+	.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
+
+    // method line 54
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
+    {
+        // Method begins at RVA 0x35fc
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method UnZipTask::get_ZipFile
+
+    // method line 55
+    .method public hidebysig specialname 
+           instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3617
+	// 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_0008:  ret 
+    } // end of method UnZipTask::set_ZipFile
+
+    // method line 56
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x3624
+	// 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_0007:  brtrue IL_0022
+
+	IL_000c:  ldarg.0 
+	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:  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.UnZipTask::_toDir
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
+
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method UnZipTask::get_ToDirectory
+
+    // method line 57
+    .method public hidebysig specialname 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3660
+	// 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_0008:  ret 
+    } // end of method UnZipTask::set_ToDirectory
+
+    // method line 58
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    {
+        // Method begins at RVA 0x366c
+	// 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 59
+    .method public hidebysig specialname 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x36ae
+	// 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 60
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x36b8
+    } // 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.Types
 {
   .class public auto ansi sealed DuplicateHandling
@@ -1565,7 +1565,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3886
+        // Method begins at RVA 0x3884
 	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1580,7 +1580,7 @@
     .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 0x389c
+        // Method begins at RVA 0x3898
 	// Code size 50 (0x32)
 	.maxstack 4
 	.locals init (
@@ -1618,30 +1618,476 @@
 
 .namespace NAnt.Compression.Types
 {
-  .class public auto ansi serializable beforefieldinit TarFileSetCollection
+  .class public auto ansi beforefieldinit TarFileSet
+  	extends [NAnt.Core]NAnt.Core.Types.FileSet
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 74 61 72 66 69 6C 65 73 65 74 00 00 ) // ...tarfileset..
+
+    .field  private  int32 _fileMode
+    .field  private  int32 _dirMode
+    .field  private  string _userName
+    .field  private  int32 _uid
+    .field  private  string _groupName
+    .field  private  int32 _gid
+    .field  private  string _prefix
+    .field private static literal  int32 _dirFlag = int32(0x00004000)
+    .field private static literal  int32 _fileFlag = int32(0x00008000)
+
+    // method line 63
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x38d6
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 33188
+	IL_0006:  stfld int32 NAnt.Compression.Types.TarFileSet::_fileMode
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4 16877
+	IL_0011:  stfld int32 NAnt.Compression.Types.TarFileSet::_dirMode
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_001c:  ret 
+    } // end of method TarFileSet::.ctor
+
+    // method line 64
+    .method public hidebysig specialname 
+           instance default int32 get_FileMode ()  cil managed 
+    {
+        // Method begins at RVA 0x38f4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_fileMode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_FileMode
+
+    // method line 65
+    .method public hidebysig specialname 
+           instance default void set_FileMode (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x390f
+	// Code size 26 (0x1a)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 32768
+	IL_0007:  ldarg.1 
+	IL_0008:  call string class [mscorlib]System.Convert::ToString(int32)
+	IL_000d:  ldc.i4.8 
+	IL_000e:  call int32 class [mscorlib]System.Convert::ToInt32(string, int32)
+	IL_0013:  or 
+	IL_0014:  stfld int32 NAnt.Compression.Types.TarFileSet::_fileMode
+	IL_0019:  ret 
+    } // end of method TarFileSet::set_FileMode
+
+    // method line 66
+    .method public hidebysig specialname 
+           instance default int32 get_DirMode ()  cil managed 
+    {
+        // Method begins at RVA 0x392c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_dirMode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_DirMode
+
+    // method line 67
+    .method public hidebysig specialname 
+           instance default void set_DirMode (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3947
+	// Code size 26 (0x1a)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 16384
+	IL_0007:  ldarg.1 
+	IL_0008:  call string class [mscorlib]System.Convert::ToString(int32)
+	IL_000d:  ldc.i4.8 
+	IL_000e:  call int32 class [mscorlib]System.Convert::ToInt32(string, int32)
+	IL_0013:  or 
+	IL_0014:  stfld int32 NAnt.Compression.Types.TarFileSet::_dirMode
+	IL_0019:  ret 
+    } // end of method TarFileSet::set_DirMode
+
+    // method line 68
+    .method public hidebysig specialname 
+           instance default string get_UserName ()  cil managed 
+    {
+        // Method begins at RVA 0x3964
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Compression.Types.TarFileSet::_userName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_UserName
+
+    // method line 69
+    .method public hidebysig specialname 
+           instance default void set_UserName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x397f
+	// 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.Types.TarFileSet::_userName
+	IL_000d:  ret 
+    } // end of method TarFileSet::set_UserName
+
+    // method line 70
+    .method public hidebysig specialname 
+           instance default int32 get_Uid ()  cil managed 
+    {
+        // Method begins at RVA 0x3990
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_uid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_Uid
+
+    // method line 71
+    .method public hidebysig specialname 
+           instance default void set_Uid (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x39ab
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Compression.Types.TarFileSet::_uid
+	IL_0008:  ret 
+    } // end of method TarFileSet::set_Uid
+
+    // method line 72
+    .method public hidebysig specialname 
+           instance default string get_GroupName ()  cil managed 
+    {
+        // Method begins at RVA 0x39b8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Compression.Types.TarFileSet::_groupName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_GroupName
+
+    // method line 73
+    .method public hidebysig specialname 
+           instance default void set_GroupName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x39d3
+	// 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.Types.TarFileSet::_groupName
+	IL_000d:  ret 
+    } // end of method TarFileSet::set_GroupName
+
+    // method line 74
+    .method public hidebysig specialname 
+           instance default int32 get_Gid ()  cil managed 
+    {
+        // Method begins at RVA 0x39e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_gid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_Gid
+
+    // method line 75
+    .method public hidebysig specialname 
+           instance default void set_Gid (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x39ff
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Compression.Types.TarFileSet::_gid
+	IL_0008:  ret 
+    } // end of method TarFileSet::set_Gid
+
+    // method line 76
+    .method public hidebysig specialname 
+           instance default string get_Prefix ()  cil managed 
+    {
+        // Method begins at RVA 0x3a0c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSet::get_Prefix
+
+    // method line 77
+    .method public hidebysig specialname 
+           instance default void set_Prefix (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3a28
+	// Code size 91 (0x5b)
+	.maxstack 3
+	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.Types.TarFileSet::_prefix
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
+	IL_0013:  brfalse IL_005a
+
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
+	IL_001e:  ldstr "/"
+	IL_0023:  callvirt instance bool string::EndsWith(string)
+	IL_0028:  brtrue IL_005a
+
+	IL_002d:  ldarg.0 
+	IL_002e:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
+	IL_0033:  ldstr "\\"
+	IL_0038:  callvirt instance bool string::EndsWith(string)
+	IL_003d:  brtrue IL_005a
+
+	IL_0042:  nop 
+	IL_0043:  ldarg.0 
+	IL_0044:  dup 
+	IL_0045:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
+	IL_004a:  ldstr "/"
+	IL_004f:  call string string::Concat(string, string)
+	IL_0054:  stfld string NAnt.Compression.Types.TarFileSet::_prefix
+	IL_0059:  nop 
+	IL_005a:  ret 
+    } // end of method TarFileSet::set_Prefix
+
+	.property instance int32 FileMode ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 69 6C 65 6D 6F 64 65 00 00 ) // ...filemode..
+
+		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_FileMode () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_FileMode (int32 'value') 
+	}
+	.property instance int32 DirMode ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 64 69 72 6D 6F 64 65 00 00 ) // ...dirmode..
+
+		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_DirMode () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_DirMode (int32 'value') 
+	}
+	.property instance string UserName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 75 73 65 72 6E 61 6D 65 00 00 ) // ...username..
+
+		.get instance default string NAnt.Compression.Types.TarFileSet::get_UserName () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_UserName (string 'value') 
+	}
+	.property instance int32 Uid ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 75 69 64 00 00 ) // ...uid..
+
+		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_Uid () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_Uid (int32 'value') 
+	}
+	.property instance string GroupName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 67 72 6F 75 70 6E 61 6D 65 00 00 ) // ...groupname..
+
+		.get instance default string NAnt.Compression.Types.TarFileSet::get_GroupName () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_GroupName (string 'value') 
+	}
+	.property instance int32 Gid ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 67 69 64 00 00 ) // ...gid..
+
+		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_Gid () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_Gid (int32 'value') 
+	}
+	.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.Compression.Types.TarFileSet::get_Prefix () 
+		.set instance default void NAnt.Compression.Types.TarFileSet::set_Prefix (string 'value') 
+	}
+  } // end of class NAnt.Compression.Types.TarFileSet
+}
+
+.namespace NAnt.Compression.Types
+{
+  .class public auto ansi beforefieldinit ZipFileSet
+  	extends [NAnt.Core]NAnt.Core.Types.FileSet
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 7A 69 70 66 69 6C 65 73 65 74 00 00 ) // ...zipfileset..
+
+    .field  private  string _prefix
+
+    // method line 78
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3a8f
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ZipFileSet::.ctor
+
+    // method line 79
+    .method public hidebysig specialname 
+           instance default string get_Prefix ()  cil managed 
+    {
+        // Method begins at RVA 0x3a98
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ZipFileSet::get_Prefix
+
+    // method line 80
+    .method public hidebysig specialname 
+           instance default void set_Prefix (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3ab4
+	// Code size 91 (0x5b)
+	.maxstack 3
+	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.Types.ZipFileSet::_prefix
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
+	IL_0013:  brfalse IL_005a
+
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
+	IL_001e:  ldstr "/"
+	IL_0023:  callvirt instance bool string::EndsWith(string)
+	IL_0028:  brtrue IL_005a
+
+	IL_002d:  ldarg.0 
+	IL_002e:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
+	IL_0033:  ldstr "\\"
+	IL_0038:  callvirt instance bool string::EndsWith(string)
+	IL_003d:  brtrue IL_005a
+
+	IL_0042:  nop 
+	IL_0043:  ldarg.0 
+	IL_0044:  dup 
+	IL_0045:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
+	IL_004a:  ldstr "/"
+	IL_004f:  call string string::Concat(string, string)
+	IL_0054:  stfld string NAnt.Compression.Types.ZipFileSet::_prefix
+	IL_0059:  nop 
+	IL_005a:  ret 
+    } // end of method ZipFileSet::set_Prefix
+
+	.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 01 00 54 02 08 52 65   // ...prefix..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.get instance default string NAnt.Compression.Types.ZipFileSet::get_Prefix () 
+		.set instance default void NAnt.Compression.Types.ZipFileSet::set_Prefix (string 'value') 
+	}
+  } // end of class NAnt.Compression.Types.ZipFileSet
+}
+
+.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 63
+    // method line 81
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x38da
+        // Method begins at RVA 0x3b1b
 	// 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
+    } // end of method ZipFileSetCollection::.ctor
 
-    // method line 64
+    // method line 82
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSetCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x38e3
+        // Method begins at RVA 0x3b24
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1649,15 +2095,15 @@
 	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_0009:  call instance void class NAnt.Compression.Types.ZipFileSetCollection::AddRange(class NAnt.Compression.Types.ZipFileSetCollection)
 	IL_000e:  ret 
-    } // end of method TarFileSetCollection::.ctor
+    } // end of method ZipFileSetCollection::.ctor
 
-    // method line 65
+    // method line 83
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSet[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSet[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x38f3
+        // Method begins at RVA 0x3b34
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1665,37 +2111,37 @@
 	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_0009:  call instance void class NAnt.Compression.Types.ZipFileSetCollection::AddRange(class NAnt.Compression.Types.ZipFileSet[])
 	IL_000e:  ret 
-    } // end of method TarFileSetCollection::.ctor
+    } // end of method ZipFileSetCollection::.ctor
 
-    // method line 66
+    // method line 84
     .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.TarFileSet get_Item (int32 index)  cil managed 
+           instance default class NAnt.Compression.Types.ZipFileSet get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3904
+        // Method begins at RVA 0x3b44
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Compression.Types.TarFileSet	V_0)
+		class NAnt.Compression.Types.ZipFileSet	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_000d:  castclass NAnt.Compression.Types.ZipFileSet
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method TarFileSetCollection::get_Item
+    } // end of method ZipFileSetCollection::get_Item
 
-    // method line 67
+    // method line 85
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Compression.Types.TarFileSet 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Compression.Types.ZipFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x392a
+        // Method begins at RVA 0x3b6a
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1705,18 +2151,18 @@
 	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
+    } // end of method ZipFileSetCollection::set_Item
 
-    // method line 68
+    // method line 86
     .method public hidebysig specialname 
            instance default int32 get_FileCount ()  cil managed 
     {
-        // Method begins at RVA 0x393c
+        // Method begins at RVA 0x3b7c
 	// Code size 96 (0x60)
 	.maxstack 2
 	.locals init (
 		int32	V_0,
-		class NAnt.Compression.Types.TarFileSet	V_1,
+		class NAnt.Compression.Types.ZipFileSet	V_1,
 		class [mscorlib]System.Collections.IEnumerator	V_2,
 		class [mscorlib]System.IDisposable	V_3,
 		int32	V_4)
@@ -1733,7 +2179,7 @@
 
 	  IL_0015:  ldloc.2 
 	  IL_0016:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001b:  castclass NAnt.Compression.Types.TarFileSet
+	  IL_001b:  castclass NAnt.Compression.Types.ZipFileSet
 	  IL_0020:  stloc.1 
 	  IL_0021:  nop 
 	  IL_0022:  ldloc.0 
@@ -1767,13 +2213,13 @@
 
 	IL_005d:  ldloc.s 4
 	IL_005f:  ret 
-    } // end of method TarFileSetCollection::get_FileCount
+    } // end of method ZipFileSetCollection::get_FileCount
 
-    // method line 69
+    // method line 87
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+           instance default int32 Add (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x39b8
+        // Method begins at RVA 0x3bf8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1788,13 +2234,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method TarFileSetCollection::Add
+    } // end of method ZipFileSetCollection::Add
 
-    // method line 70
+    // method line 88
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Compression.Types.TarFileSet[] items)  cil managed 
+           instance default void AddRange (class NAnt.Compression.Types.ZipFileSet[] items)  cil managed 
     {
-        // Method begins at RVA 0x39dc
+        // Method begins at RVA 0x3c1c
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -1809,7 +2255,7 @@
 	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_000d:  call instance int32 class NAnt.Compression.Types.ZipFileSetCollection::Add(class NAnt.Compression.Types.ZipFileSet)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -1823,13 +2269,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method TarFileSetCollection::AddRange
+    } // end of method ZipFileSetCollection::AddRange
 
-    // method line 71
+    // method line 89
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Compression.Types.TarFileSetCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Compression.Types.ZipFileSetCollection items)  cil managed 
     {
-        // Method begins at RVA 0x3a0c
+        // Method begins at RVA 0x3c4c
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1843,8 +2289,8 @@
 	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_000c:  callvirt instance class NAnt.Compression.Types.ZipFileSet class NAnt.Compression.Types.ZipFileSetCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Compression.Types.ZipFileSetCollection::Add(class NAnt.Compression.Types.ZipFileSet)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -1857,13 +2303,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method TarFileSetCollection::AddRange
+    } // end of method ZipFileSetCollection::AddRange
 
-    // method line 72
+    // method line 90
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+           instance default bool Contains (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3a44
+        // Method begins at RVA 0x3c84
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1878,13 +2324,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method TarFileSetCollection::Contains
+    } // end of method ZipFileSetCollection::Contains
 
-    // method line 73
+    // method line 91
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Compression.Types.TarFileSet[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Compression.Types.ZipFileSet[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3a65
+        // Method begins at RVA 0x3ca5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1894,13 +2340,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 TarFileSetCollection::CopyTo
+    } // end of method ZipFileSetCollection::CopyTo
 
-    // method line 74
+    // method line 92
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3a78
+        // Method begins at RVA 0x3cb8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1915,13 +2361,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method TarFileSetCollection::IndexOf
+    } // end of method ZipFileSetCollection::IndexOf
 
-    // method line 75
+    // method line 93
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Compression.Types.TarFileSet item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3a99
+        // Method begins at RVA 0x3cd9
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1931,32 +2377,32 @@
 	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
+    } // end of method ZipFileSetCollection::Insert
 
-    // method line 76
+    // method line 94
     .method public hidebysig 
-           instance default class NAnt.Compression.Types.TarFileSetEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Compression.Types.ZipFileSetEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x3aac
+        // Method begins at RVA 0x3cec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Compression.Types.TarFileSetEnumerator	V_0)
+		class NAnt.Compression.Types.ZipFileSetEnumerator	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_0002:  newobj instance void class NAnt.Compression.Types.ZipFileSetEnumerator::'.ctor'(class NAnt.Compression.Types.ZipFileSetCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TarFileSetCollection::GetEnumerator
+    } // end of method ZipFileSetCollection::GetEnumerator
 
-    // method line 77
+    // method line 95
     .method public hidebysig 
-           instance default void Remove (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+           instance default void Remove (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3ac7
+        // Method begins at RVA 0x3d07
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1965,32 +2411,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method TarFileSetCollection::Remove
+    } // end of method ZipFileSetCollection::Remove
 
-	.property instance class NAnt.Compression.Types.TarFileSet Item (int32)
+	.property instance class NAnt.Compression.Types.ZipFileSet 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') 
+		.get instance default class NAnt.Compression.Types.ZipFileSet NAnt.Compression.Types.ZipFileSetCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Compression.Types.ZipFileSetCollection::set_Item (int32 index, class NAnt.Compression.Types.ZipFileSet 'value') 
 	}
 	.property instance int32 FileCount ()
 	{
-		.get instance default int32 NAnt.Compression.Types.TarFileSetCollection::get_FileCount () 
+		.get instance default int32 NAnt.Compression.Types.ZipFileSetCollection::get_FileCount () 
 	}
-  } // end of class NAnt.Compression.Types.TarFileSetCollection
+  } // end of class NAnt.Compression.Types.ZipFileSetCollection
 }
 
 .namespace NAnt.Compression.Types
 {
-  .class public auto ansi beforefieldinit TarFileSetEnumerator
+  .class public auto ansi beforefieldinit ZipFileSetEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 78
+    // method line 96
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection TarFileSets)  cil managed 
+           instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSetCollection ZipFileSets)  cil managed 
     {
-        // Method begins at RVA 0x3ad8
+        // Method begins at RVA 0x3d18
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -2003,36 +2449,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.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method TarFileSetEnumerator::.ctor
+    } // end of method ZipFileSetEnumerator::.ctor
 
-    // method line 79
+    // method line 97
     .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.TarFileSet get_Current ()  cil managed 
+           instance default class NAnt.Compression.Types.ZipFileSet get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3afc
+        // Method begins at RVA 0x3d3c
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Compression.Types.TarFileSet	V_0)
+		class NAnt.Compression.Types.ZipFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Compression.Types.TarFileSet
+	IL_000c:  castclass NAnt.Compression.Types.ZipFileSet
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method TarFileSetEnumerator::get_Current
+    } // end of method ZipFileSetEnumerator::get_Current
 
-    // method line 80
+    // method line 98
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3b24
+        // Method begins at RVA 0x3d64
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2040,40 +2486,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_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
+    } // end of method ZipFileSetEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 81
+    // method line 99
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3b44
+        // Method begins at RVA 0x3d84
 	// 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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_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
+    } // end of method ZipFileSetEnumerator::MoveNext
 
-    // method line 82
+    // method line 100
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3b64
+        // Method begins at RVA 0x3da4
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2081,53 +2527,53 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_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
+    } // end of method ZipFileSetEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 83
+    // method line 101
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3b84
+        // Method begins at RVA 0x3dc4
 	// 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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method TarFileSetEnumerator::Reset
+    } // end of method ZipFileSetEnumerator::Reset
 
-    // method line 84
+    // method line 102
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3b92
+        // Method begins at RVA 0x3dd2
 	.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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method ZipFileSetEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Compression.Types.TarFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Compression.Types.ZipFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Compression.Types.TarFileSet Current ()
+	.property instance class NAnt.Compression.Types.ZipFileSet Current ()
 	{
-		.get instance default class NAnt.Compression.Types.TarFileSet NAnt.Compression.Types.TarFileSetEnumerator::get_Current () 
+		.get instance default class NAnt.Compression.Types.ZipFileSet NAnt.Compression.Types.ZipFileSetEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Compression.Types.TarFileSetEnumerator
+  } // end of class NAnt.Compression.Types.ZipFileSetEnumerator
 }
 
 .namespace NAnt.Compression.Types
@@ -2155,11 +2601,11 @@
   	extends [System]System.ComponentModel.EnumConverter
   {
 
-    // method line 85
+    // method line 103
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3ba0
+        // Method begins at RVA 0x3de0
 	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2170,11 +2616,11 @@
 	IL_0011:  ret 
     } // end of method TarCompressionMethodConverter::.ctor
 
-    // method line 86
+    // method line 104
     .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 0x3bb4
+        // Method begins at RVA 0x3df4
 	// Code size 50 (0x32)
 	.maxstack 4
 	.locals init (
@@ -2212,121 +2658,30 @@
 
 .namespace NAnt.Compression.Types
 {
-  .class public auto ansi beforefieldinit ZipFileSet
-  	extends [NAnt.Core]NAnt.Core.Types.FileSet
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 7A 69 70 66 69 6C 65 73 65 74 00 00 ) // ...zipfileset..
-
-    .field  private  string _prefix
-
-    // method line 87
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3bf2
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ZipFileSet::.ctor
-
-    // method line 88
-    .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
-    {
-        // Method begins at RVA 0x3bfc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ZipFileSet::get_Prefix
-
-    // method line 89
-    .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c18
-	// Code size 91 (0x5b)
-	.maxstack 3
-	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.Types.ZipFileSet::_prefix
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
-	IL_0013:  brfalse IL_005a
-
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
-	IL_001e:  ldstr "/"
-	IL_0023:  callvirt instance bool string::EndsWith(string)
-	IL_0028:  brtrue IL_005a
-
-	IL_002d:  ldarg.0 
-	IL_002e:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
-	IL_0033:  ldstr "\\"
-	IL_0038:  callvirt instance bool string::EndsWith(string)
-	IL_003d:  brtrue IL_005a
-
-	IL_0042:  nop 
-	IL_0043:  ldarg.0 
-	IL_0044:  dup 
-	IL_0045:  ldfld string NAnt.Compression.Types.ZipFileSet::_prefix
-	IL_004a:  ldstr "/"
-	IL_004f:  call string string::Concat(string, string)
-	IL_0054:  stfld string NAnt.Compression.Types.ZipFileSet::_prefix
-	IL_0059:  nop 
-	IL_005a:  ret 
-    } // end of method ZipFileSet::set_Prefix
-
-	.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 01 00 54 02 08 52 65   // ...prefix..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
-
-		.get instance default string NAnt.Compression.Types.ZipFileSet::get_Prefix () 
-		.set instance default void NAnt.Compression.Types.ZipFileSet::set_Prefix (string 'value') 
-	}
-  } // end of class NAnt.Compression.Types.ZipFileSet
-}
-
-.namespace NAnt.Compression.Types
-{
-  .class public auto ansi serializable beforefieldinit ZipFileSetCollection
+  .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 90
+    // method line 105
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3c7f
+        // Method begins at RVA 0x3e32
 	// 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 ZipFileSetCollection::.ctor
+    } // end of method TarFileSetCollection::.ctor
 
-    // method line 91
+    // method line 106
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSetCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3c88
+        // Method begins at RVA 0x3e3b
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2334,15 +2689,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Compression.Types.ZipFileSetCollection::AddRange(class NAnt.Compression.Types.ZipFileSetCollection)
+	IL_0009:  call instance void class NAnt.Compression.Types.TarFileSetCollection::AddRange(class NAnt.Compression.Types.TarFileSetCollection)
 	IL_000e:  ret 
-    } // end of method ZipFileSetCollection::.ctor
+    } // end of method TarFileSetCollection::.ctor
 
-    // method line 92
+    // method line 107
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSet[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSet[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x3c98
+        // Method begins at RVA 0x3e4b
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2350,37 +2705,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Compression.Types.ZipFileSetCollection::AddRange(class NAnt.Compression.Types.ZipFileSet[])
+	IL_0009:  call instance void class NAnt.Compression.Types.TarFileSetCollection::AddRange(class NAnt.Compression.Types.TarFileSet[])
 	IL_000e:  ret 
-    } // end of method ZipFileSetCollection::.ctor
+    } // end of method TarFileSetCollection::.ctor
 
-    // method line 93
+    // method line 108
     .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.ZipFileSet get_Item (int32 index)  cil managed 
+           instance default class NAnt.Compression.Types.TarFileSet get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3ca8
+        // Method begins at RVA 0x3e5c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Compression.Types.ZipFileSet	V_0)
+		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.ZipFileSet
+	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 ZipFileSetCollection::get_Item
+    } // end of method TarFileSetCollection::get_Item
 
-    // method line 94
+    // method line 109
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Compression.Types.ZipFileSet 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Compression.Types.TarFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3cce
+        // Method begins at RVA 0x3e82
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2390,18 +2745,18 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
 	IL_000e:  ret 
-    } // end of method ZipFileSetCollection::set_Item
+    } // end of method TarFileSetCollection::set_Item
 
-    // method line 95
+    // method line 110
     .method public hidebysig specialname 
            instance default int32 get_FileCount ()  cil managed 
     {
-        // Method begins at RVA 0x3ce0
+        // Method begins at RVA 0x3e94
 	// Code size 96 (0x60)
 	.maxstack 2
 	.locals init (
 		int32	V_0,
-		class NAnt.Compression.Types.ZipFileSet	V_1,
+		class NAnt.Compression.Types.TarFileSet	V_1,
 		class [mscorlib]System.Collections.IEnumerator	V_2,
 		class [mscorlib]System.IDisposable	V_3,
 		int32	V_4)
@@ -2418,7 +2773,7 @@
 
 	  IL_0015:  ldloc.2 
 	  IL_0016:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001b:  castclass NAnt.Compression.Types.ZipFileSet
+	  IL_001b:  castclass NAnt.Compression.Types.TarFileSet
 	  IL_0020:  stloc.1 
 	  IL_0021:  nop 
 	  IL_0022:  ldloc.0 
@@ -2452,13 +2807,13 @@
 
 	IL_005d:  ldloc.s 4
 	IL_005f:  ret 
-    } // end of method ZipFileSetCollection::get_FileCount
+    } // end of method TarFileSetCollection::get_FileCount
 
-    // method line 96
+    // method line 111
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
+           instance default int32 Add (class NAnt.Compression.Types.TarFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3d5c
+        // Method begins at RVA 0x3f10
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2473,13 +2828,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ZipFileSetCollection::Add
+    } // end of method TarFileSetCollection::Add
 
-    // method line 97
+    // method line 112
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Compression.Types.ZipFileSet[] items)  cil managed 
+           instance default void AddRange (class NAnt.Compression.Types.TarFileSet[] items)  cil managed 
     {
-        // Method begins at RVA 0x3d80
+        // Method begins at RVA 0x3f34
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -2494,7 +2849,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Compression.Types.ZipFileSetCollection::Add(class NAnt.Compression.Types.ZipFileSet)
+	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 
@@ -2508,13 +2863,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method ZipFileSetCollection::AddRange
+    } // end of method TarFileSetCollection::AddRange
 
-    // method line 98
+    // method line 113
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Compression.Types.ZipFileSetCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Compression.Types.TarFileSetCollection items)  cil managed 
     {
-        // Method begins at RVA 0x3db0
+        // Method begins at RVA 0x3f64
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -2528,8 +2883,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Compression.Types.ZipFileSet class NAnt.Compression.Types.ZipFileSetCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Compression.Types.ZipFileSetCollection::Add(class NAnt.Compression.Types.ZipFileSet)
+	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 
@@ -2542,13 +2897,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method ZipFileSetCollection::AddRange
+    } // end of method TarFileSetCollection::AddRange
 
-    // method line 99
+    // method line 114
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
+           instance default bool Contains (class NAnt.Compression.Types.TarFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3de8
+        // Method begins at RVA 0x3f9c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2563,13 +2918,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ZipFileSetCollection::Contains
+    } // end of method TarFileSetCollection::Contains
 
-    // method line 100
+    // method line 115
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Compression.Types.ZipFileSet[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Compression.Types.TarFileSet[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3e09
+        // Method begins at RVA 0x3fbd
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2579,13 +2934,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 ZipFileSetCollection::CopyTo
+    } // end of method TarFileSetCollection::CopyTo
 
-    // method line 101
+    // method line 116
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Compression.Types.TarFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3e1c
+        // Method begins at RVA 0x3fd0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2600,13 +2955,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ZipFileSetCollection::IndexOf
+    } // end of method TarFileSetCollection::IndexOf
 
-    // method line 102
+    // method line 117
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Compression.Types.ZipFileSet item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Compression.Types.TarFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3e3d
+        // Method begins at RVA 0x3ff1
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2616,32 +2971,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method ZipFileSetCollection::Insert
+    } // end of method TarFileSetCollection::Insert
 
-    // method line 103
+    // method line 118
     .method public hidebysig 
-           instance default class NAnt.Compression.Types.ZipFileSetEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Compression.Types.TarFileSetEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x3e50
+        // Method begins at RVA 0x4004
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Compression.Types.ZipFileSetEnumerator	V_0)
+		class NAnt.Compression.Types.TarFileSetEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Compression.Types.ZipFileSetEnumerator::'.ctor'(class NAnt.Compression.Types.ZipFileSetCollection)
+	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 ZipFileSetCollection::GetEnumerator
+    } // end of method TarFileSetCollection::GetEnumerator
 
-    // method line 104
+    // method line 119
     .method public hidebysig 
-           instance default void Remove (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
+           instance default void Remove (class NAnt.Compression.Types.TarFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x3e6b
+        // Method begins at RVA 0x401f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2650,32 +3005,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method ZipFileSetCollection::Remove
+    } // end of method TarFileSetCollection::Remove
 
-	.property instance class NAnt.Compression.Types.ZipFileSet Item (int32)
+	.property instance class NAnt.Compression.Types.TarFileSet Item (int32)
 	{
-		.get instance default class NAnt.Compression.Types.ZipFileSet NAnt.Compression.Types.ZipFileSetCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Compression.Types.ZipFileSetCollection::set_Item (int32 index, class NAnt.Compression.Types.ZipFileSet 'value') 
+		.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.ZipFileSetCollection::get_FileCount () 
+		.get instance default int32 NAnt.Compression.Types.TarFileSetCollection::get_FileCount () 
 	}
-  } // end of class NAnt.Compression.Types.ZipFileSetCollection
+  } // end of class NAnt.Compression.Types.TarFileSetCollection
 }
 
 .namespace NAnt.Compression.Types
 {
-  .class public auto ansi beforefieldinit ZipFileSetEnumerator
+  .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 105
+    // method line 120
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSetCollection ZipFileSets)  cil managed 
+           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection TarFileSets)  cil managed 
     {
-        // Method begins at RVA 0x3e7c
+        // Method begins at RVA 0x4030
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -2688,36 +3043,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.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method ZipFileSetEnumerator::.ctor
+    } // end of method TarFileSetEnumerator::.ctor
 
-    // method line 106
+    // method line 121
     .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.ZipFileSet get_Current ()  cil managed 
+           instance default class NAnt.Compression.Types.TarFileSet get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3ea0
+        // Method begins at RVA 0x4054
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Compression.Types.ZipFileSet	V_0)
+		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.ZipFileSetEnumerator::_baseEnumerator
+	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.ZipFileSet
+	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 ZipFileSetEnumerator::get_Current
+    } // end of method TarFileSetEnumerator::get_Current
 
-    // method line 107
+    // method line 122
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3ec8
+        // Method begins at RVA 0x407c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2725,40 +3080,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
+	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 ZipFileSetEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 108
+    // method line 123
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3ee8
+        // Method begins at RVA 0x409c
 	// 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.ZipFileSetEnumerator::_baseEnumerator
+	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 ZipFileSetEnumerator::MoveNext
+    } // end of method TarFileSetEnumerator::MoveNext
 
-    // method line 109
+    // method line 124
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3f08
+        // Method begins at RVA 0x40bc
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2766,407 +3121,52 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
+	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 ZipFileSetEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 110
+    // method line 125
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3f28
+        // Method begins at RVA 0x40dc
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.ZipFileSetEnumerator::_baseEnumerator
+	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 ZipFileSetEnumerator::Reset
+    } // end of method TarFileSetEnumerator::Reset
 
-    // method line 111
+    // method line 126
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3f36
+        // Method begins at RVA 0x40ea
 	.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.ZipFileSetEnumerator::_baseEnumerator
+	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 ZipFileSetEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Compression.Types.ZipFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Compression.Types.ZipFileSet Current ()
-	{
-		.get instance default class NAnt.Compression.Types.ZipFileSet NAnt.Compression.Types.ZipFileSetEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Compression.Types.ZipFileSetEnumerator
-}
-
-.namespace NAnt.Compression.Types
-{
-  .class public auto ansi beforefieldinit TarFileSet
-  	extends [NAnt.Core]NAnt.Core.Types.FileSet
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 74 61 72 66 69 6C 65 73 65 74 00 00 ) // ...tarfileset..
-
-    .field  private  int32 _fileMode
-    .field  private  int32 _dirMode
-    .field  private  string _userName
-    .field  private  int32 _uid
-    .field  private  string _groupName
-    .field  private  int32 _gid
-    .field  private  string _prefix
-    .field private static literal  int32 _dirFlag = int32(0x00004000)
-    .field private static literal  int32 _fileFlag = int32(0x00008000)
-
-    // method line 112
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3f44
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 33188
-	IL_0006:  stfld int32 NAnt.Compression.Types.TarFileSet::_fileMode
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4 16877
-	IL_0011:  stfld int32 NAnt.Compression.Types.TarFileSet::_dirMode
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_001c:  ret 
-    } // end of method TarFileSet::.ctor
-
-    // method line 113
-    .method public hidebysig specialname 
-           instance default int32 get_FileMode ()  cil managed 
-    {
-        // Method begins at RVA 0x3f64
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_fileMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_FileMode
-
-    // method line 114
-    .method public hidebysig specialname 
-           instance default void set_FileMode (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3f7f
-	// Code size 26 (0x1a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 32768
-	IL_0007:  ldarg.1 
-	IL_0008:  call string class [mscorlib]System.Convert::ToString(int32)
-	IL_000d:  ldc.i4.8 
-	IL_000e:  call int32 class [mscorlib]System.Convert::ToInt32(string, int32)
-	IL_0013:  or 
-	IL_0014:  stfld int32 NAnt.Compression.Types.TarFileSet::_fileMode
-	IL_0019:  ret 
-    } // end of method TarFileSet::set_FileMode
-
-    // method line 115
-    .method public hidebysig specialname 
-           instance default int32 get_DirMode ()  cil managed 
-    {
-        // Method begins at RVA 0x3f9c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_dirMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_DirMode
-
-    // method line 116
-    .method public hidebysig specialname 
-           instance default void set_DirMode (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3fb7
-	// Code size 26 (0x1a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 16384
-	IL_0007:  ldarg.1 
-	IL_0008:  call string class [mscorlib]System.Convert::ToString(int32)
-	IL_000d:  ldc.i4.8 
-	IL_000e:  call int32 class [mscorlib]System.Convert::ToInt32(string, int32)
-	IL_0013:  or 
-	IL_0014:  stfld int32 NAnt.Compression.Types.TarFileSet::_dirMode
-	IL_0019:  ret 
-    } // end of method TarFileSet::set_DirMode
-
-    // method line 117
-    .method public hidebysig specialname 
-           instance default string get_UserName ()  cil managed 
-    {
-        // Method begins at RVA 0x3fd4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Compression.Types.TarFileSet::_userName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_UserName
-
-    // method line 118
-    .method public hidebysig specialname 
-           instance default void set_UserName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3fef
-	// 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.Types.TarFileSet::_userName
-	IL_000d:  ret 
-    } // end of method TarFileSet::set_UserName
-
-    // method line 119
-    .method public hidebysig specialname 
-           instance default int32 get_Uid ()  cil managed 
-    {
-        // Method begins at RVA 0x4000
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_uid
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_Uid
-
-    // method line 120
-    .method public hidebysig specialname 
-           instance default void set_Uid (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x401b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Compression.Types.TarFileSet::_uid
-	IL_0008:  ret 
-    } // end of method TarFileSet::set_Uid
-
-    // method line 121
-    .method public hidebysig specialname 
-           instance default string get_GroupName ()  cil managed 
-    {
-        // Method begins at RVA 0x4028
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Compression.Types.TarFileSet::_groupName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_GroupName
-
-    // method line 122
-    .method public hidebysig specialname 
-           instance default void set_GroupName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4043
-	// 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.Types.TarFileSet::_groupName
-	IL_000d:  ret 
-    } // end of method TarFileSet::set_GroupName
-
-    // method line 123
-    .method public hidebysig specialname 
-           instance default int32 get_Gid ()  cil managed 
-    {
-        // Method begins at RVA 0x4054
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Compression.Types.TarFileSet::_gid
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_Gid
-
-    // method line 124
-    .method public hidebysig specialname 
-           instance default void set_Gid (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x406f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Compression.Types.TarFileSet::_gid
-	IL_0008:  ret 
-    } // end of method TarFileSet::set_Gid
-
-    // method line 125
-    .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
-    {
-        // Method begins at RVA 0x407c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSet::get_Prefix
-
-    // method line 126
-    .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4098
-	// Code size 91 (0x5b)
-	.maxstack 3
-	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.Types.TarFileSet::_prefix
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
-	IL_0013:  brfalse IL_005a
-
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
-	IL_001e:  ldstr "/"
-	IL_0023:  callvirt instance bool string::EndsWith(string)
-	IL_0028:  brtrue IL_005a
-
-	IL_002d:  ldarg.0 
-	IL_002e:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
-	IL_0033:  ldstr "\\"
-	IL_0038:  callvirt instance bool string::EndsWith(string)
-	IL_003d:  brtrue IL_005a
-
-	IL_0042:  nop 
-	IL_0043:  ldarg.0 
-	IL_0044:  dup 
-	IL_0045:  ldfld string NAnt.Compression.Types.TarFileSet::_prefix
-	IL_004a:  ldstr "/"
-	IL_004f:  call string string::Concat(string, string)
-	IL_0054:  stfld string NAnt.Compression.Types.TarFileSet::_prefix
-	IL_0059:  nop 
-	IL_005a:  ret 
-    } // end of method TarFileSet::set_Prefix
-
-	.property instance int32 FileMode ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 69 6C 65 6D 6F 64 65 00 00 ) // ...filemode..
-
-		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_FileMode () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_FileMode (int32 'value') 
-	}
-	.property instance int32 DirMode ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 64 69 72 6D 6F 64 65 00 00 ) // ...dirmode..
-
-		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_DirMode () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_DirMode (int32 'value') 
-	}
-	.property instance string UserName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 75 73 65 72 6E 61 6D 65 00 00 ) // ...username..
-
-		.get instance default string NAnt.Compression.Types.TarFileSet::get_UserName () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_UserName (string 'value') 
-	}
-	.property instance int32 Uid ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 75 69 64 00 00 ) // ...uid..
-
-		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_Uid () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_Uid (int32 'value') 
-	}
-	.property instance string GroupName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 67 72 6F 75 70 6E 61 6D 65 00 00 ) // ...groupname..
-
-		.get instance default string NAnt.Compression.Types.TarFileSet::get_GroupName () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_GroupName (string 'value') 
-	}
-	.property instance int32 Gid ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 67 69 64 00 00 ) // ...gid..
-
-		.get instance default int32 NAnt.Compression.Types.TarFileSet::get_Gid () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_Gid (int32 'value') 
+		.get instance default object NAnt.Compression.Types.TarFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance string Prefix ()
+	.property instance class NAnt.Compression.Types.TarFileSet Current ()
 	{
-		.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.Compression.Types.TarFileSet::get_Prefix () 
-		.set instance default void NAnt.Compression.Types.TarFileSet::set_Prefix (string 'value') 
+		.get instance default class NAnt.Compression.Types.TarFileSet NAnt.Compression.Types.TarFileSetEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Compression.Types.TarFileSet
+  } // end of class NAnt.Compression.Types.TarFileSetEnumerator
 }
 
/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,89 +4,44 @@
         <name>NAnt.CompressionTasks</name>
     </assembly>
     <members>
-        <member name="T:NAnt.Compression.Tasks.ZipTask">
+        <member name="T:NAnt.Compression.Tasks.UnTarTask">
              <summary>
-             Creates a zip file from the specified filesets.
+             Extracts files from a tar archive.
              </summary>
              <remarks>
                <para>
                Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see>
-               (SharpZipLib), an open source Tar/Zip/GZip library written entirely in C#.
+               (SharpZipLib), an open source Zip/GZip library written entirely in C#.
                </para>
              </remarks>
              <example>
-               <para>
-               Zip all files in <c>${build.dir}</c> and <c>${doc.dir}</c> into a file
-               called "backup.zip".
-               </para>
+               <para>Extracts all files from a gzipped tar, preserving the directory structure.</para>
                <code>
                  <![CDATA[
-             <zip zipfile="backup.zip">
-                 <fileset basedir="${bin.dir}" prefix="bin">
-                     <include name="**/*" />
-                 </fileset>
-                 <fileset basedir="${doc.dir}" prefix="doc">
-                     <include name="**/*" />
-                 </fileset>
-             </zip>
+             <untar src="nant-bin.tar.gz" dest="bin" compression="gzip" />
                  ]]>
                </code>
              </example>
             </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.ZipFile">
-             <summary>
-             The zip file to create.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.Comment">
-             <summary>
-             The comment for the file.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.Stamp">
-             <summary>
-             Date/time stamp for the files in the format MM/DD/YYYY HH:MM:SS.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.ZipLevel">
-             <summary>
-             Desired level of compression. Possible values are 0 (STORE only) 
-             to 9 (highest). The default is <c>6</c>.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.IncludeEmptyDirs">
-             <summary>
-             Include empty directories in the generated zip file. The default is
-             <see langword="false" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.Flatten">
-             <summary>
-             Ignore directory structure of source directory, compress all files 
-             into a single directory.
-             The default value is <see langword="false" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.ZipFileSets">
+        <member name="P:NAnt.Compression.Tasks.UnTarTask.SrcFile">
              <summary>
-             The set of files to be included in the archive.
+             The archive file to expand.
              </summary>
             </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.DuplicateHandling">
+        <member name="P:NAnt.Compression.Tasks.UnTarTask.DestinationDirectory">
              <summary>
-             Specifies the behaviour when a duplicate file is found. The default
-             is <see cref="T:NAnt.Compression.Types.DuplicateHandling.Add" />.
+             The directory where to store the expanded file(s). The default is
+             the project base directory.
              </summary>
             </member>
-        <member name="P:NAnt.Compression.Tasks.ZipTask.Encoding">
+        <member name="P:NAnt.Compression.Tasks.UnTarTask.CompressionMethod">
              <summary>
-             The character encoding to use for filenames and comment inside the
-             zip file. The default is the system's OEM code page.
+             The compression method. The default is <see cref="F:NAnt.Compression.Types.TarCompressionMethod.None" />.
              </summary>
             </member>
-        <member name="M:NAnt.Compression.Tasks.ZipTask.ExecuteTask">
+        <member name="M:NAnt.Compression.Tasks.UnTarTask.ExecuteTask">
              <summary>
-             Creates the zip file.
+             Extracts the files from the archive.
              </summary>
             </member>
         <member name="T:NAnt.Compression.Tasks.GUnzip">
@@ -117,85 +72,89 @@
              Extracts the file from the gzip archive.
              </summary>
             </member>
-        <member name="T:NAnt.Compression.Tasks.UnZipTask">
+        <member name="T:NAnt.Compression.Tasks.ZipTask">
              <summary>
-             Extracts files from a zip archive.
+             Creates a zip file from the specified filesets.
              </summary>
              <remarks>
                <para>
                Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see>
-               (SharpZipLib), an open source Zip/GZip library written entirely in C#.
+               (SharpZipLib), an open source Tar/Zip/GZip library written entirely in C#.
                </para>
              </remarks>
              <example>
-               <para>Extracts all the file from the zip, preserving the directory structure.</para>
+               <para>
+               Zip all files in <c>${build.dir}</c> and <c>${doc.dir}</c> into a file
+               called "backup.zip".
+               </para>
                <code>
                  <![CDATA[
-             <unzip zipfile="backup.zip"/>
+             <zip zipfile="backup.zip">
+                 <fileset basedir="${bin.dir}" prefix="bin">
+                     <include name="**/*" />
+                 </fileset>
+                 <fileset basedir="${doc.dir}" prefix="doc">
+                     <include name="**/*" />
+                 </fileset>
+             </zip>
                  ]]>
                </code>
              </example>
             </member>
-        <member name="P:NAnt.Compression.Tasks.UnZipTask.ZipFile">
+        <member name="P:NAnt.Compression.Tasks.ZipTask.ZipFile">
              <summary>
-             The archive file to expand.
+             The zip file to create.
              </summary>
             </member>
-        <member name="P:NAnt.Compression.Tasks.UnZipTask.ToDirectory">
+        <member name="P:NAnt.Compression.Tasks.ZipTask.Comment">
              <summary>
-             The directory where the expanded files should be stored. The 
-             default is the project base directory.
+             The comment for the file.
              </summary>
             </member>
-        <member name="P:NAnt.Compression.Tasks.UnZipTask.Encoding">
+        <member name="P:NAnt.Compression.Tasks.ZipTask.Stamp">
              <summary>
-             The character encoding that has been used for filenames inside the
-             zip file. The default is the system's OEM code page.
+             Date/time stamp for the files in the format MM/DD/YYYY HH:MM:SS.
              </summary>
             </member>
-        <member name="M:NAnt.Compression.Tasks.UnZipTask.ExecuteTask">
+        <member name="P:NAnt.Compression.Tasks.ZipTask.ZipLevel">
              <summary>
-             Extracts the files from the zip file.
+             Desired level of compression. Possible values are 0 (STORE only) 
+             to 9 (highest). The default is <c>6</c>.
              </summary>
             </member>
-        <member name="T:NAnt.Compression.Tasks.UnTarTask">
+        <member name="P:NAnt.Compression.Tasks.ZipTask.IncludeEmptyDirs">
              <summary>
-             Extracts files from a tar archive.
+             Include empty directories in the generated zip file. The default is
+             <see langword="false" />.
              </summary>
-             <remarks>
-               <para>
-               Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see>
-               (SharpZipLib), an open source Zip/GZip library written entirely in C#.
-               </para>
-             </remarks>
-             <example>
-               <para>Extracts all files from a gzipped tar, preserving the directory structure.</para>
-               <code>
-                 <![CDATA[
-             <untar src="nant-bin.tar.gz" dest="bin" compression="gzip" />
-                 ]]>
-               </code>
-             </example>
             </member>
-        <member name="P:NAnt.Compression.Tasks.UnTarTask.SrcFile">
+        <member name="P:NAnt.Compression.Tasks.ZipTask.Flatten">
              <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)
@@ -76,603 +76,242 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit NAntTask
+  .class public auto ansi beforefieldinit UpToDateTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6E 61 6E 74 00 00 ) // ...nant..
+    .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  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
+    .field  private  string _propertyName
+    .field  private  class NAnt.Core.Types.FileSet _sourceFiles
+    .field  private  class NAnt.Core.Types.FileSet _targetFiles
 
     // method line 1
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
         // Method begins at RVA 0x5116
-	// Code size 36 (0x24)
+	// Code size 7 (0x7)
 	.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
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method UpToDateTask::.ctor
 
     // method line 2
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_BuildFile ()  cil managed 
-    {
-        // Method begins at RVA 0x513c
-	// 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 3
-    .method public hidebysig specialname 
-           instance default void set_BuildFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5157
-	// 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 4
-    .method public hidebysig specialname 
-           instance default string get_DefaultTarget ()  cil managed 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x5164
+        // Method begins at RVA 0x5120
 	// 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_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 NAntTask::get_DefaultTarget
+    } // end of method UpToDateTask::get_PropertyName
 
-    // method line 5
+    // method line 3
     .method public hidebysig specialname 
-           instance default void set_DefaultTarget (string 'value')  cil managed 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x517f
+        // Method begins at RVA 0x513b
 	// 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_0008:  stfld string NAnt.Core.Tasks.UpToDateTask::_propertyName
 	IL_000d:  ret 
-    } // end of method NAntTask::set_DefaultTarget
-
-    // method line 6
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Types.FileSet get_BuildFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x5190
-	// 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 7
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_BuildFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x51ab
-	// 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
+    } // end of method UpToDateTask::set_PropertyName
 
-    // method line 8
+    // method line 4
     .method public hidebysig specialname 
-           instance default bool get_InheritAll ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_SourceFiles ()  cil managed 
     {
-        // Method begins at RVA 0x51b8
+        // Method begins at RVA 0x514c
 	// 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.Tasks.NAntTask::_inheritAll
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NAntTask::get_InheritAll
+    } // end of method UpToDateTask::get_SourceFiles
 
-    // method line 9
+    // method line 5
     .method public hidebysig specialname 
-           instance default void set_InheritAll (bool 'value')  cil managed 
+           instance default void set_SourceFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x51d3
+        // Method begins at RVA 0x5167
 	// 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_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
 	IL_0008:  ret 
-    } // end of method NAntTask::set_InheritAll
+    } // end of method UpToDateTask::set_SourceFiles
 
-    // method line 10
+    // method line 6
     .method public hidebysig specialname 
-           instance default bool get_InheritRefs ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_TargetFiles ()  cil managed 
     {
-        // Method begins at RVA 0x51e0
+        // Method begins at RVA 0x5174
 	// 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.Tasks.NAntTask::_inheritRefs
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NAntTask::get_InheritRefs
+    } // end of method UpToDateTask::get_TargetFiles
 
-    // method line 11
+    // method line 7
     .method public hidebysig specialname 
-           instance default void set_InheritRefs (bool 'value')  cil managed 
+           instance default void set_TargetFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x51fb
+        // Method begins at RVA 0x518f
 	// 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_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
 	IL_0008:  ret 
-    } // end of method NAntTask::set_InheritRefs
-
-    // method line 12
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_OverrideProperties ()  cil managed 
-    {
-        // Method begins at RVA 0x5208
-	// 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 13
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x5224
-	// 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 UpToDateTask::set_TargetFiles
 
-    // method line 14
+    // method line 8
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x5284
-	// Code size 157 (0x9d)
-	.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 15
-    .method private hidebysig 
-           instance default void RunBuild (class [mscorlib]System.IO.FileInfo buildFile)  cil managed 
-    {
-        // Method begins at RVA 0x5340
-	// Code size 490 (0x1ea)
+        // Method begins at RVA 0x519c
+	// Code size 169 (0xa9)
 	.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)
+		bool	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1,
+		string	V_2,
+		bool	V_3)
 	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_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_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_0015:  ldloc.1 
+	IL_0016:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_001b:  brtrue IL_0039
 
-	.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_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
 
-		.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_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
 
-		.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_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
 
-		.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 ()
+	.property instance string PropertyName ()
 	{
-		.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.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.BooleanValidatorAttribute::'.ctor'() =  (01 00 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 bool NAnt.Core.Tasks.NAntTask::get_InheritAll () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_InheritAll (bool 'value') 
+		.get instance default string NAnt.Core.Tasks.UpToDateTask::get_PropertyName () 
+		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_PropertyName (string 'value') 
 	}
-	.property instance bool InheritRefs ()
+	.property instance class NAnt.Core.Types.FileSet SourceFiles ()
 	{
-		.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 ) // ....
+		.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 bool NAnt.Core.Tasks.NAntTask::get_InheritRefs () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_InheritRefs (bool 'value') 
+		.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 [mscorlib]System.Collections.ArrayList OverrideProperties ()
+	.property instance class NAnt.Core.Types.FileSet TargetFiles ()
 	{
-		.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
+		.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 [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::get_OverrideProperties () 
+		.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.NAntTask
+  } // end of class NAnt.Core.Tasks.UpToDateTask
 }
 
 .namespace NAnt.Core.Tasks
@@ -691,11 +330,11 @@
     .field  private  class NAnt.Core.Types.Credential _credentials
     .field  private  class NAnt.Core.Types.FileSet _certificates
 
-    // method line 16
+    // method line 9
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5548
+        // Method begins at RVA 0x5251
 	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -709,11 +348,11 @@
 	IL_001c:  ret 
     } // end of method GetTask::.ctor
 
-    // method line 17
+    // method line 10
     .method public hidebysig specialname 
            instance default string get_Source ()  cil managed 
     {
-        // Method begins at RVA 0x5568
+        // Method begins at RVA 0x5270
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -728,11 +367,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_Source
 
-    // method line 18
+    // method line 11
     .method public hidebysig specialname 
            instance default void set_Source (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5583
+        // Method begins at RVA 0x528b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -743,11 +382,11 @@
 	IL_000d:  ret 
     } // end of method GetTask::set_Source
 
-    // method line 19
+    // method line 12
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_DestinationFile ()  cil managed 
     {
-        // Method begins at RVA 0x5594
+        // Method begins at RVA 0x529c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -762,11 +401,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_DestinationFile
 
-    // method line 20
+    // method line 13
     .method public hidebysig specialname 
            instance default void set_DestinationFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x55af
+        // Method begins at RVA 0x52b7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -776,11 +415,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_DestinationFile
 
-    // method line 21
+    // method line 14
     .method public hidebysig specialname 
            instance default string get_HttpProxy ()  cil managed 
     {
-        // Method begins at RVA 0x55bc
+        // Method begins at RVA 0x52c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -795,11 +434,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_HttpProxy
 
-    // method line 22
+    // method line 15
     .method public hidebysig specialname 
            instance default void set_HttpProxy (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x55d7
+        // Method begins at RVA 0x52df
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -809,11 +448,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_HttpProxy
 
-    // method line 23
+    // method line 16
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.Proxy get_Proxy ()  cil managed 
     {
-        // Method begins at RVA 0x55e4
+        // Method begins at RVA 0x52ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -828,11 +467,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_Proxy
 
-    // method line 24
+    // method line 17
     .method public hidebysig specialname 
            instance default void set_Proxy (class NAnt.Core.Types.Proxy 'value')  cil managed 
     {
-        // Method begins at RVA 0x55ff
+        // Method begins at RVA 0x5307
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -842,11 +481,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_Proxy
 
-    // method line 25
+    // method line 18
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
     {
-        // Method begins at RVA 0x560c
+        // Method begins at RVA 0x5314
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -861,11 +500,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_Credentials
 
-    // method line 26
+    // method line 19
     .method public hidebysig specialname 
            instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
     {
-        // Method begins at RVA 0x5627
+        // Method begins at RVA 0x532f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -875,11 +514,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_Credentials
 
-    // method line 27
+    // method line 20
     .method public hidebysig specialname 
            instance default bool get_IgnoreErrors ()  cil managed 
     {
-        // Method begins at RVA 0x5634
+        // Method begins at RVA 0x533c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -894,11 +533,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_IgnoreErrors
 
-    // method line 28
+    // method line 21
     .method public hidebysig specialname 
            instance default void set_IgnoreErrors (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x564f
+        // Method begins at RVA 0x5357
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -908,11 +547,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_IgnoreErrors
 
-    // method line 29
+    // method line 22
     .method public hidebysig specialname 
            instance default bool get_UseTimeStamp ()  cil managed 
     {
-        // Method begins at RVA 0x565c
+        // Method begins at RVA 0x5364
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -927,11 +566,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_UseTimeStamp
 
-    // method line 30
+    // method line 23
     .method public hidebysig specialname 
            instance default void set_UseTimeStamp (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x5677
+        // Method begins at RVA 0x537f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -941,11 +580,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_UseTimeStamp
 
-    // method line 31
+    // method line 24
     .method public hidebysig specialname 
            instance default int32 get_Timeout ()  cil managed 
     {
-        // Method begins at RVA 0x5684
+        // Method begins at RVA 0x538c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -960,11 +599,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_Timeout
 
-    // method line 32
+    // method line 25
     .method public hidebysig specialname 
            instance default void set_Timeout (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x569f
+        // Method begins at RVA 0x53a7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -974,11 +613,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_Timeout
 
-    // method line 33
+    // method line 26
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.FileSet get_Certificates ()  cil managed 
     {
-        // Method begins at RVA 0x56ac
+        // Method begins at RVA 0x53b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -993,11 +632,11 @@
 	IL_000e:  ret 
     } // end of method GetTask::get_Certificates
 
-    // method line 34
+    // method line 27
     .method public hidebysig specialname 
            instance default void set_Certificates (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x56c7
+        // Method begins at RVA 0x53cf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1007,11 +646,11 @@
 	IL_0008:  ret 
     } // end of method GetTask::set_Certificates
 
-    // method line 35
+    // method line 28
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x56d4
+        // Method begins at RVA 0x53dc
 	// Code size 116 (0x74)
 	.maxstack 2
 	IL_0000:  nop 
@@ -1056,11 +695,11 @@
 	IL_0073:  ret 
     } // end of method GetTask::Initialize
 
-    // method line 36
+    // method line 29
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x5754
+        // Method begins at RVA 0x545c
 	// Code size 989 (0x3dd)
 	.maxstack 8
 	.locals init (
@@ -1463,11 +1102,11 @@
 	IL_03dc:  ret 
     } // end of method GetTask::ExecuteTask
 
-    // method line 37
+    // method line 30
     .method family hidebysig 
            instance default void TouchFile (class [mscorlib]System.IO.FileInfo file, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
     {
-        // Method begins at RVA 0x5ba4
+        // Method begins at RVA 0x58ac
 	// Code size 126 (0x7e)
 	.maxstack 8
 	.locals init (
@@ -1531,11 +1170,11 @@
 	IL_007d:  ret 
     } // end of method GetTask::TouchFile
 
-    // method line 38
+    // method line 31
     .method private hidebysig 
            instance default class [System]System.Net.WebRequest GetWebRequest (string url, valuetype [mscorlib]System.DateTime fileLastModified)  cil managed 
     {
-        // Method begins at RVA 0x5c40
+        // Method begins at RVA 0x5948
 	// Code size 364 (0x16c)
 	.maxstack 2
 	.locals init (
@@ -1789,530 +1428,1103 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit EchoTask
+  .class public auto ansi beforefieldinit ChooseTask
   	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 06 63 68 6F 6F 73 65 00 00 ) // ...choose..
 
-    .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
+    .field  private  class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> _elementContainers
 
-    // method line 39
+    // method line 32
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5dc8
+        // Method begins at RVA 0x5ad0
 	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 3000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
+	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 EchoTask::.ctor
+    } // end of method ChooseTask::.ctor
 
-    // method line 40
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    // method line 33
+    .method private hidebysig specialname 
+           instance default bool get_IsFallbackDefined ()  cil managed 
     {
-        // Method begins at RVA 0x5ddc
-	// Code size 37 (0x25)
+        // Method begins at RVA 0x5ae4
+	// Code size 88 (0x58)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		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:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
-	IL_0007:  brtrue IL_0017
+	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_000c:  newobj instance void class [mscorlib]System.Text.UTF8Encoding::'.ctor'()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0023
+	  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_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_0027:  nop 
+	  IL_0028:  ldc.i4.1 
+	  IL_0029:  stloc.2 
+	  IL_002a:  leave IL_0056
 
-	IL_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method EchoTask::get_Encoding
+	  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
 
-    // method line 41
-    .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5e0d
-	// 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_003c:  leave IL_004f
 
-    // method line 42
-    .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
+	} // 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 34
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x5e18
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x5b58
+	// Code size 112 (0x70)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		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.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.EchoTask::_message
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EchoTask::get_Message
+	  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
 
-    // method line 43
-    .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5e34
-	// Code size 79 (0x4f)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0045
+	  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_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_0035:  nop 
+	  IL_0036:  ldloc.2 
+	  IL_0037:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
+	  IL_003c:  leave IL_005c
 
-	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_0041:  nop 
+	  IL_0042:  br IL_004f
 
-	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_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_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_005c:  leave IL_006f
 
-    // method line 44
-    .method public hidebysig specialname 
-           instance default string get_Contents ()  cil managed 
+	} // 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 35
+    .method public hidebysig 
+           instance default void AddCondition (class NAnt.Core.Tasks.ChooseTask/When when)  cil managed 
     {
-        // Method begins at RVA 0x5e90
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        .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 0x5be4
+	// Code size 59 (0x3b)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.EchoTask::_contents
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined()
+	IL_0007:  brfalse IL_002e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EchoTask::get_Contents
+	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 45
-    .method public hidebysig specialname 
-           instance default void set_Contents (string 'value')  cil managed 
+    // method line 36
+    .method public hidebysig 
+           instance default void AddFallback (class NAnt.Core.ElementContainer fallback)  cil managed 
     {
-        // Method begins at RVA 0x5eac
-	// Code size 79 (0x4f)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0045
+        .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..
 
-	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
+        // Method begins at RVA 0x5c20
+	// 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_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
-	IL_001f:  brfalse IL_0036
+	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
 
-	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
+	.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
 
-	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 37
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x5edf
+	// 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 46
+    // method line 38
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default bool get_Test ()  cil managed 
     {
-        // Method begins at RVA 0x5f08
+        // Method begins at RVA 0x5ef0
 	// 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.Core.Tasks.EchoTask::_file
+	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 EchoTask::get_File
+    } // end of method When::get_Test
 
-    // method line 47
+    // method line 39
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Test (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x5f23
+        // Method begins at RVA 0x5f0b
 	// 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 bool NAnt.Core.Tasks.ChooseTask/When::_test
 	IL_0008:  ret 
-    } // end of method EchoTask::set_File
+    } // end of method When::set_Test
 
-    // method line 48
+    // method line 40
+    .method public virtual hidebysig 
+           instance default void Execute ()  cil managed 
+    {
+        // Method begins at RVA 0x5f15
+	// Code size 25 (0x19)
+	.maxstack 8
+	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_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 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 41
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x5f2f
+	// 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
+
+    // method line 42
     .method public hidebysig specialname 
-           instance default bool get_Append ()  cil managed 
+           instance default string get_Resource ()  cil managed 
     {
-        // Method begins at RVA 0x5f30
+        // Method begins at RVA 0x5f38
 	// 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.EchoTask::_append
+	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 EchoTask::get_Append
+    } // end of method AvailableTask::get_Resource
 
-    // method line 49
+    // method line 43
     .method public hidebysig specialname 
-           instance default void set_Append (bool 'value')  cil managed 
+           instance default void set_Resource (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5f4b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x5f53
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.EchoTask::_append
-	IL_0008:  ret 
-    } // end of method EchoTask::set_Append
+	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 50
+    // method line 44
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
+           instance default valuetype NAnt.Core.Tasks.AvailableTask/ResourceType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x5f58
+        // Method begins at RVA 0x5f64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		valuetype NAnt.Core.Tasks.AvailableTask/ResourceType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
+	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 EchoTask::get_MessageLevel
+    } // end of method AvailableTask::get_Type
 
-    // method line 51
+    // method line 45
     .method public hidebysig specialname 
-           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
+           instance default void set_Type (valuetype NAnt.Core.Tasks.AvailableTask/ResourceType 'value')  cil managed 
     {
-        // Method begins at RVA 0x5f74
+        // Method begins at RVA 0x5f80
 	// Code size 65 (0x41)
 	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.Core.Level
+	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.Level
+	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
 
 	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_0021:  ldstr "An invalid type {0} was specified."
 	IL_0026:  ldarg.1 
-	IL_0027:  box NAnt.Core.Level
+	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.Level NAnt.Core.Tasks.EchoTask::_messageLevel
+	IL_003a:  stfld valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::_resourceType
 	IL_003f:  nop 
 	IL_0040:  ret 
-    } // end of method EchoTask::set_MessageLevel
+    } // end of method AvailableTask::set_Type
 
-    // method line 52
+    // method line 46
+    .method public hidebysig specialname 
+           instance default string get_PropertyName ()  cil managed 
+    {
+        // Method begins at RVA 0x5fd0
+	// 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 47
+    .method public hidebysig specialname 
+           instance default void set_PropertyName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x5feb
+	// 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 48
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x5fc4
-	// Code size 335 (0x14f)
-	.maxstack 3
+        // Method begins at RVA 0x5ffc
+	// Code size 43 (0x2b)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.IO.StreamWriter	V_0,
-		class [mscorlib]System.Exception	V_1)
+		bool	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_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
 
-	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
+    // method line 49
+    .method family virtual hidebysig newslot 
+           instance default bool Evaluate ()  cil managed 
+    {
+        // Method begins at RVA 0x6034
+	// 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_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_0027:  ldarg.0 
+	IL_0028:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFile()
+	IL_002d:  stloc.0 
+	IL_002e:  br IL_0077
 
-	    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_0033:  ldarg.0 
+	IL_0034:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckDirectory()
+	IL_0039:  stloc.0 
+	IL_003a:  br IL_0077
 
-	    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
+	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_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_004b:  ldarg.0 
+	IL_004c:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFrameworkSDK()
+	IL_0051:  stloc.0 
+	IL_0052:  br IL_0077
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00aa:  ldloc.0 
-	    IL_00ab:  brfalse IL_00b6
+	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_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
+	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
 
-	} // 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_00b3:  ldloc.2 
+	IL_00b4:  ret 
+    } // end of method AvailableTask::Evaluate
 
-	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 50
+    .method private hidebysig 
+           instance default bool CheckFile ()  cil managed 
+    {
+        // Method begins at RVA 0x60f8
+	// 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
 
-	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
+	} // 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
 
-	IL_0116:  ldarg.0 
-	IL_0117:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
-	IL_011c:  brfalse IL_013a
+    // method line 51
+    .method private hidebysig 
+           instance default bool CheckDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x6164
+	// 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
 
-	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
+	} // 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_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 52
+    .method private hidebysig 
+           instance default bool CheckFramework ()  cil managed 
+    {
+        // Method begins at RVA 0x61d0
+	// 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 53
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    .method private hidebysig 
+           instance default bool CheckFrameworkSDK ()  cil managed 
     {
-        // Method begins at RVA 0x613c
-	// Code size 62 (0x3e)
-	.maxstack 8
+        // Method begins at RVA 0x61fc
+	// 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 [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:  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_0016:  br IL_003d
+	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_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
+	IL_0031:  nop 
+	IL_0032:  ldc.i4.0 
+	IL_0033:  stloc.1 
+	IL_0034:  br IL_0039
 
-	.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_0039:  ldloc.1 
+	IL_003a:  ret 
+    } // end of method AvailableTask::CheckFrameworkSDK
 
-		.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 ()
+	.property instance string Resource ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
+		.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.
 
-		.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') 
+		.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 class [mscorlib]System.IO.FileInfo File ()
+	.property instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Type ()
 	{
-		.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 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 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') 
+		.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 bool Append ()
+	.property instance string PropertyName ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 70 70 65 6E 64 00 00 ) // ...append..
+		.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 bool NAnt.Core.Tasks.EchoTask::get_Append () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_Append (bool '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.AvailableTask::get_PropertyName () 
+		.set instance default void NAnt.Core.Tasks.AvailableTask::set_PropertyName (string 'value') 
 	}
-	.property instance valuetype NAnt.Core.Level MessageLevel ()
+  .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 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..
+
+    .field  private  string _prefix
+
+    // method line 54
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x6243
+	// Code size 18 (0x12)
+	.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
+
+    // method line 55
+    .method public hidebysig specialname 
+           instance default string get_Prefix ()  cil managed 
+    {
+        // Method begins at RVA 0x6258
+	// 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.SysInfoTask::_prefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SysInfoTask::get_Prefix
+
+    // method line 56
+    .method public hidebysig specialname 
+           instance default void set_Prefix (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x6273
+	// 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_0008:  ret 
+    } // end of method SysInfoTask::set_Prefix
+
+    // method line 57
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x6280
+	// Code size 788 (0x314)
+	.maxstack 7
+	.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)
+	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
+
+	} // 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 ()
 	{
-		.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 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 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') 
+		.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.Tasks.EchoTask
+  } // end of class NAnt.Core.Tasks.SysInfoTask
 }
 
 .namespace NAnt.Core.Tasks
@@ -2326,11 +2538,11 @@
     .field  private  class [mscorlib]System.IO.DirectoryInfo _path
     .field  private  class NAnt.Core.Types.FileSet _fileset
 
-    // method line 54
+    // method line 58
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x617b
+        // Method begins at RVA 0x65c8
 	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2341,11 +2553,11 @@
 	IL_0011:  ret 
     } // end of method LoadTasksTask::.ctor
 
-    // method line 55
+    // method line 59
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AssemblyPath ()  cil managed 
     {
-        // Method begins at RVA 0x6190
+        // Method begins at RVA 0x65dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2360,11 +2572,11 @@
 	IL_000e:  ret 
     } // end of method LoadTasksTask::get_AssemblyPath
 
-    // method line 56
+    // method line 60
     .method public hidebysig specialname 
            instance default void set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x61ab
+        // Method begins at RVA 0x65f7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2374,11 +2586,11 @@
 	IL_0008:  ret 
     } // end of method LoadTasksTask::set_AssemblyPath
 
-    // method line 57
+    // method line 61
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x61b8
+        // Method begins at RVA 0x6604
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2393,11 +2605,11 @@
 	IL_000e:  ret 
     } // end of method LoadTasksTask::get_Path
 
-    // method line 58
+    // method line 62
     .method public hidebysig specialname 
            instance default void set_Path (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x61d3
+        // Method begins at RVA 0x661f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2407,11 +2619,11 @@
 	IL_0008:  ret 
     } // end of method LoadTasksTask::set_Path
 
-    // method line 59
+    // method line 63
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.FileSet get_TaskFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x61e0
+        // Method begins at RVA 0x662c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2426,11 +2638,11 @@
 	IL_000e:  ret 
     } // end of method LoadTasksTask::get_TaskFileSet
 
-    // method line 60
+    // method line 64
     .method public hidebysig specialname 
            instance default void set_TaskFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x61fb
+        // Method begins at RVA 0x6647
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2440,11 +2652,11 @@
 	IL_0008:  ret 
     } // end of method LoadTasksTask::set_TaskFileSet
 
-    // method line 61
+    // method line 65
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x6208
+        // Method begins at RVA 0x6654
         .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
 	// Code size 559 (0x22f)
 	.maxstack 5
@@ -2677,11 +2889,11 @@
 	IL_022e:  ret 
     } // end of method LoadTasksTask::ExecuteTask
 
-    // method line 62
+    // method line 66
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x6484
+        // Method begins at RVA 0x68d0
 	// Code size 42 (0x2a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2728,2570 +2940,3657 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit LoadFileTask
+  .class public auto ansi beforefieldinit XmlPokeTask
   	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..
+    .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 _file
-    .field  private  class [mscorlib]System.Text.Encoding _encoding
-    .field  private  string _property
-    .field  private  class NAnt.Core.Filters.FilterChain _filterChain
+    .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 63
+    // method line 67
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x64af
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x68fb
+	// 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 LoadFileTask::.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 64
+    // method line 68
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
     {
-        // Method begins at RVA 0x64b8
+        // Method begins at RVA 0x6910
 	// 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_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 LoadFileTask::get_File
+    } // end of method XmlPokeTask::get_XmlFile
 
-    // method line 65
+    // method line 69
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x64d3
+        // Method begins at RVA 0x692b
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::_xmlFile
 	IL_0008:  ret 
-    } // end of method LoadFileTask::set_File
+    } // end of method XmlPokeTask::set_XmlFile
 
-    // method line 66
+    // method line 70
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default string get_XPath ()  cil managed 
     {
-        // Method begins at RVA 0x64e0
+        // Method begins at RVA 0x6938
 	// 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.LoadFileTask::_property
+	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 LoadFileTask::get_Property
+    } // end of method XmlPokeTask::get_XPath
 
-    // method line 67
+    // method line 71
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_XPath (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x64fb
+        // Method begins at RVA 0x6953
 	// 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_0003:  stfld string NAnt.Core.Tasks.XmlPokeTask::_xPathExpression
 	IL_0008:  ret 
-    } // end of method LoadFileTask::set_Property
+    } // end of method XmlPokeTask::set_XPath
 
-    // method line 68
+    // method line 72
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x6508
+        // Method begins at RVA 0x6960
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		string	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 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 LoadFileTask::get_Encoding
+    } // end of method XmlPokeTask::get_Value
 
-    // method line 69
+    // method line 73
     .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x6523
+        // Method begins at RVA 0x697b
 	// 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 string NAnt.Core.Tasks.XmlPokeTask::_value
 	IL_0008:  ret 
-    } // end of method LoadFileTask::set_Encoding
+    } // end of method XmlPokeTask::set_Value
 
-    // method line 70
+    // method line 74
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterChain get_FilterChain ()  cil managed 
+           instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
     {
-        // Method begins at RVA 0x6530
+        // Method begins at RVA 0x6988
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain	V_0)
+		class NAnt.Core.Types.XmlNamespaceCollection	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 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 LoadFileTask::get_FilterChain
+    } // end of method XmlPokeTask::get_Namespaces
 
-    // method line 71
+    // method line 75
     .method public hidebysig specialname 
-           instance default void set_FilterChain (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+           instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x654b
+        // Method begins at RVA 0x69a3
 	// 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 class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
 	IL_0008:  ret 
-    } // end of method LoadFileTask::set_FilterChain
-
-    // method line 72
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x6558
-	// Code size 159 (0x9f)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.IOException	V_1)
-	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
-}
-
-.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..
-
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
-
-    // method line 73
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6614
-	// 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 MkDirTask::.ctor
+    } // end of method XmlPokeTask::set_Namespaces
 
-    // method line 74
+    // method line 76
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
+           instance default bool get_PreserveWhitespace ()  cil managed 
     {
-        // Method begins at RVA 0x661c
+        // Method begins at RVA 0x69b0
 	// 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:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
+	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 MkDirTask::get_Dir
+    } // end of method XmlPokeTask::get_PreserveWhitespace
 
-    // method line 75
+    // method line 77
     .method public hidebysig specialname 
-           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+           instance default void set_PreserveWhitespace (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x6637
+        // Method begins at RVA 0x69cb
 	// 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 bool NAnt.Core.Tasks.XmlPokeTask::_preserveWhitespace
 	IL_0008:  ret 
-    } // end of method MkDirTask::set_Dir
+    } // end of method XmlPokeTask::set_PreserveWhitespace
 
-    // method line 76
+    // method line 78
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x6644
-	// Code size 120 (0x78)
+        // Method begins at RVA 0x69d8
+	// 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_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 79
+    .method private hidebysig 
+           instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName, bool preserveWhitespace)  cil managed 
+    {
+        // Method begins at RVA 0x6b58
+	// Code size 121 (0x79)
 	.maxstack 7
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		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_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
+	  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_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_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.0 
+	  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:  ret 
-    } // end of method MkDirTask::ExecuteTask
+	IL_0077:  ldloc.1 
+	IL_0078:  ret 
+    } // end of method XmlPokeTask::LoadDocument
 
-	.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.
+    // method line 80
+    .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 0x6bf0
+	// 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
 
-		.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
-}
+	} // 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.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..
+	IL_0057:  ldloc.0 
+	IL_0058:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_005d:  brtrue IL_0084
 
-    .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
+	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
 
-    // method line 77
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x66d8
-	// 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
+	IL_00b3:  ldloc.2 
+	IL_00b4:  ret 
+    } // end of method XmlPokeTask::SelectNodes
 
-    // method line 78
-    .method public hidebysig specialname 
-           instance default string get_From ()  cil managed 
+    // method line 81
+    .method private hidebysig 
+           instance default void UpdateNodes (class [System.Xml]System.Xml.XmlNodeList nodes, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x6750
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6cc4
+	// Code size 161 (0xa1)
+	.maxstack 7
 	.locals init (
-		string	V_0)
+		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:  ldfld string NAnt.Core.Tasks.MailTask::_from
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_From
+	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
 
-    // method line 79
-    .method public hidebysig specialname 
-           instance default void set_From (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x676b
-	// 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::_from
-	IL_000d:  ret 
-    } // end of method MailTask::set_From
+	  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
 
-    // method line 80
-    .method public hidebysig specialname 
-           instance default string get_ToList ()  cil managed 
-    {
-        // Method begins at RVA 0x677c
-	// 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
+	  IL_006d:  leave IL_0086
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_ToList
+	} // 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 81
-    .method public hidebysig specialname 
-           instance default void set_ToList (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6797
-	// 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::_toList
-	IL_0008:  ret 
-    } // end of method MailTask::set_ToList
+	  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 82
-    .method public hidebysig specialname 
-           instance default string get_ReplyTo ()  cil managed 
+    .method private hidebysig 
+           instance default void SaveDocument (class [System.Xml]System.Xml.XmlDocument document, string fileName)  cil managed 
     {
-        // Method begins at RVA 0x67a4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6d84
+	// Code size 104 (0x68)
+	.maxstack 7
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_replyTo
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.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
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_ReplyTo
+	} // 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.
+
+		.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.
+
+		.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.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.
+
+		.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.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..
+
+		.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.
+
+		.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 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
+}
+
+.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..
+
+    .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 83
-    .method public hidebysig specialname 
-           instance default void set_ReplyTo (string 'value')  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x67bf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x6e08
+	// Code size 18 (0x12)
 	.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_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 84
-    .method public hidebysig specialname 
-           instance default string get_CcList ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x67cc
+        // Method begins at RVA 0x6e1c
 	// 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.MailTask::_ccList
+	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 MailTask::get_CcList
+    } // end of method NAntSchemaTask::get_OutputFile
 
     // method line 85
-    .method public hidebysig specialname 
-           instance default void set_CcList (string 'value')  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x67e7
+        // Method begins at RVA 0x6e37
 	// 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 class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::_outputFile
 	IL_0008:  ret 
-    } // end of method MailTask::set_CcList
+    } // end of method NAntSchemaTask::set_OutputFile
 
     // method line 86
-    .method public hidebysig specialname 
-           instance default string get_BccList ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_TargetNamespace ()  cil managed 
     {
-        // Method begins at RVA 0x67f4
+        // Method begins at RVA 0x6e44
 	// 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::_bccList
+	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 MailTask::get_BccList
+    } // end of method NAntSchemaTask::get_TargetNamespace
 
     // method line 87
-    .method public hidebysig specialname 
-           instance default void set_BccList (string 'value')  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_TargetNamespace (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x680f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x6e5f
+	// 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::_bccList
-	IL_0008:  ret 
-    } // end of method MailTask::set_BccList
+	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 88
-    .method public hidebysig specialname 
-           instance default string get_Mailhost ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_ForType ()  cil managed 
     {
-        // Method begins at RVA 0x681c
+        // Method begins at RVA 0x6e70
 	// 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::_mailHost
+	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 MailTask::get_Mailhost
+    } // end of method NAntSchemaTask::get_ForType
 
     // method line 89
-    .method public hidebysig specialname 
-           instance default void set_Mailhost (string 'value')  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ForType (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x6837
+        // Method begins at RVA 0x6e8b
 	// 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_0008:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_forType
 	IL_000d:  ret 
-    } // end of method MailTask::set_Mailhost
+    } // end of method NAntSchemaTask::set_ForType
 
     // method line 90
-    .method public hidebysig specialname 
-           instance default int32 get_Port ()  cil managed 
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x6848
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6e9c
+        .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 (
-		int32	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:  ldfld int32 NAnt.Core.Tasks.MailTask::_portNumber
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_ForType()
+	IL_0007:  brtrue IL_00ee
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Port
+	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_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_006c:  leave IL_0087
+
+	} // 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
+
+	  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 91
-    .method public hidebysig specialname 
-           instance default void set_Port (int32 'value')  cil managed 
+    .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 0x6863
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x712c
+	// 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.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.MailTask::_portNumber
-	IL_0008:  ret 
-    } // end of method MailTask::set_Port
+	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 92
-    .method public hidebysig specialname 
-           instance default bool get_EnableSsl ()  cil managed 
+    .method family static hidebysig 
+           default string GenerateIDFromType (class [mscorlib]System.Type 'type')  cil managed 
     {
-        // Method begins at RVA 0x6870
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x717c
+	// Code size 60 (0x3c)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.MailTask::_enableSsl
-	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 MailTask::get_EnableSsl
+	IL_003a:  ldloc.0 
+	IL_003b:  ret 
+    } // end of method NAntSchemaTask::GenerateIDFromType
 
     // method line 93
-    .method public hidebysig specialname 
-           instance default void set_EnableSsl (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x688b
-	// 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 94
-    .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
+    .method family static hidebysig 
+           default class [System.Xml]System.Xml.Schema.XmlSchemaAttribute CreateXsdAttribute (string name, bool required)  cil managed 
     {
-        // Method begins at RVA 0x6898
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x71c4
+	// Code size 52 (0x34)
+	.maxstack 2
 	.locals init (
-		string	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:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_message
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Message
+	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
 
-    // method line 95
-    .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x68b3
-	// 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::_message
-	IL_000d:  ret 
-    } // end of method MailTask::set_Message
+	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
 
-    // method line 96
-    .method public hidebysig specialname 
-           instance default string get_Subject ()  cil managed 
+	IL_0032:  ldloc.1 
+	IL_0033:  ret 
+    } // end of method NAntSchemaTask::CreateXsdAttribute
+
+    // method line 94
+    .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 0x68c4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x7204
+	// Code size 71 (0x47)
+	.maxstack 6
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_0,
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_subject
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Subject
+	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
 
-    // method line 97
-    .method public hidebysig specialname 
-           instance default void set_Subject (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x68df
-	// 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::_subject
-	IL_000d:  ret 
-    } // end of method MailTask::set_Subject
+	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
 
-    // method line 98
-    .method public hidebysig specialname 
-           instance default bool get_IsBodyHtml ()  cil managed 
+	IL_0045:  ldloc.1 
+	IL_0046:  ret 
+    } // end of method NAntSchemaTask::CreateXsdSequence
+
+    // method line 95
+    .method family static hidebysig 
+           default class [System.Xml]System.Xml.XmlNode[] TextToNodeArray (string text)  cil managed 
     {
-        // Method begins at RVA 0x68f0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x7258
+	// Code size 31 (0x1f)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [System.Xml]System.Xml.XmlNode[]	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_IsBodyHtml
+	IL_001d:  ldloc.1 
+	IL_001e:  ret 
+    } // end of method NAntSchemaTask::TextToNodeArray
 
-    // method line 99
-    .method public hidebysig specialname 
-           instance default void set_IsBodyHtml (bool 'value')  cil managed 
+    // method line 96
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x690b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x7283
+	// Code size 40 (0x28)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
-	IL_0008:  ret 
-    } // end of method MailTask::set_IsBodyHtml
+	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
 
-    // method line 100
-    .method public hidebysig specialname 
-           instance default string get_UserName ()  cil managed 
-    {
-        // Method begins at RVA 0x6918
-	// 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::_userName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.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.
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_UserName
+		.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.
 
-    // method line 101
-    .method public hidebysig specialname 
-           instance default void set_UserName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6933
-	// 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_0008:  ret 
-    } // end of method MailTask::set_UserName
+		.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.
 
-    // method line 102
-    .method public hidebysig specialname 
-           instance default string get_Password ()  cil managed 
+		.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 97
+    .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 0x6940
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x72ac
+	// Code size 934 (0x3a6)
+	.maxstack 7
 	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_passWord
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+		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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Password
+	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
 
-    // method line 103
-    .method public hidebysig specialname 
-           instance default void set_Password (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x695b
-	// 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_0008:  ret 
-    } // end of method MailTask::set_Password
+	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
 
-    // method line 104
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.MailTask/MailFormat get_Format ()  cil managed 
-    {
-        // Method begins at RVA 0x6968
-	// 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
+	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_000c:  nop 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_001b
+	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_0014:  ldc.i4.0 
-	IL_0015:  stloc.0 
-	IL_0016:  br IL_001b
+	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_001b:  ldloc.0 
-	IL_001c:  ret 
-    } // end of method MailTask::get_Format
+	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
 
-    // method line 105
-    .method public hidebysig specialname 
-           instance default void set_Format (valuetype NAnt.Core.Tasks.MailTask/MailFormat 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6994
-	// 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
+	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_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_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_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_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_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
+	  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
 
-    // method line 106
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_Files ()  cil managed 
-    {
-        // Method begins at RVA 0x6a0c
-	// 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
+	  IL_0227:  leave IL_0243
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Files
+	} // 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
 
-    // method line 107
-    .method public hidebysig specialname 
-           instance default void set_Files (class NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6a27
-	// 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.MailTask::_files
-	IL_0008:  ret 
-    } // end of method MailTask::set_Files
+	  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 108
+    // method line 98
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_Attachments ()  cil managed 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchema get_Schema ()  cil managed 
     {
-        // Method begins at RVA 0x6a34
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x7670
+	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class [System.Xml]System.Xml.Schema.XmlSchema	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:  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 MailTask::get_Attachments
+	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 109
-    .method public hidebysig specialname 
-           instance default void set_Attachments (class NAnt.Core.Types.FileSet 'value')  cil managed 
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method NAntSchemaGenerator::get_Schema
+
+    // method line 99
+    .method public hidebysig 
+           instance default void Compile ()  cil managed 
     {
-        // Method begins at RVA 0x6a4f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x76a3
+	// Code size 25 (0x19)
 	.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:  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 110
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 100
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType CreateTaskListComplexType (class [mscorlib]System.Type[] tasks)  cil managed 
     {
-        // Method begins at RVA 0x6a5c
-	// Code size 68 (0x44)
-	.maxstack 2
+        // Method begins at RVA 0x76c0
+	// 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:  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_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_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
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
 
-    // method line 111
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 101
+    .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 0x6aac
-	// Code size 1509 (0x5e5)
-	.maxstack 7
+        // Method begins at RVA 0x76e4
+	// Code size 392 (0x188)
+	.maxstack 6
 	.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)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Net.Mail.MailMessage::'.ctor'()
+		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:  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_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:  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_002e:  ldc.i4.0 
+	IL_002f:  stloc.s 4
+	IL_0031:  br IL_0086
 
-	  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_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_0060:  leave IL_0074
+	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
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0065:  ldloc.s 5
-	  IL_0067:  brfalse IL_0073
+	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_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_00fb:  ldarg.3 
+	IL_00fc:  brfalse IL_0136
 
-	  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_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_00a6:  leave IL_00ba
+	IL_0185:  ldloc.s 16
+	IL_0187:  ret 
+    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00ab:  ldloc.s 7
-	  IL_00ad:  brfalse IL_00b9
+    // method line 102
+    .method family hidebysig 
+           instance default void ValidationEH (object sender, class [System.Xml]System.Xml.Schema.ValidationEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x7878
+	// 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_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_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_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_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_00ec:  leave IL_0100
+	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
 
-	} // end .try 2
-	finally  { // 2
-	  IL_00f1:  ldloc.s 9
-	  IL_00f3:  brfalse IL_00ff
+	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_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
+    // method line 103
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindComplexTypeByID (string id)  cil managed 
+    {
+        // Method begins at RVA 0x790c
+	// 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_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_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_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_002a:  ldnull 
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_0031
 
-	  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_0031:  ldloc.0 
+	IL_0032:  ret 
+    } // end of method NAntSchemaGenerator::FindComplexTypeByID
 
-	  IL_0160:  leave IL_0174
+    // method line 104
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindOrCreateComplexType (class [mscorlib]System.Type t)  cil managed 
+    {
+        // Method begins at RVA 0x794c
+	// 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
 
-	} // end .try 3
-	finally  { // 3
-	  IL_0165:  ldloc.s 12
-	  IL_0167:  brfalse IL_0173
+	IL_0016:  nop 
+	IL_0017:  ldloc.0 
+	IL_0018:  stloc.2 
+	IL_0019:  br IL_044c
 
-	  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_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_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_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_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_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_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_0097:  nop 
+	IL_0098:  br IL_03f5
 
-	  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_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_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
+	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
 
-	  } // 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
+	IL_00fc:  ldloc.s 9
+	IL_00fe:  brfalse IL_03f4
 
-	  } // 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_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_02c0:  leave IL_02dc
+	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
 
-	} // 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_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_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_016e:  ldloc.s 5
+	IL_0170:  isinst [mscorlib]System.Reflection.FieldInfo
+	IL_0175:  brfalse IL_018f
 
-	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_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_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
+	IL_018f:  ldloc.s 5
+	IL_0191:  isinst [mscorlib]System.Reflection.MethodInfo
+	IL_0196:  brfalse IL_01dd
 
-	  } // 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
+	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
 
-	  } // 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_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_0378:  leave IL_0394
+	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
 
-	} // 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_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_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_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_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_021c:  nop 
+	IL_021d:  ldloc.s 13
+	IL_021f:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_0224:  brfalse IL_0239
 
-	    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_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_046e:  nop 
-	    IL_046f:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
-	    IL_0474:  brfalse IL_048c
+	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_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_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_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
+	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
 
-	  } // 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_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_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_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_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_02aa:  ldloc.s 16
+	IL_02ac:  stloc.s 13
+	IL_02ae:  nop 
+	IL_02af:  nop 
+	IL_02b0:  br IL_02c0
 
-	    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_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
 
-	} // end .try 9
-	finally  { // 9
-	  IL_05d5:  ldloc.s 25
-	  IL_05d7:  brfalse IL_05e3
+	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_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_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
 
-    // method line 112
+	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 105
     .method private hidebysig 
-           instance default string ReadFile (string filename)  cil managed 
+           instance default string GetTaskName (class [mscorlib]System.Type t)  cil managed 
     {
-        // Method begins at RVA 0x7194
-	// Code size 49 (0x31)
-	.maxstack 1
+        // Method begins at RVA 0x7da8
+	// Code size 58 (0x3a)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		string	V_1,
-		string	V_2)
+		class NAnt.Core.Attributes.TaskNameAttribute[]	V_0,
+		string	V_1)
 	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_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
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0022:  ldloc.0 
-	  IL_0023:  brfalse IL_002e
+	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_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_0030:  nop 
+	IL_0031:  ldnull 
+	IL_0032:  stloc.1 
+	IL_0033:  br IL_0038
 
-    // method line 113
+	IL_0038:  ldloc.1 
+	IL_0039:  ret 
+    } // end of method NAntSchemaGenerator::GetTaskName
+
+    // method line 106
     .method private hidebysig 
-           instance default class [System]System.Net.Mail.MailAddressCollection ParseAddresses (string addresses)  cil managed 
+           instance default string GetDataTypeName (class [mscorlib]System.Type t)  cil managed 
     {
-        // Method begins at RVA 0x71e4
-	// Code size 147 (0x93)
-	.maxstack 5
+        // Method begins at RVA 0x7df0
+	// Code size 58 (0x3a)
+	.maxstack 3
 	.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)
+		class NAnt.Core.Attributes.ElementNameAttribute[]	V_0,
+		string	V_1)
 	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_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_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  ldstr ";"
-	IL_0019:  callvirt instance bool string::Contains(string)
-	IL_001e:  brfalse IL_0078
+	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_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_0030:  nop 
+	IL_0031:  ldnull 
+	IL_0032:  stloc.1 
+	IL_0033:  br IL_0038
 
-	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_0038:  ldloc.1 
+	IL_0039:  ret 
+    } // end of method NAntSchemaGenerator::GetDataTypeName
 
-	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
+	.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
 
-	IL_0072:  nop 
-	IL_0073:  br IL_0087
+  } // end of class NAnt.Core.Tasks.NAntSchemaTask
+}
 
-	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
+.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..
 
-	IL_0090:  ldloc.s 5
-	IL_0092:  ret 
-    } // end of method MailTask::ParseAddresses
+
+    // method line 107
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7e36
+	// 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 108
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x7e3e
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DescriptionTask::ExecuteTask
+
+  } // end of class NAnt.Core.Tasks.DescriptionTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .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..
+
+    .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 109
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7e41
+	// Code size 18 (0x12)
+	.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
+
+    // method line 110
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    {
+        // Method begins at RVA 0x7e54
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_File
+
+    // method line 111
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7e6f
+	// 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_0008:  ret 
+    } // end of method AttribTask::set_File
+
+    // method line 112
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_AttribFileSet ()  cil managed 
+    {
+        // Method begins at RVA 0x7e7c
+	// 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.AttribTask::_fileset
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_AttribFileSet
+
+    // method line 113
+    .method public hidebysig specialname 
+           instance default void set_AttribFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7e97
+	// 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_0008:  ret 
+    } // end of method AttribTask::set_AttribFileSet
 
     // method line 114
-    .method private hidebysig 
-           instance default class [System]System.Net.Mail.MailAddress ConvertStringToMailAddress (string address)  cil managed 
+    .method public hidebysig specialname 
+           instance default bool get_ArchiveAttrib ()  cil managed 
     {
-        // Method begins at RVA 0x7284
-	// Code size 298 (0x12a)
-	.maxstack 4
+        // Method begins at RVA 0x7ea4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_archiveAttrib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_ArchiveAttrib
+
+    // method line 115
+    .method public hidebysig specialname 
+           instance default void set_ArchiveAttrib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7ebf
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_archiveAttrib
+	IL_0008:  ret 
+    } // end of method AttribTask::set_ArchiveAttrib
 
-	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
+    // method line 116
+    .method public hidebysig specialname 
+           instance default bool get_HiddenAttrib ()  cil managed 
+    {
+        // Method begins at RVA 0x7ecc
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_HiddenAttrib
 
-	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
+    // method line 117
+    .method public hidebysig specialname 
+           instance default void set_HiddenAttrib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7ee7
+	// 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
 
-	.try { // 0
-	  IL_00b7:  nop 
-	  IL_00b8:  ldloc.1 
-	  IL_00b9:  call bool string::IsNullOrEmpty(string)
-	  IL_00be:  brtrue IL_00de
+    // method line 118
+    .method public hidebysig specialname 
+           instance default bool get_NormalAttrib ()  cil managed 
+    {
+        // Method begins at RVA 0x7ef4
+	// 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
 
-	  IL_00c3:  ldloc.2 
-	  IL_00c4:  call bool string::IsNullOrEmpty(string)
-	  IL_00c9:  brtrue IL_00de
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_NormalAttrib
 
-	  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
+    // method line 119
+    .method public hidebysig specialname 
+           instance default void set_NormalAttrib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7f0f
+	// 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_0008:  ret 
+    } // end of method AttribTask::set_NormalAttrib
 
-	  IL_00de:  ldloc.2 
-	  IL_00df:  call bool string::IsNullOrEmpty(string)
-	  IL_00e4:  brtrue IL_00f8
+    // method line 120
+    .method public hidebysig specialname 
+           instance default bool get_ReadOnlyAttrib ()  cil managed 
+    {
+        // Method begins at RVA 0x7f1c
+	// 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::_readOnlyAttrib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_ReadOnlyAttrib
 
-	  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
+    // method line 121
+    .method public hidebysig specialname 
+           instance default void set_ReadOnlyAttrib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7f37
+	// 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 122
+    .method public hidebysig specialname 
+           instance default bool get_SystemAttrib ()  cil managed 
+    {
+        // Method begins at RVA 0x7f44
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_SystemAttrib
+
+    // method line 123
+    .method public hidebysig specialname 
+           instance default void set_SystemAttrib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7f5f
+	// 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
+
+    // method line 124
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x7f6c
+	// 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)
+	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_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_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_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_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_00eb:  leave IL_0104
 
 	} // 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 
+	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_00fd:  ldloc.3 
+	  IL_00fe:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0103:  endfinally 
 	} // end handler 0
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0123:  pop 
-	  IL_0124:  nop 
-	  IL_0125:  rethrow 
+	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_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
+
+	  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_0127:  ldloc.s 10
-	IL_0129:  ret 
-    } // end of method MailTask::ConvertStringToMailAddress
+	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
 
-    // method line 115
+	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 125
     .method private hidebysig 
-           instance default string UnescapeXmlCodes (string 'value')  cil managed 
+           instance default valuetype [mscorlib]System.IO.FileAttributes GetFileAttributes ()  cil managed 
     {
-        // Method begins at RVA 0x73d8
-	// Code size 85 (0x55)
-	.maxstack 3
+        // Method begins at RVA 0x8190
+	// Code size 141 (0x8d)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		valuetype [mscorlib]System.IO.FileAttributes	V_0,
+		valuetype [mscorlib]System.IO.FileAttributes	V_1)
 	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_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_0053:  ldloc.0 
-	IL_0054:  ret 
-    } // end of method MailTask::UnescapeXmlCodes
+	IL_000e:  nop 
+	IL_000f:  ldc.i4 128
+	IL_0014:  stloc.0 
+	IL_0015:  nop 
+	IL_0016:  br IL_0062
 
-	.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_001b:  nop 
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
+	IL_0022:  brfalse IL_002e
 
-		.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_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
 
-		.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..
+	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 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..
+	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
 
-		.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..
+	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 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..
+	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
 
-		.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..
+	IL_008b:  ldloc.1 
+	IL_008c:  ret 
+    } // end of method AttribTask::GetFileAttributes
 
-		.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..
+    // method line 126
+    .method private hidebysig 
+           instance default void SetFileAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
+    {
+        // Method begins at RVA 0x822c
+	// Code size 114 (0x72)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.Exception	V_0,
+		string	V_1)
+	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
 
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	} // 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
 
-		.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_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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	} // end handler 0
+	IL_0071:  ret 
+    } // end of method AttribTask::SetFileAttributes
 
-		.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 ()
+    // method line 127
+    .method private hidebysig 
+           instance default valuetype [mscorlib]System.IO.FileAttributes GetDirectoryAttributes ()  cil managed 
+    {
+        // Method begins at RVA 0x82bc
+	// 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_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_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_005d:  ldloc.1 
+	IL_005e:  ret 
+    } // end of method AttribTask::GetDirectoryAttributes
+
+    // method line 128
+    .method private hidebysig 
+           instance default void SetDirectoryAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
+    {
+        // Method begins at RVA 0x8328
+	// 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_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_0027:  nop 
+	  IL_0028:  newobj instance void class [mscorlib]System.IO.DirectoryNotFoundException::'.ctor'()
+	  IL_002d:  throw 
+	  IL_002e:  nop 
+	  IL_002f:  leave IL_008a
+
+	} // 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
+
+	} // 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 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-		.get instance default string NAnt.Core.Tasks.MailTask::get_Message () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Message (string 'value') 
+		.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 string Subject ()
+	.property instance class NAnt.Core.Types.FileSet AttribFileSet ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 73 75 62 6A 65 63 74 00 00 ) // ...subject..
+		.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 string NAnt.Core.Tasks.MailTask::get_Subject () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Subject (string 'value') 
+		.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 IsBodyHtml ()
+	.property instance bool ArchiveAttrib ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 61 72 63 68 69 76 65 00 00 ) // ...archive..
 
 		.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') 
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_ArchiveAttrib (bool 'value') 
 	}
-	.property instance string UserName ()
+	.property instance bool HiddenAttrib ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 75 73 65 72 00 00 ) // ...user..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 68 69 64 64 65 6E 00 00 ) // ...hidden..
 
-		.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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.Core.Tasks.MailTask::get_Password () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Password (string 'value') 
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_HiddenAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_HiddenAttrib (bool 'value') 
 	}
-	.property instance valuetype NAnt.Core.Tasks.MailTask/MailFormat Format ()
+	.property instance bool NormalAttrib ()
 	{
-		.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 NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6E 6F 72 6D 61 6C 00 00 ) // ...normal..
 
-		.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...
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.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') 
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_NormalAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_NormalAttrib (bool 'value') 
 	}
-	.property instance class NAnt.Core.Types.FileSet Files ()
+	.property instance bool ReadOnlyAttrib ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 66 69 6C 65 73 00 00 ) // ...files..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 72 65 61 64 6F 6E 6C 79 00 00 ) // ...readonly..
 
-		.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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.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') 
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_ReadOnlyAttrib (bool '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)
+	.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..
 
-  } // end of class MailFormat
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Tasks.MailTask
+		.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.Tasks
 {
-  .class public auto ansi beforefieldinit IncludeTask
+  .class public auto ansi beforefieldinit FailTask
   	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 04 66 61 69 6C 00 00 ) // ...fail..
 
-    .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 _message
+    .field  private  string _contents
 
-    // method line 116
+    // method line 129
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x7439
+        // Method begins at RVA 0x83d0
 	// 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 FailTask::.ctor
 
-    // method line 117
+    // method line 130
     .method public hidebysig specialname 
-           instance default string get_BuildFileName ()  cil managed 
+           instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0x7444
+        // Method begins at RVA 0x83d8
 	// 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.FailTask::_message
 	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 FailTask::get_Message
 
-    // method line 118
+    // method line 131
     .method public hidebysig specialname 
-           instance default void set_BuildFileName (string 'value')  cil managed 
+           instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x745f
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x83f4
+	// Code size 72 (0x48)
+	.maxstack 2
 	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_0001:  ldarg.1 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_003e
 
-    // method line 119
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+	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 132
+    .method public hidebysig specialname 
+           instance default string get_Contents ()  cil managed 
     {
-        // Method begins at RVA 0x746c
-	// Code size 271 (0x10f)
-	.maxstack 3
+        // Method begins at RVA 0x8448
+	// 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)
+		string	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 string NAnt.Core.Tasks.FailTask::_contents
+	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 FailTask::get_Contents
 
-	  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 133
+    .method public hidebysig specialname 
+           instance default void set_Contents (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8464
+	// 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_00f3:  leave IL_010e
+	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
 
-	} // 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_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_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
+	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 120
+    // method line 134
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x75a4
-	// Code size 564 (0x234)
-	.maxstack 7
+        // Method begins at RVA 0x84b8
+	// Code size 82 (0x52)
+	.maxstack 2
 	.locals init (
-		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)
+		string	V_0)
 	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_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_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_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
 
-	    } // end .try 0
-	    finally  { // 0
-	      IL_01c7:  ldloc.s 9
-	      IL_01c9:  brfalse IL_01d5
+	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_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_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
 
-	  } // 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_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 121
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 135
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x7848
-	// Code size 27 (0x1b)
+        // Method begins at RVA 0x8516
+	// Code size 36 (0x24)
 	.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_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 BuildFileName ()
+	.property instance string Message ()
 	{
-		.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.
-
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
 
-		.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.FailTask::get_Message () 
+		.set instance default void NAnt.Core.Tasks.FailTask::set_Message (string 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.IncludeTask
+	.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
@@ -5307,11 +6606,11 @@
     .field  private  string _xPath
     .field  private  class NAnt.Core.Types.XmlNamespaceCollection _namespaces
 
-    // method line 122
+    // method line 136
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x7864
+        // Method begins at RVA 0x853b
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5325,11 +6624,11 @@
 	IL_0018:  ret 
     } // end of method XmlPeekTask::.ctor
 
-    // method line 123
+    // method line 137
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
     {
-        // Method begins at RVA 0x7880
+        // Method begins at RVA 0x8558
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5344,11 +6643,11 @@
 	IL_000e:  ret 
     } // end of method XmlPeekTask::get_XmlFile
 
-    // method line 124
+    // method line 138
     .method public hidebysig specialname 
            instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x789b
+        // Method begins at RVA 0x8573
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5358,11 +6657,11 @@
 	IL_0008:  ret 
     } // end of method XmlPeekTask::set_XmlFile
 
-    // method line 125
+    // method line 139
     .method public hidebysig specialname 
            instance default int32 get_NodeIndex ()  cil managed 
     {
-        // Method begins at RVA 0x78a8
+        // Method begins at RVA 0x8580
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5377,11 +6676,11 @@
 	IL_000e:  ret 
     } // end of method XmlPeekTask::get_NodeIndex
 
-    // method line 126
+    // method line 140
     .method public hidebysig specialname 
            instance default void set_NodeIndex (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x78c3
+        // Method begins at RVA 0x859b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5391,11 +6690,11 @@
 	IL_0008:  ret 
     } // end of method XmlPeekTask::set_NodeIndex
 
-    // method line 127
+    // method line 141
     .method public hidebysig specialname 
            instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x78d0
+        // Method begins at RVA 0x85a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5410,11 +6709,11 @@
 	IL_000e:  ret 
     } // end of method XmlPeekTask::get_Property
 
-    // method line 128
+    // method line 142
     .method public hidebysig specialname 
            instance default void set_Property (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x78eb
+        // Method begins at RVA 0x85c3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5424,11 +6723,11 @@
 	IL_0008:  ret 
     } // end of method XmlPeekTask::set_Property
 
-    // method line 129
+    // method line 143
     .method public hidebysig specialname 
            instance default string get_XPath ()  cil managed 
     {
-        // Method begins at RVA 0x78f8
+        // Method begins at RVA 0x85d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5443,11 +6742,11 @@
 	IL_000e:  ret 
     } // end of method XmlPeekTask::get_XPath
 
-    // method line 130
+    // method line 144
     .method public hidebysig specialname 
            instance default void set_XPath (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7913
+        // Method begins at RVA 0x85eb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5457,11 +6756,11 @@
 	IL_0008:  ret 
     } // end of method XmlPeekTask::set_XPath
 
-    // method line 131
+    // method line 145
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
     {
-        // Method begins at RVA 0x7920
+        // Method begins at RVA 0x85f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5476,11 +6775,11 @@
 	IL_000e:  ret 
     } // end of method XmlPeekTask::get_Namespaces
 
-    // method line 132
+    // method line 146
     .method public hidebysig specialname 
            instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x793b
+        // Method begins at RVA 0x8613
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5490,11 +6789,11 @@
 	IL_0008:  ret 
     } // end of method XmlPeekTask::set_Namespaces
 
-    // method line 133
+    // method line 147
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x7948
+        // Method begins at RVA 0x8620
 	// Code size 218 (0xda)
 	.maxstack 7
 	.locals init (
@@ -5585,11 +6884,11 @@
 	IL_00d9:  ret 
     } // end of method XmlPeekTask::ExecuteTask
 
-    // method line 134
+    // method line 148
     .method private hidebysig 
            instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x7a4c
+        // Method begins at RVA 0x8724
 	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
@@ -5629,11 +6928,11 @@
 	IL_003d:  ret 
     } // end of method XmlPeekTask::LoadDocument
 
-    // method line 135
+    // method line 149
     .method private hidebysig 
            instance default string GetNodeContents (string xpath, class [System.Xml]System.Xml.XmlDocument document, int32 nodeIndex)  cil managed 
     {
-        // Method begins at RVA 0x7aa8
+        // Method begins at RVA 0x8780
 	// Code size 528 (0x210)
 	.maxstack 8
 	.locals init (
@@ -5933,6 +7232,885 @@
 
 .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 150
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x89b8
+	// 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 151
+    .method public hidebysig specialname 
+           instance default string get_Property ()  cil managed 
+    {
+        // Method begins at RVA 0x89cc
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TStampTask::get_Property
+
+    // method line 152
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x89e7
+	// 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 153
+    .method public hidebysig specialname 
+           instance default string get_Pattern ()  cil managed 
+    {
+        // Method begins at RVA 0x89f4
+	// 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 154
+    .method public hidebysig specialname 
+           instance default void set_Pattern (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8a0f
+	// 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 155
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FormatterCollection get_Formatters ()  cil managed 
+    {
+        // Method begins at RVA 0x8a1c
+	// 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 156
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x8a38
+	// 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_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
+	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_01be:  ret 
+    } // end of method TStampTask::ExecuteTask
+
+	.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.
+
+		.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 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 00                         ) // equired.
+
+		.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 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 157
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9f39
+	// 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 158
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    {
+        // Method begins at RVA 0x9f44
+	// 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 159
+    .method public virtual hidebysig specialname 
+           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9f5f
+	// 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 160
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    {
+        // Method begins at RVA 0x9f6c
+	// 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 161
+    .method public virtual hidebysig specialname 
+           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9f87
+	// 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 162
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x9f94
+	// 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 163
+    .method public virtual hidebysig specialname 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9faf
+	// 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 164
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
+    {
+        // Method begins at RVA 0x9fbc
+	// 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 165
+    .method public virtual hidebysig specialname 
+           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9fd7
+	// 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 166
+    .method public virtual hidebysig specialname 
+           instance default bool get_Flatten ()  cil managed 
+    {
+        // Method begins at RVA 0x9fe4
+	// 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 167
+    .method public virtual hidebysig specialname 
+           instance default void set_Flatten (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9fff
+	// 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 168
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    {
+        // Method begins at RVA 0xa00c
+	// 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 169
+    .method public virtual hidebysig specialname 
+           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa027
+	// 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 170
+    .method family virtual hidebysig 
+           instance default void DoFileOperations ()  cil managed 
+    {
+        // Method begins at RVA 0xa034
+	// 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 171
+    .method family virtual hidebysig 
+           instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
+    {
+        // Method begins at RVA 0xa310
+	// 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..
+
+		.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 ()
+	{
+		.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
+{
   .class public auto ansi beforefieldinit LoopTask
   	extends NAnt.Core.TaskContainer
   {
@@ -5947,11 +8125,11 @@
     .field  private  class NAnt.Core.Tasks.InElement _inElement
     .field  private  class NAnt.Core.TaskContainer _doStuff
 
-    // method line 136
+    // method line 172
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8013
+        // Method begins at RVA 0xa673
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5962,11 +8140,11 @@
 	IL_000d:  ret 
     } // end of method LoopTask::.ctor
 
-    // method line 137
+    // method line 173
     .method public hidebysig specialname 
            instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x8024
+        // Method begins at RVA 0xa684
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5981,11 +8159,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_Property
 
-    // method line 138
+    // method line 174
     .method public hidebysig specialname 
            instance default void set_Property (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x8040
+        // Method begins at RVA 0xa6a0
 	// Code size 104 (0x68)
 	.maxstack 4
 	.locals init (
@@ -6044,11 +8222,11 @@
 	IL_0067:  ret 
     } // end of method LoopTask::set_Property
 
-    // method line 139
+    // method line 175
     .method public hidebysig specialname 
            instance default valuetype NAnt.Core.Tasks.LoopTask/LoopItem get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0x80b4
+        // Method begins at RVA 0xa714
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6063,11 +8241,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_ItemType
 
-    // method line 140
+    // method line 176
     .method public hidebysig specialname 
            instance default void set_ItemType (valuetype NAnt.Core.Tasks.LoopTask/LoopItem 'value')  cil managed 
     {
-        // Method begins at RVA 0x80cf
+        // Method begins at RVA 0xa72f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6077,11 +8255,11 @@
 	IL_0008:  ret 
     } // end of method LoopTask::set_ItemType
 
-    // method line 141
+    // method line 177
     .method public hidebysig specialname 
            instance default valuetype NAnt.Core.Tasks.LoopTask/LoopTrim get_TrimType ()  cil managed 
     {
-        // Method begins at RVA 0x80dc
+        // Method begins at RVA 0xa73c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6096,11 +8274,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_TrimType
 
-    // method line 142
+    // method line 178
     .method public hidebysig specialname 
            instance default void set_TrimType (valuetype NAnt.Core.Tasks.LoopTask/LoopTrim 'value')  cil managed 
     {
-        // Method begins at RVA 0x80f7
+        // Method begins at RVA 0xa757
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6110,11 +8288,11 @@
 	IL_0008:  ret 
     } // end of method LoopTask::set_TrimType
 
-    // method line 143
+    // method line 179
     .method public hidebysig specialname 
            instance default string get_Source ()  cil managed 
     {
-        // Method begins at RVA 0x8104
+        // Method begins at RVA 0xa764
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6129,11 +8307,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_Source
 
-    // method line 144
+    // method line 180
     .method public hidebysig specialname 
            instance default void set_Source (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x811f
+        // Method begins at RVA 0xa77f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6144,11 +8322,11 @@
 	IL_000d:  ret 
     } // end of method LoopTask::set_Source
 
-    // method line 145
+    // method line 181
     .method public hidebysig specialname 
            instance default string get_Delimiter ()  cil managed 
     {
-        // Method begins at RVA 0x8130
+        // Method begins at RVA 0xa790
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6163,11 +8341,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_Delimiter
 
-    // method line 146
+    // method line 182
     .method public hidebysig specialname 
            instance default void set_Delimiter (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x814b
+        // Method begins at RVA 0xa7ab
 	// Code size 42 (0x2a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6193,11 +8371,11 @@
 	IL_0029:  ret 
     } // end of method LoopTask::set_Delimiter
 
-    // method line 147
+    // method line 183
     .method public hidebysig specialname 
            instance default class NAnt.Core.Tasks.InElement get_InElement ()  cil managed 
     {
-        // Method begins at RVA 0x8178
+        // Method begins at RVA 0xa7d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6212,11 +8390,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_InElement
 
-    // method line 148
+    // method line 184
     .method public hidebysig specialname 
            instance default void set_InElement (class NAnt.Core.Tasks.InElement 'value')  cil managed 
     {
-        // Method begins at RVA 0x8193
+        // Method begins at RVA 0xa7f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6226,11 +8404,11 @@
 	IL_0008:  ret 
     } // end of method LoopTask::set_InElement
 
-    // method line 149
+    // method line 185
     .method public hidebysig specialname 
            instance default class NAnt.Core.TaskContainer get_StuffToDo ()  cil managed 
     {
-        // Method begins at RVA 0x81a0
+        // Method begins at RVA 0xa800
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6245,11 +8423,11 @@
 	IL_000e:  ret 
     } // end of method LoopTask::get_StuffToDo
 
-    // method line 150
+    // method line 186
     .method public hidebysig specialname 
            instance default void set_StuffToDo (class NAnt.Core.TaskContainer 'value')  cil managed 
     {
-        // Method begins at RVA 0x81bb
+        // Method begins at RVA 0xa81b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6259,11 +8437,11 @@
 	IL_0008:  ret 
     } // end of method LoopTask::set_StuffToDo
 
-    // method line 151
+    // method line 187
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x81c8
+        // Method begins at RVA 0xa828
 	// Code size 1480 (0x5c8)
 	.maxstack 5
 	.locals init (
@@ -6886,11 +9064,11 @@
 	IL_05c7:  ret 
     } // end of method LoopTask::ExecuteTask
 
-    // method line 152
+    // method line 188
     .method family virtual hidebysig 
            instance default void ExecuteChildTasks ()  cil managed 
     {
-        // Method begins at RVA 0x8800
+        // Method begins at RVA 0xae60
 	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6912,14 +9090,14 @@
 	IL_0026:  ret 
     } // end of method LoopTask::ExecuteChildTasks
 
-    // method line 153
+    // method line 189
     .method family virtual hidebysig newslot 
            instance default void DoWork (string[] propVals)  cil managed 
     {
 	.param [1]
 	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x8828
+        // Method begins at RVA 0xae88
 	// Code size 155 (0x9b)
 	.maxstack 3
 	.locals init (
@@ -7005,11 +9183,11 @@
 	IL_009a:  ret 
     } // end of method LoopTask::DoWork
 
-    // method line 154
+    // method line 190
     .method private hidebysig 
            instance default void DoWorkOnFileLines (string filename)  cil managed 
     {
-        // Method begins at RVA 0x88d0
+        // Method begins at RVA 0xaf30
 	// Code size 115 (0x73)
 	.maxstack 5
 	.locals init (
@@ -7166,11 +9344,11 @@
   {
     .field  private  class NAnt.Core.Types.FileSet _items
 
-    // method line 155
+    // method line 191
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8960
+        // Method begins at RVA 0xafc0
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -7178,11 +9356,11 @@
 	IL_0006:  ret 
     } // end of method InElement::.ctor
 
-    // method line 156
+    // method line 192
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.FileSet get_Items ()  cil managed 
     {
-        // Method begins at RVA 0x8968
+        // Method begins at RVA 0xafc8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -7197,11 +9375,11 @@
 	IL_000e:  ret 
     } // end of method InElement::get_Items
 
-    // method line 157
+    // method line 193
     .method public hidebysig specialname 
            instance default void set_Items (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x8983
+        // Method begins at RVA 0xafe3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -7223,769 +9401,2114 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit IfTask
-  	extends NAnt.Core.TaskContainer
+  .class public auto ansi abstract serializable beforefieldinit ExternalProgramBase
+  	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-    .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  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 158
-    .method public hidebysig specialname rtspecialname 
+    // method line 194
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x898d
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xafed
+	// Code size 54 (0x36)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.TaskContainer::'.ctor'()
-	IL_0006:  ret 
-    } // end of method IfTask::.ctor
-
-    // method line 159
-    .method public hidebysig specialname 
-           instance default void set_UpToDateFile (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8998
-	// 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::_uptodateFiles
-	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::_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 160
-    .method public hidebysig specialname 
-           instance default void set_CompareFile (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8a00
-	// 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
+	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 161
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_CompareFiles ()  cil managed 
+    // method line 195
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_ExeName ()  cil managed 
     {
-        // Method begins at RVA 0x8a68
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xb024
+	// Code size 37 (0x25)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
+	IL_0007:  brfalse IL_0017
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_CompareFiles
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
+	IL_0012:  br IL_001d
 
-    // method line 162
-    .method public hidebysig specialname 
-           instance default void set_CompareFiles (class NAnt.Core.Types.FileSet 'value')  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 196
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ExeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x8a83
+        // Method begins at RVA 0xb055
 	// 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_0003:  stfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
 	IL_0008:  ret 
-    } // end of method IfTask::set_CompareFiles
+    } // end of method ExternalProgramBase::set_ExeName
 
-    // method line 163
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_UpToDateFiles ()  cil managed 
+    // method line 197
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x8a90
+        // Method begins at RVA 0xb060
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	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 IfTask::get_UpToDateFiles
+    } // end of method ExternalProgramBase::get_ProgramFileName
 
-    // method line 164
-    .method public hidebysig specialname 
-           instance default void set_UpToDateFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 198
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x8aab
-	// 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::_uptodateFiles
-	IL_0008:  ret 
-    } // end of method IfTask::set_UpToDateFiles
+        // Method begins at RVA 0x0
+    } // end of method ExternalProgramBase::get_ProgramArguments
 
-    // method line 165
-    .method public hidebysig specialname 
-           instance default string get_PropertyNameTrue ()  cil managed 
+    // method line 199
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0x8ab8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xb07c
+	// Code size 10 (0xa)
 	.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.IfTask::_propNameTrue
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_PropertyNameTrue
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ExternalProgramBase::get_Output
 
-    // method line 166
-    .method public hidebysig specialname 
-           instance default void set_PropertyNameTrue (string 'value')  cil managed 
+    // method line 200
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x8ad3
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xb092
+	// Code size 2 (0x2)
 	.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::_propNameTrue
-	IL_000d:  ret 
-    } // end of method IfTask::set_PropertyNameTrue
+	IL_0001:  ret 
+    } // end of method ExternalProgramBase::set_Output
 
-    // method line 167
-    .method public hidebysig specialname 
-           instance default string get_PropertyNameExists ()  cil managed 
+    // method line 201
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_OutputAppend ()  cil managed 
     {
-        // Method begins at RVA 0x8ae4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xb098
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		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 202
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputAppend (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb0ae
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method ExternalProgramBase::set_OutputAppend
+
+    // method line 203
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0xb0b4
+	// 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.Core.Tasks.IfTask::_propNameExists
+	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 204
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb0d9
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method ExternalProgramBase::set_BaseDirectory
+
+    // method line 205
+    .method public hidebysig specialname 
+           instance default int32 get_TimeOut ()  cil managed 
+    {
+        // Method begins at RVA 0xb0dc
+	// 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 IfTask::get_PropertyNameExists
+    } // end of method ExternalProgramBase::get_TimeOut
 
-    // method line 168
+    // method line 206
     .method public hidebysig specialname 
-           instance default void set_PropertyNameExists (string 'value')  cil managed 
+           instance default void set_TimeOut (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x8aff
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xb0f7
+	// 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.IfTask::_propNameExists
-	IL_000d:  ret 
-    } // end of method IfTask::set_PropertyNameExists
+	IL_0003:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_TimeOut
 
-    // method line 169
-    .method public hidebysig specialname 
-           instance default string get_TargetNameExists ()  cil managed 
+    // method line 207
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
     {
-        // Method begins at RVA 0x8b10
+        // Method begins at RVA 0xb104
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.ArgumentCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_targetName
+	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 IfTask::get_TargetNameExists
+    } // end of method ExternalProgramBase::get_Arguments
 
-    // method line 170
-    .method public hidebysig specialname 
-           instance default void set_TargetNameExists (string 'value')  cil managed 
+    // method line 208
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_UseRuntimeEngine ()  cil managed 
     {
-        // Method begins at RVA 0x8b2b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xb120
+	// 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 209
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb13b
+	// 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.IfTask::_targetName
-	IL_000d:  ret 
-    } // end of method IfTask::set_TargetNameExists
+	IL_0003:  stfld bool NAnt.Core.Tasks.ExternalProgramBase::_useRuntimeEngine
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_UseRuntimeEngine
 
-    // method line 171
+    // method line 210
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
+    {
+        // Method begins at RVA 0xb148
+	// 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 211
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb181
+	// 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 212
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    {
+        // Method begins at RVA 0xb198
+	// 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 213
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb1d6
+	// 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 214
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_ErrorWriter ()  cil managed 
+    {
+        // Method begins at RVA 0xb1e0
+	// 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 215
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ErrorWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb21e
+	// 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 216
     .method public hidebysig specialname 
-           instance default string get_Test ()  cil managed 
+           instance default int32 get_ExitCode ()  cil managed 
     {
-        // Method begins at RVA 0x8b3c
+        // Method begins at RVA 0xb228
 	// 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.IfTask::_test
+	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 IfTask::get_Test
+    } // end of method ExternalProgramBase::get_ExitCode
 
-    // method line 172
-    .method public hidebysig specialname 
-           instance default void set_Test (string 'value')  cil managed 
+    // method line 217
+    .method family hidebysig specialname 
+           instance default int32 get_ProcessId ()  cil managed 
     {
-        // Method begins at RVA 0x8b57
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xb244
+	// 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 218
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Spawn ()  cil managed 
+    {
+        // Method begins at RVA 0xb290
+	// 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 219
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Spawn (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb2ab
+	// 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.IfTask::_test
-	IL_000d:  ret 
-    } // end of method IfTask::set_Test
+	IL_0003:  stfld bool NAnt.Core.Tasks.ExternalProgramBase::_spawn
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_Spawn
 
-    // method line 173
-    .method family virtual hidebysig newslot specialname 
-           instance default bool get_ConditionsTrue ()  cil managed 
+    // method line 220
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x8b68
-	// Code size 457 (0x1c9)
-	.maxstack 7
+        // Method begins at RVA 0xb2b8
+	// Code size 489 (0x1e9)
+	.maxstack 4
 	.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)
+		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:  ldc.i4.1 
+	IL_0001:  ldnull 
 	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:  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_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_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_0024:  nop 
-	IL_0025:  ldc.i4.0 
-	IL_0026:  stloc.1 
-	IL_0027:  br IL_01c7
+	    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_002c:  nop 
-	IL_002d:  ldarg.0 
-	IL_002e:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
-	IL_0033:  brfalse IL_006e
+	    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
 
-	IL_0038:  nop 
-	IL_0039:  ldloc.0 
-	IL_003a:  brfalse IL_005d
+	    } // end .try 0
+	    catch class [mscorlib]System.Object { // 0
+	      IL_00b0:  pop 
+	      IL_00b1:  nop 
+	      IL_00b2:  nop 
+	      IL_00b3:  leave IL_00b8
 
-	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
+	    } // 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_005d:  ldc.i4.0 
-	IL_005e:  stloc.0 
-	IL_005f:  ldloc.0 
-	IL_0060:  brtrue IL_006d
+	    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_0065:  nop 
-	IL_0066:  ldc.i4.0 
-	IL_0067:  stloc.1 
-	IL_0068:  br IL_01c7
+	  } // 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_006d:  nop 
-	IL_006e:  ldarg.0 
-	IL_006f:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
-	IL_0074:  brfalse IL_00a4
+	    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_0079:  nop 
-	IL_007a:  ldloc.0 
-	IL_007b:  brfalse IL_0093
+	  } // 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_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_01ba:  ldloc.0 
+	  IL_01bb:  callvirt instance bool class [mscorlib]System.Threading.Thread::get_IsAlive()
+	  IL_01c0:  brfalse IL_01cd
 
-	IL_0093:  ldc.i4.0 
-	IL_0094:  stloc.0 
-	IL_0095:  ldloc.0 
-	IL_0096:  brtrue IL_00a3
+	  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_009b:  nop 
-	IL_009c:  ldc.i4.0 
-	IL_009d:  stloc.1 
-	IL_009e:  br IL_01c7
+	  IL_01d3:  ldloc.1 
+	  IL_01d4:  callvirt instance bool class [mscorlib]System.Threading.Thread::get_IsAlive()
+	  IL_01d9:  brfalse IL_01e6
 
-	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_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
 
-	IL_00af:  nop 
+    // method line 221
+    .method public hidebysig specialname 
+           instance default string get_CommandLine ()  cil managed 
+    {
+        // Method begins at RVA 0xb514
+	// 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 222
+    .method family virtual hidebysig newslot 
+           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
+    {
+        // Method begins at RVA 0xb548
+	// 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_00b0:  nop 
-	  IL_00b1:  ldloc.0 
-	  IL_00b2:  brfalse IL_00cf
+	  IL_012a:  br IL_019b
 
-	  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_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_00cf:  ldc.i4.0 
-	  IL_00d0:  stloc.0 
-	  IL_00d1:  ldloc.0 
-	  IL_00d2:  brtrue IL_00df
+	  IL_0142:  ldloc.2 
+	  IL_0143:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
+	  IL_0148:  brtrue IL_019a
 
-	  IL_00d7:  nop 
-	  IL_00d8:  ldc.i4.0 
-	  IL_00d9:  stloc.1 
-	  IL_00da:  leave IL_01c7
+	  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_00df:  nop 
-	  IL_00e0:  leave IL_010e
+	  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 223
+    .method family virtual hidebysig newslot 
+           instance default class [System]System.Diagnostics.Process StartProcess ()  cil managed 
+    {
+        // Method begins at RVA 0xb728
+	// 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_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 
+	  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_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_0098:  ldloc.2 
+	IL_0099:  ret 
+    } // end of method ExternalProgramBase::StartProcess
 
-	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
+    // method line 224
+    .method private hidebysig 
+           instance default void StreamReaderThread_Output ()  cil managed 
+    {
+        // Method begins at RVA 0xb7e0
+	// 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_012d:  ldloc.3 
-	IL_012e:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0133:  brtrue IL_0151
+	IL_001e:  nop 
+	IL_001f:  br IL_0091
 
-	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_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_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_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_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
+	  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
 
-	IL_01a7:  ldloc.s 5
-	IL_01a9:  ldc.i4.0 
-	IL_01aa:  ceq 
-	IL_01ac:  br.s IL_01af
+	} // end .try 0
+	finally  { // 0
+	  IL_0080:  ldloc.s 4
+	  IL_0082:  brfalse.s IL_008a
 
-	IL_01ae:  ldc.i4.0 
-	IL_01af:  stloc.0 
-	IL_01b0:  nop 
-	IL_01b1:  ldloc.0 
-	IL_01b2:  brtrue IL_01bf
+	  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_01b7:  nop 
-	IL_01b8:  ldc.i4.0 
-	IL_01b9:  stloc.1 
-	IL_01ba:  br IL_01c7
+	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
 
-	IL_01bf:  nop 
-	IL_01c0:  ldloc.0 
-	IL_01c1:  stloc.1 
-	IL_01c2:  br IL_01c7
+	} // end .try 1
+	finally  { // 1
+	  IL_00b6:  ldloc.s 7
+	  IL_00b8:  brfalse.s IL_00c1
 
-	IL_01c7:  ldloc.1 
-	IL_01c8:  ret 
-    } // end of method IfTask::get_ConditionsTrue
+	  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 174
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 225
+    .method private hidebysig 
+           instance default void StreamReaderThread_Error ()  cil managed 
     {
-        // Method begins at RVA 0x8d50
-	// Code size 21 (0x15)
-	.maxstack 8
+        // Method begins at RVA 0xb8cc
+	// 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:  callvirt instance bool class NAnt.Core.Tasks.IfTask::get_ConditionsTrue()
-	IL_0007:  brfalse IL_0014
+	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_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
+	IL_001e:  nop 
+	IL_001f:  br IL_008a
 
-    // method line 175
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+	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 226
+    .method private hidebysig 
+           instance default string DetermineFilePath ()  cil managed 
+    {
+        // Method begins at RVA 0xb9b0
+	// 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 227
+    .method private hidebysig specialname 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_ManagedExecutionMode ()  cil managed 
     {
-        // Method begins at RVA 0x8d68
+        // Method begins at RVA 0xbbc4
 	// 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:  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_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_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_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_001d:  ldarg.0 
-	IL_001e:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
-	IL_0023:  brtrue IL_005b
+	IL_001c:  nop 
+	IL_001d:  ldnull 
+	IL_001e:  stloc.0 
+	IL_001f:  br IL_005a
 
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
-	IL_002e:  brtrue IL_005b
+	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_0033:  ldarg.0 
-	IL_0034:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
-	IL_0039:  brtrue IL_005b
+	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_003e:  ldarg.0 
-	IL_003f:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
-	IL_0044:  brtrue IL_005b
+	IL_0053:  ldnull 
+	IL_0054:  stloc.0 
+	IL_0055:  br IL_005a
 
-	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_005a:  ldloc.0 
 	IL_005b:  ret 
-    } // end of method IfTask::Initialize
+    } // end of method ExternalProgramBase::get_ManagedExecutionMode
 
-	.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                                              ) // .
+    // method line 228
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xbc2c
+	// 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
 
-		.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....
+	.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..
 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_UpToDateFile (string 'value') 
+		.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 CompareFile ()
+	.property instance string ProgramFileName ()
 	{
-		.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 string NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName () 
 	}
-	.property instance class NAnt.Core.Types.FileSet CompareFiles ()
+	.property instance string ProgramArguments ()
 	{
-		.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 string NAnt.Core.Tasks.ExternalProgramBase::get_ProgramArguments () 
 	}
-	.property instance class NAnt.Core.Types.FileSet UpToDateFiles ()
+	.property instance class [mscorlib]System.IO.FileInfo Output ()
 	{
-		.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 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 string PropertyNameTrue ()
+	.property instance bool OutputAppend ()
 	{
-		.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                                              ) // .
+		.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 [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....
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.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 int32 NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_TimeOut (int32 'value') 
 	}
-	.property instance string PropertyNameExists ()
+	.property instance class NAnt.Core.Types.ArgumentCollection Arguments ()
 	{
-		.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                                           ) // ..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
 
-		.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 class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::get_Arguments () 
 	}
-	.property instance string TargetNameExists ()
+	.property instance bool UseRuntimeEngine ()
 	{
-		.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 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 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....
+		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 string NAnt.Core.Tasks.IfTask::get_TargetNameExists () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_TargetNameExists (string 'value') 
+		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine (bool 'value') 
 	}
-	.property instance string Test ()
+	.property instance valuetype NAnt.Core.Types.ManagedExecution Managed ()
 	{
-		.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 ) // ....
+		.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 string NAnt.Core.Tasks.IfTask::get_Test () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_Test (string 'value') 
+		.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 bool ConditionsTrue ()
+	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
 	{
-		.get instance default bool NAnt.Core.Tasks.IfTask::get_ConditionsTrue () 
+		.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') 
 	}
-  } // end of class NAnt.Core.Tasks.IfTask
+	.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 () 
+	}
+  } // end of class NAnt.Core.Tasks.ExternalProgramBase
 }
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit IfNotTask
-  	extends NAnt.Core.Tasks.IfTask
+  .class public auto ansi beforefieldinit EchoTask
+  	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 69 66 6E 6F 74 00 00 ) // ...ifnot..
-
-    .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....
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 65 63 68 6F 00 00 ) // ...echo..
 
+    .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 176
+    // method line 229
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8dd0
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xbc4c
+	// Code size 18 (0x12)
 	.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
+	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 177
-    .method family virtual hidebysig specialname 
-           instance default bool get_ConditionsTrue ()  cil managed 
+    // method line 230
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
     {
-        // Method begins at RVA 0x8dd8
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xbc60
+	// 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 231
+    .method public hidebysig specialname 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbc91
+	// 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
+
+    // method line 232
+    .method public hidebysig specialname 
+           instance default string get_Message ()  cil managed 
+    {
+        // Method begins at RVA 0xbc9c
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EchoTask::get_Message
+
+    // method line 233
+    .method public hidebysig specialname 
+           instance default void set_Message (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbcb8
+	// Code size 79 (0x4f)
+	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0045
+
+	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 234
+    .method public hidebysig specialname 
+           instance default string get_Contents ()  cil managed 
+    {
+        // Method begins at RVA 0xbd14
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EchoTask::get_Contents
+
+    // method line 235
+    .method public hidebysig specialname 
+           instance default void set_Contents (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbd30
+	// Code size 79 (0x4f)
 	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0045
+
+	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_Message()
+	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::_contents
+	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::_contents
+	IL_004d:  nop 
+	IL_004e:  ret 
+    } // end of method EchoTask::set_Contents
+
+    // method line 236
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    {
+        // Method begins at RVA 0xbd8c
+	// 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.EchoTask::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EchoTask::get_File
+
+    // method line 237
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbda7
+	// 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_0008:  ret 
+    } // end of method EchoTask::set_File
+
+    // method line 238
+    .method public hidebysig specialname 
+           instance default bool get_Append ()  cil managed 
+    {
+        // Method begins at RVA 0xbdb4
+	// 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.IfTask::get_ConditionsTrue()
-	IL_0007:  ldc.i4.0 
-	IL_0008:  ceq 
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
+	IL_0002:  ldfld bool NAnt.Core.Tasks.EchoTask::_append
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method IfNotTask::get_ConditionsTrue
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EchoTask::get_Append
 
-	.property instance bool ConditionsTrue ()
+    // method line 239
+    .method public hidebysig specialname 
+           instance default void set_Append (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbdcf
+	// 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_0008:  ret 
+    } // end of method EchoTask::set_Append
+
+    // method line 240
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
+    {
+        // Method begins at RVA 0xbddc
+	// 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.Tasks.EchoTask::_messageLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EchoTask::get_MessageLevel
+
+    // method line 241
+    .method public hidebysig specialname 
+           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbdf8
+	// Code size 65 (0x41)
+	.maxstack 3
+	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_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 242
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xbe48
+	// Code size 335 (0x14f)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.IO.StreamWriter	V_0,
+		class [mscorlib]System.Exception	V_1)
+	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_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_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
+
+	    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
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00aa:  ldloc.0 
+	    IL_00ab:  brfalse IL_00b6
+
+	    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 
+	} // end handler 1
+	IL_00eb:  nop 
+	IL_00ec:  br IL_014e
+
+	IL_00f1:  nop 
+	IL_00f2:  ldarg.0 
+	IL_00f3:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
+	IL_00f8:  brfalse IL_0116
+
+	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
+
+	IL_0116:  ldarg.0 
+	IL_0117:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
+	IL_011c:  brfalse IL_013a
+
+	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
+
+	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 243
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xbfc0
+	// Code size 62 (0x3e)
+	.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_0016:  br IL_003d
+
+	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
+
+	.property instance class [mscorlib]System.Text.Encoding Encoding ()
 	{
-		.get instance default bool NAnt.Core.Tasks.IfNotTask::get_ConditionsTrue () 
+		.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.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.IfNotTask
+	.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.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..
+
+		.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..
+
+		.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 ()
+	{
+		.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.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.EchoTask
 }
 
 .namespace NAnt.Core.Tasks
@@ -7999,11 +11522,11 @@
     .field  private  bool _force
     .field  private  bool _cascade
 
-    // method line 178
+    // method line 244
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8df6
+        // Method begins at RVA 0xbfff
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -8014,11 +11537,11 @@
 	IL_000d:  ret 
     } // end of method CallTask::.ctor
 
-    // method line 179
+    // method line 245
     .method public hidebysig specialname 
            instance default string get_TargetName ()  cil managed 
     {
-        // Method begins at RVA 0x8e08
+        // Method begins at RVA 0xc010
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -8033,11 +11556,11 @@
 	IL_000e:  ret 
     } // end of method CallTask::get_TargetName
 
-    // method line 180
+    // method line 246
     .method public hidebysig specialname 
            instance default void set_TargetName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x8e23
+        // Method begins at RVA 0xc02b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -8048,11 +11571,11 @@
 	IL_000d:  ret 
     } // end of method CallTask::set_TargetName
 
-    // method line 181
+    // method line 247
     .method public hidebysig specialname 
            instance default bool get_ForceExecute ()  cil managed 
     {
-        // Method begins at RVA 0x8e34
+        // Method begins at RVA 0xc03c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -8067,11 +11590,11 @@
 	IL_000e:  ret 
     } // end of method CallTask::get_ForceExecute
 
-    // method line 182
+    // method line 248
     .method public hidebysig specialname 
            instance default void set_ForceExecute (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x8e4f
+        // Method begins at RVA 0xc057
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -8081,11 +11604,11 @@
 	IL_0008:  ret 
     } // end of method CallTask::set_ForceExecute
 
-    // method line 183
+    // method line 249
     .method public hidebysig specialname 
            instance default bool get_CascadeDependencies ()  cil managed 
     {
-        // Method begins at RVA 0x8e5c
+        // Method begins at RVA 0xc064
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -8100,11 +11623,11 @@
 	IL_000e:  ret 
     } // end of method CallTask::get_CascadeDependencies
 
-    // method line 184
+    // method line 250
     .method public hidebysig specialname 
            instance default void set_CascadeDependencies (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x8e77
+        // Method begins at RVA 0xc07f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -8114,11 +11637,11 @@
 	IL_0008:  ret 
     } // end of method CallTask::set_CascadeDependencies
 
-    // method line 185
+    // method line 251
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x8e84
+        // Method begins at RVA 0xc08c
 	// Code size 173 (0xad)
 	.maxstack 4
 	.locals init (
@@ -8186,11 +11709,11 @@
 	IL_00ac:  ret 
     } // end of method CallTask::ExecuteTask
 
-    // method line 186
+    // method line 252
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x8f40
+        // Method begins at RVA 0xc148
 	// Code size 70 (0x46)
 	.maxstack 2
 	.locals init (
@@ -8266,1050 +11789,5576 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit CopyTask
+  .class public auto ansi beforefieldinit PropertyTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 63 6F 70 79 00 00 ) // ...copy..
+    .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  class [mscorlib]System.IO.FileInfo _sourceFile
-    .field  private  class [mscorlib]System.IO.FileInfo _toFile
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDirectory
+    .field  private  string _name
+    .field  private  string _value
+    .field  private  bool _readOnly
+    .field  private  bool _dynamic
     .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 187
+    // method line 253
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8f94
-	// Code size 72 (0x48)
-	.maxstack 2
+        // Method begins at RVA 0xc19a
+	// Code size 25 (0x19)
+	.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.CopyTask::_fileset
+	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.CopyTask::_includeEmptyDirs
+	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:  nop 
-	IL_0019:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_001e:  brfalse IL_0035
-
-	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
+	IL_0018:  ret 
+    } // end of method PropertyTask::.ctor
 
-    // method line 188
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    // method line 254
+    .method public hidebysig specialname 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x8fe8
+        // Method begins at RVA 0xc1b4
 	// 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.CopyTask::_sourceFile
+	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 CopyTask::get_SourceFile
+    } // end of method PropertyTask::get_PropertyName
 
-    // method line 189
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 255
+    .method public hidebysig specialname 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9003
+        // Method begins at RVA 0xc1cf
 	// 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 string NAnt.Core.Tasks.PropertyTask::_name
 	IL_0008:  ret 
-    } // end of method CopyTask::set_SourceFile
+    } // end of method PropertyTask::set_PropertyName
 
-    // method line 190
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    // method line 256
+    .method public hidebysig specialname 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x9010
+        // Method begins at RVA 0xc1dc
 	// 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.CopyTask::_toFile
+	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 CopyTask::get_ToFile
+    } // end of method PropertyTask::get_Value
 
-    // method line 191
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 257
+    .method public hidebysig specialname 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x902b
+        // Method begins at RVA 0xc1f7
 	// 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_0003:  stfld string NAnt.Core.Tasks.PropertyTask::_value
 	IL_0008:  ret 
-    } // end of method CopyTask::set_ToFile
+    } // end of method PropertyTask::set_Value
 
-    // method line 192
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    // method line 258
+    .method public hidebysig specialname 
+           instance default bool get_ReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x9038
+        // Method begins at RVA 0xc204
 	// 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:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::_toDirectory
+	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 CopyTask::get_ToDirectory
+    } // end of method PropertyTask::get_ReadOnly
 
-    // method line 193
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 259
+    .method public hidebysig specialname 
+           instance default void set_ReadOnly (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9053
+        // Method begins at RVA 0xc21f
 	// 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_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_readOnly
 	IL_0008:  ret 
-    } // end of method CopyTask::set_ToDirectory
+    } // end of method PropertyTask::set_ReadOnly
 
-    // method line 194
+    // method line 260
     .method public hidebysig specialname 
-           instance default bool get_Overwrite ()  cil managed 
+           instance default bool get_Dynamic ()  cil managed 
     {
-        // Method begins at RVA 0x9060
+        // Method begins at RVA 0xc22c
 	// 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::_overwrite
+	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 CopyTask::get_Overwrite
+    } // end of method PropertyTask::get_Dynamic
 
-    // method line 195
+    // method line 261
     .method public hidebysig specialname 
-           instance default void set_Overwrite (bool 'value')  cil managed 
+           instance default void set_Dynamic (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x907b
+        // Method begins at RVA 0xc247
 	// 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_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_dynamic
 	IL_0008:  ret 
-    } // end of method CopyTask::set_Overwrite
+    } // end of method PropertyTask::set_Dynamic
 
-    // method line 196
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Flatten ()  cil managed 
+    // method line 262
+    .method public hidebysig specialname 
+           instance default bool get_Overwrite ()  cil managed 
     {
-        // Method begins at RVA 0x9088
+        // Method begins at RVA 0xc254
 	// 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::_flatten
+	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 CopyTask::get_Flatten
+    } // end of method PropertyTask::get_Overwrite
 
-    // method line 197
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Flatten (bool 'value')  cil managed 
+    // method line 263
+    .method public hidebysig specialname 
+           instance default void set_Overwrite (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x90a3
+        // Method begins at RVA 0xc26f
 	// 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_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
 	IL_0008:  ret 
-    } // end of method CopyTask::set_Flatten
+    } // end of method PropertyTask::set_Overwrite
 
-    // method line 198
+    // method line 264
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xc27c
+	// 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
+
+	.property instance string PropertyName ()
+	{
+		.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.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.
+
+		.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 bool Dynamic ()
+	{
+		.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.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 bool Overwrite ()
+	{
+		.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.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.PropertyTask
+}
+
+.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..
+
+    .field  private  string _pattern
+    .field  private  string _input
+    .field  private  valuetype [System]System.Text.RegularExpressions.RegexOptions _options
+
+    // method line 265
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xc570
+	// Code size 14 (0xe)
+	.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
+
+    // method line 266
     .method public hidebysig specialname 
-           instance default bool get_IncludeEmptyDirs ()  cil managed 
+           instance default string get_Pattern ()  cil managed 
     {
-        // Method begins at RVA 0x90b0
+        // Method begins at RVA 0xc580
 	// 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.CopyTask::_includeEmptyDirs
+	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 CopyTask::get_IncludeEmptyDirs
+    } // end of method RegexTask::get_Pattern
 
-    // method line 199
+    // method line 267
     .method public hidebysig specialname 
-           instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
+           instance default void set_Pattern (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x90cb
+        // Method begins at RVA 0xc59b
 	// 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_0003:  stfld string NAnt.Core.Tasks.RegexTask::_pattern
 	IL_0008:  ret 
-    } // end of method CopyTask::set_IncludeEmptyDirs
+    } // end of method RegexTask::set_Pattern
 
-    // method line 200
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
+    // method line 268
+    .method public hidebysig specialname 
+           instance default valuetype [System]System.Text.RegularExpressions.RegexOptions get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x90d8
+        // Method begins at RVA 0xc5a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		valuetype [System]System.Text.RegularExpressions.RegexOptions	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
+	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 CopyTask::get_CopyFileSet
+    } // end of method RegexTask::get_Options
 
-    // method line 201
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 269
+    .method public hidebysig specialname 
+           instance default void set_Options (valuetype [System]System.Text.RegularExpressions.RegexOptions 'value')  cil managed 
     {
-        // Method begins at RVA 0x90f3
+        // Method begins at RVA 0xc5c3
 	// 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_0003:  stfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
 	IL_0008:  ret 
-    } // end of method CopyTask::set_CopyFileSet
+    } // end of method RegexTask::set_Options
 
-    // method line 202
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    // method line 270
+    .method public hidebysig specialname 
+           instance default string get_Input ()  cil managed 
     {
-        // Method begins at RVA 0x9100
+        // Method begins at RVA 0xc5d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::_filters
+	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 CopyTask::get_Filters
+    } // end of method RegexTask::get_Input
 
-    // method line 203
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    // method line 271
+    .method public hidebysig specialname 
+           instance default void set_Input (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x911b
+        // Method begins at RVA 0xc5eb
 	// 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:  stfld string NAnt.Core.Tasks.RegexTask::_input
 	IL_0008:  ret 
-    } // end of method CopyTask::set_Filters
+    } // end of method RegexTask::set_Input
 
-    // method line 204
+    // method line 272
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xc5f8
+	// Code size 257 (0x101)
+	.maxstack 8
+	.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)
+	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_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_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
+
+	IL_0100:  ret 
+    } // end of method RegexTask::ExecuteTask
+
+	.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.
+
+		.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 valuetype [System]System.Text.RegularExpressions.RegexOptions Options ()
+	{
+		.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 string Input ()
+	{
+		.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.Tasks.RegexTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit SetEnvTask
+  	extends NAnt.Core.Task
+  {
+    .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
+
+    // method line 273
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xc718
+	// Code size 18 (0x12)
+	.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
+
+    // method line 274
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
+           instance default string get_EnvName ()  cil managed 
     {
-        // Method begins at RVA 0x9128
+        // Method begins at RVA 0xc72c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_inputEncoding
+	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 CopyTask::get_InputEncoding
+    } // end of method SetEnvTask::get_EnvName
 
-    // method line 205
+    // method line 275
     .method public hidebysig specialname 
-           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_EnvName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9143
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc747
+	// Code size 14 (0xe)
 	.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_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 206
+    // method line 276
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_OutputEncoding ()  cil managed 
+           instance default string get_LiteralValue ()  cil managed 
     {
-        // Method begins at RVA 0x9150
+        // Method begins at RVA 0xc758
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_outputEncoding
+	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 CopyTask::get_OutputEncoding
+    } // end of method SetEnvTask::get_LiteralValue
 
-    // method line 207
+    // method line 277
     .method public hidebysig specialname 
-           instance default void set_OutputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_LiteralValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x916b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc773
+	// Code size 16 (0x10)
 	.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_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 208
-    .method family hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_FileCopyMap ()  cil managed 
+    // method line 278
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x9178
-	// Code size 20 (0x14)
+        // Method begins at RVA 0xc784
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		class [mscorlib]System.IO.FileInfo	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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CopyTask::get_FileCopyMap
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SetEnvTask::get_File
 
-    // method line 209
-    .method family hidebysig specialname 
-           instance default class NAnt.Core.Tasks.CopyTask/FileOperationMap get_OperationMap ()  cil managed 
+    // method line 279
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc79f
+	// 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
+
+    // method line 280
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x9198
+        // Method begins at RVA 0xc7b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Tasks.CopyTask/FileOperationMap	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	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 CopyTask::get_OperationMap
+    } // end of method SetEnvTask::get_Directory
 
-    // method line 210
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 281
+    .method public hidebysig specialname 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x91b4
-	// Code size 321 (0x141)
-	.maxstack 3
+        // Method begins at RVA 0xc7d3
+	// Code size 21 (0x15)
+	.maxstack 8
 	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_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_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_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_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
 
-	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
+    // method line 282
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
+    {
+        // Method begins at RVA 0xc7ec
+	// 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.Tasks.SetEnvTask::_path
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SetEnvTask::get_Path
 
-	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
+    // method line 283
+    .method public hidebysig specialname 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc807
+	// 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 NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::_path
+	IL_0014:  ret 
+    } // end of method SetEnvTask::set_Path
 
-	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
+    // method line 284
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
+    {
+        // Method begins at RVA 0xc820
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SetEnvTask::get_EnvironmentVariables
 
-	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 285
+    .method public hidebysig specialname 
+           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc83b
+	// 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
 
-	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
+    // method line 286
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xc845
+	// Code size 47 (0x2f)
+	.maxstack 8
+	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_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_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_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_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 211
+    // method line 287
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x9304
-	// Code size 1161 (0x489)
-	.maxstack 7
+        // Method begins at RVA 0xc878
+	// Code size 149 (0x95)
+	.maxstack 3
 	.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)
+		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:  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_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_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_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
+	IL_0002:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
+	IL_0007:  brfalse IL_002b
 
-	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_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_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_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_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
+	  IL_0050:  ldloc.0 
+	  IL_0051:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
+	  IL_0056:  brtrue IL_006f
 
-	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_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_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_007b:  leave IL_0094
 
-	IL_00d8:  ldloc.0 
-	IL_00d9:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
-	IL_00de:  brfalse IL_00f7
+	} // 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_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_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
 
-	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
+    // method line 288
+    .method private hidebysig 
+           instance default void SetSingleEnvironmentVariable (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc92c
+	// Code size 95 (0x5f)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Exception	V_1)
+	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_010d:  ldarg.0 
-	IL_010e:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	IL_0113:  brtrue IL_0166
+	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
 
-	IL_0118:  ldarg.0 
-	IL_0119:  call instance bool class NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs()
-	IL_011e:  brfalse IL_0166
+	} // 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
 
-	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
+	.property instance string EnvName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6E 61 6D 65 00 00 ) // ...name..
 
-	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
+		.get instance default string NAnt.Core.Tasks.SetEnvTask::get_EnvName () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_EnvName (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_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
+		.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 [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_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
+		.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 [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_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
+		.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.PathSet Path ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-	  IL_01e2:  nop 
-	  IL_01e3:  ldarg.0 
-	  IL_01e4:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	  IL_01e9:  brfalse IL_020e
+		.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.EnvironmentVariableCollection EnvironmentVariables ()
+	{
+		.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
 
-	  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
+		.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.SetEnvTask
+}
 
-	  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
+.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..
 
-	  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
+    .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
 
-	  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
+    // method line 289
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xc9a8
+	// 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
 
-	  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 290
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_BuildFile ()  cil managed 
+    {
+        // Method begins at RVA 0xc9d0
+	// 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_02ac:  ldloc.s 10
-	  IL_02ae:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
-	  IL_02b3:  brfalse IL_0307
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntTask::get_BuildFile
 
-	  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 line 291
+    .method public hidebysig specialname 
+           instance default void set_BuildFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc9eb
+	// 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
 
-	  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 292
+    .method public hidebysig specialname 
+           instance default string get_DefaultTarget ()  cil managed 
+    {
+        // Method begins at RVA 0xc9f8
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntTask::get_DefaultTarget
 
-	  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 293
+    .method public hidebysig specialname 
+           instance default void set_DefaultTarget (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca13
+	// 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
 
-	  IL_0329:  leave IL_0345
+    // method line 294
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Types.FileSet get_BuildFiles ()  cil managed 
+    {
+        // Method begins at RVA 0xca24
+	// 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
 
-	} // 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntTask::get_BuildFiles
 
-	  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 295
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_BuildFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca3f
+	// 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
 
-	IL_0350:  ldarg.0 
-	IL_0351:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	IL_0356:  brtrue IL_0481
+    // method line 296
+    .method public hidebysig specialname 
+           instance default bool get_InheritAll ()  cil managed 
+    {
+        // Method begins at RVA 0xca4c
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntTask::get_InheritAll
 
-	  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
+    // method line 297
+    .method public hidebysig specialname 
+           instance default void set_InheritAll (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca67
+	// 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
 
-	  IL_039f:  nop 
-	  IL_03a0:  leave IL_0458
+    // method line 298
+    .method public hidebysig specialname 
+           instance default bool get_InheritRefs ()  cil managed 
+    {
+        // Method begins at RVA 0xca74
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntTask::get_InheritRefs
 
-	  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
+    // method line 299
+    .method public hidebysig specialname 
+           instance default void set_InheritRefs (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca8f
+	// 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
 
-	  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
+    // method line 300
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_OverrideProperties ()  cil managed 
+    {
+        // Method begins at RVA 0xca9c
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntTask::get_OverrideProperties
 
-	  } // 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 301
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xcab8
+	// 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_0464:  leave IL_0480
+	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
 
-	} // 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_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_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
+	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 212
-    .method family virtual hidebysig newslot 
-           instance default void DoFileOperations ()  cil managed 
+    // method line 302
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x97e8
-	// Code size 940 (0x3ac)
-	.maxstack 8
+        // Method begins at RVA 0xcb18
+	// Code size 157 (0x9d)
+	.maxstack 3
 	.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)
+		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.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_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
+	IL_0007:  brfalse IL_001f
 
-	IL_0012:  nop 
-	IL_0013:  br IL_03ab
+	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_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_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_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_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_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_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 303
+    .method private hidebysig 
+           instance default void RunBuild (class [mscorlib]System.IO.FileInfo buildFile)  cil managed 
+    {
+        // Method begins at RVA 0xcbd4
+	// 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 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 304
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xcddc
+	// 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 305
+    .method public hidebysig specialname 
+           instance default int32 get_Hours ()  cil managed 
+    {
+        // Method begins at RVA 0xce00
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SleepTask::get_Hours
+
+    // method line 306
+    .method public hidebysig specialname 
+           instance default void set_Hours (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xce1b
+	// 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 307
+    .method public hidebysig specialname 
+           instance default int32 get_Minutes ()  cil managed 
+    {
+        // Method begins at RVA 0xce28
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SleepTask::get_Minutes
+
+    // method line 308
+    .method public hidebysig specialname 
+           instance default void set_Minutes (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xce43
+	// 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 309
+    .method public hidebysig specialname 
+           instance default int32 get_Seconds ()  cil managed 
+    {
+        // Method begins at RVA 0xce50
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SleepTask::get_Seconds
+
+    // method line 310
+    .method public hidebysig specialname 
+           instance default void set_Seconds (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xce6b
+	// 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 311
+    .method public hidebysig specialname 
+           instance default int32 get_Milliseconds ()  cil managed 
+    {
+        // Method begins at RVA 0xce78
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SleepTask::get_Milliseconds
+
+    // method line 312
+    .method public hidebysig specialname 
+           instance default void set_Milliseconds (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xce93
+	// 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 313
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xce9d
+	// 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 314
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xcec0
+	// 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 315
+    .method private hidebysig 
+           instance default int32 GetSleepTime ()  cil managed 
+    {
+        // Method begins at RVA 0xcefc
+	// 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 316
+    .method private hidebysig 
+           instance default void DoSleep (int32 millis)  cil managed 
+    {
+        // Method begins at RVA 0xcf38
+	// 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 ) // ............
+
+		.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 beforefieldinit IfTask
+  	extends NAnt.Core.TaskContainer
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+    .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 317
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xcf41
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.TaskContainer::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IfTask::.ctor
+
+    // method line 318
+    .method public hidebysig specialname 
+           instance default void set_UpToDateFile (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcf4c
+	// 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::_uptodateFiles
+	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::_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 319
+    .method public hidebysig specialname 
+           instance default void set_CompareFile (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcfb4
+	// 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 320
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_CompareFiles ()  cil managed 
+    {
+        // Method begins at RVA 0xd01c
+	// 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.IfTask::_compareFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_CompareFiles
+
+    // method line 321
+    .method public hidebysig specialname 
+           instance default void set_CompareFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd037
+	// 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
+
+    // method line 322
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_UpToDateFiles ()  cil managed 
+    {
+        // Method begins at RVA 0xd044
+	// 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.IfTask::_uptodateFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_UpToDateFiles
+
+    // method line 323
+    .method public hidebysig specialname 
+           instance default void set_UpToDateFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd05f
+	// 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::_uptodateFiles
+	IL_0008:  ret 
+    } // end of method IfTask::set_UpToDateFiles
+
+    // method line 324
+    .method public hidebysig specialname 
+           instance default string get_PropertyNameTrue ()  cil managed 
+    {
+        // Method begins at RVA 0xd06c
+	// 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.IfTask::_propNameTrue
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_PropertyNameTrue
+
+    // method line 325
+    .method public hidebysig specialname 
+           instance default void set_PropertyNameTrue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd087
+	// 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::_propNameTrue
+	IL_000d:  ret 
+    } // end of method IfTask::set_PropertyNameTrue
+
+    // method line 326
+    .method public hidebysig specialname 
+           instance default string get_PropertyNameExists ()  cil managed 
+    {
+        // Method begins at RVA 0xd098
+	// 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.IfTask::_propNameExists
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_PropertyNameExists
+
+    // method line 327
+    .method public hidebysig specialname 
+           instance default void set_PropertyNameExists (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd0b3
+	// 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::_propNameExists
+	IL_000d:  ret 
+    } // end of method IfTask::set_PropertyNameExists
+
+    // method line 328
+    .method public hidebysig specialname 
+           instance default string get_TargetNameExists ()  cil managed 
+    {
+        // Method begins at RVA 0xd0c4
+	// 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.IfTask::_targetName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_TargetNameExists
+
+    // method line 329
+    .method public hidebysig specialname 
+           instance default void set_TargetNameExists (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd0df
+	// 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
+
+    // method line 330
+    .method public hidebysig specialname 
+           instance default string get_Test ()  cil managed 
+    {
+        // Method begins at RVA 0xd0f0
+	// 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.IfTask::_test
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_Test
+
+    // method line 331
+    .method public hidebysig specialname 
+           instance default void set_Test (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd10b
+	// 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
+
+    // method line 332
+    .method family virtual hidebysig newslot specialname 
+           instance default bool get_ConditionsTrue ()  cil managed 
+    {
+        // Method begins at RVA 0xd11c
+	// 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_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_0024:  nop 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  stloc.1 
+	IL_0027:  br IL_01c7
+
+	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:  brfalse IL_005d
+
+	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_005d:  ldc.i4.0 
+	IL_005e:  stloc.0 
+	IL_005f:  ldloc.0 
+	IL_0060:  brtrue IL_006d
+
+	IL_0065:  nop 
+	IL_0066:  ldc.i4.0 
+	IL_0067:  stloc.1 
+	IL_0068:  br IL_01c7
+
+	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_0079:  nop 
+	IL_007a:  ldloc.0 
+	IL_007b:  brfalse IL_0093
+
+	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_0093:  ldc.i4.0 
+	IL_0094:  stloc.0 
+	IL_0095:  ldloc.0 
+	IL_0096:  brtrue IL_00a3
+
+	IL_009b:  nop 
+	IL_009c:  ldc.i4.0 
+	IL_009d:  stloc.1 
+	IL_009e:  br IL_01c7
+
+	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_00af:  nop 
+	.try { // 0
+	  IL_00b0:  nop 
+	  IL_00b1:  ldloc.0 
+	  IL_00b2:  brfalse IL_00cf
+
+	  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_00cf:  ldc.i4.0 
+	  IL_00d0:  stloc.0 
+	  IL_00d1:  ldloc.0 
+	  IL_00d2:  brtrue IL_00df
+
+	  IL_00d7:  nop 
+	  IL_00d8:  ldc.i4.0 
+	  IL_00d9:  stloc.1 
+	  IL_00da:  leave IL_01c7
+
+	  IL_00df:  nop 
+	  IL_00e0:  leave IL_010e
+
+	} // 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_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_012d:  ldloc.3 
+	IL_012e:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0133:  brtrue IL_0151
+
+	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_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_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
+
+	IL_01a7:  ldloc.s 5
+	IL_01a9:  ldc.i4.0 
+	IL_01aa:  ceq 
+	IL_01ac:  br.s IL_01af
+
+	IL_01ae:  ldc.i4.0 
+	IL_01af:  stloc.0 
+	IL_01b0:  nop 
+	IL_01b1:  ldloc.0 
+	IL_01b2:  brtrue IL_01bf
+
+	IL_01b7:  nop 
+	IL_01b8:  ldc.i4.0 
+	IL_01b9:  stloc.1 
+	IL_01ba:  br IL_01c7
+
+	IL_01bf:  nop 
+	IL_01c0:  ldloc.0 
+	IL_01c1:  stloc.1 
+	IL_01c2:  br IL_01c7
+
+	IL_01c7:  ldloc.1 
+	IL_01c8:  ret 
+    } // end of method IfTask::get_ConditionsTrue
+
+    // method line 333
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xd304
+	// Code size 21 (0x15)
+	.maxstack 8
+	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_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 334
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xd31c
+	// Code size 92 (0x5c)
+	.maxstack 2
+	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_0028:  ldarg.0 
+	IL_0029:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
+	IL_002e:  brtrue IL_005b
+
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
+	IL_0039:  brtrue IL_005b
+
+	IL_003e:  ldarg.0 
+	IL_003f:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
+	IL_0044:  brtrue IL_005b
+
+	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
+
+	.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                                              ) // .
+
+		.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_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..
+
+		.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') 
+	}
+	.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                                              ) // .
+
+		.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') 
+	}
+	.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                                           ) // ..
+
+		.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') 
+	}
+	.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                                              ) // .
+
+		.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') 
+	}
+	.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..
+
+		.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') 
+	}
+	.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                                              ) // .
+
+		.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') 
+	}
+	.property instance string Test ()
+	{
+		.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') 
+	}
+	.property instance bool ConditionsTrue ()
+	{
+		.get instance default bool NAnt.Core.Tasks.IfTask::get_ConditionsTrue () 
+	}
+  } // end of class NAnt.Core.Tasks.IfTask
+}
+
+.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..
+
+    .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 335
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd384
+	// 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 336
+    .method family virtual hidebysig specialname 
+           instance default bool get_ConditionsTrue ()  cil managed 
+    {
+        // Method begins at RVA 0xd38c
+	// Code size 18 (0x12)
+	.maxstack 2
+	.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_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method IfNotTask::get_ConditionsTrue
+
+	.property instance bool ConditionsTrue ()
+	{
+		.get instance default bool NAnt.Core.Tasks.IfNotTask::get_ConditionsTrue () 
+	}
+  } // end of class NAnt.Core.Tasks.IfNotTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit DeleteTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 64 65 6C 65 74 65 00 00 ) // ...delete..
+
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
+    .field  private  class NAnt.Core.Types.FileSet _fileset
+    .field  private  bool _includeEmptyDirs
+
+    // method line 337
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd3aa
+	// Code size 25 (0x19)
+	.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.DeleteTask::_fileset
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.Core.Tasks.DeleteTask::_includeEmptyDirs
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0018:  ret 
+    } // end of method DeleteTask::.ctor
+
+    // method line 338
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    {
+        // Method begins at RVA 0xd3c4
+	// 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.DeleteTask::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DeleteTask::get_File
+
+    // method line 339
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd3df
+	// 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.DeleteTask::_file
+	IL_0008:  ret 
+    } // end of method DeleteTask::set_File
+
+    // method line 340
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    {
+        // Method begins at RVA 0xd3ec
+	// 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.DeleteTask::_dir
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DeleteTask::get_Directory
+
+    // method line 341
+    .method public hidebysig specialname 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd407
+	// 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.DeleteTask::_dir
+	IL_0008:  ret 
+    } // end of method DeleteTask::set_Directory
+
+    // method line 342
+    .method public hidebysig specialname 
+           instance default bool get_IncludeEmptyDirs ()  cil managed 
+    {
+        // Method begins at RVA 0xd414
+	// 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.DeleteTask::_includeEmptyDirs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DeleteTask::get_IncludeEmptyDirs
+
+    // method line 343
+    .method public hidebysig specialname 
+           instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd42f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.DeleteTask::_includeEmptyDirs
+	IL_0008:  ret 
+    } // end of method DeleteTask::set_IncludeEmptyDirs
+
+    // method line 344
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_DeleteFileSet ()  cil managed 
+    {
+        // Method begins at RVA 0xd43c
+	// 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.DeleteTask::_fileset
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DeleteTask::get_DeleteFileSet
+
+    // method line 345
+    .method public hidebysig specialname 
+           instance default void set_DeleteFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd457
+	// 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.DeleteTask::_fileset
+	IL_0008:  ret 
+    } // end of method DeleteTask::set_DeleteFileSet
+
+    // method line 346
+    .method public virtual hidebysig specialname 
+           instance default bool get_Verbose ()  cil managed 
+    {
+        // Method begins at RVA 0xd464
+	// 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.Task::get_Verbose()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DeleteTask::get_Verbose
+
+    // method line 347
+    .method public virtual hidebysig specialname 
+           instance default void set_Verbose (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd47f
+	// 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.Task::set_Verbose(bool)
+	IL_0008:  ret 
+    } // end of method DeleteTask::set_Verbose
+
+    // method line 348
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xd48c
+	// Code size 103 (0x67)
+	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.DeleteTask::get_File()
+	IL_0007:  brfalse IL_0029
+
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
+	IL_0012:  brfalse IL_0029
+
+	IL_0017:  nop 
+	IL_0018:  ldstr "Cannot specify both 'file' and 'dir' attribute in the same <delete> task."
+	IL_001d:  ldarg.0 
+	IL_001e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0023:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.DeleteTask::get_File()
+	IL_002f:  brtrue IL_003f
+
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
+	IL_003a:  brfalse IL_0066
+
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	IL_0045:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_004a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_004f:  brfalse IL_0066
+
+	IL_0054:  nop 
+	IL_0055:  ldstr "Cannot specify both 'file' or 'dir' attribute and use <fileset> in the same <delete> task."
+	IL_005a:  ldarg.0 
+	IL_005b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0060:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0065:  throw 
+	IL_0066:  ret 
+    } // end of method DeleteTask::Initialize
+
+    // method line 349
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xd500
+	// Code size 631 (0x277)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2,
+		int32	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		string[]	V_6,
+		class [mscorlib]System.Exception	V_7,
+		string	V_8,
+		class [mscorlib]System.IDisposable	V_9)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	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.DeleteTask::get_DeleteFileSet()
+	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.DeleteTask::get_File()
+	IL_0034:  brfalse IL_0052
+
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.DeleteTask::get_File()
+	IL_0041:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0046:  ldc.i4.1 
+	IL_0047:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteFile(string, bool)
+	IL_004c:  nop 
+	IL_004d:  br IL_0276
+
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
+	IL_0058:  brfalse IL_00bc
+
+	IL_005d:  nop 
+	IL_005e:  ldarg.0 
+	IL_005f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
+	IL_0064:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0069:  brtrue IL_0074
+
+	IL_006e:  nop 
+	IL_006f:  br IL_0276
+
+	IL_0074:  ldarg.0 
+	IL_0075:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
+	IL_007a:  brtrue IL_00a5
+
+	IL_007f:  nop 
+	IL_0080:  ldarg.0 
+	IL_0081:  ldc.i4 3000
+	IL_0086:  ldstr "Deleting directory '{0}'."
+	IL_008b:  ldc.i4.1 
+	IL_008c:  newarr [mscorlib]System.Object
+	IL_0091:  dup 
+	IL_0092:  ldc.i4.0 
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
+	IL_0099:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_009e:  stelem.ref 
+	IL_009f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00a4:  nop 
+	IL_00a5:  ldarg.0 
+	IL_00a6:  ldarg.0 
+	IL_00a7:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
+	IL_00ac:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00b1:  call instance void class NAnt.Core.Tasks.DeleteTask::RecursiveDeleteDirectory(string)
+	IL_00b6:  nop 
+	IL_00b7:  br IL_0276
+
+	IL_00bc:  nop 
+	IL_00bd:  ldarg.0 
+	IL_00be:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	IL_00c3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00c8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00cd:  ldc.i4.0 
+	IL_00ce:  ble IL_0154
+
+	IL_00d3:  nop 
+	IL_00d4:  ldarg.0 
+	IL_00d5:  ldc.i4 3000
+	IL_00da:  ldstr "Deleting {0} files."
+	IL_00df:  ldc.i4.1 
+	IL_00e0:  newarr [mscorlib]System.Object
+	IL_00e5:  dup 
+	IL_00e6:  ldc.i4.0 
+	IL_00e7:  ldarg.0 
+	IL_00e8:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	IL_00ed:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00f2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00f7:  box [mscorlib]System.Int32
+	IL_00fc:  stelem.ref 
+	IL_00fd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0102:  nop 
+	IL_0103:  ldarg.0 
+	IL_0104:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	IL_0109:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_010e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0113:  stloc.1 
+	.try { // 0
+	  IL_0114:  br IL_012f
+
+	  IL_0119:  ldloc.1 
+	  IL_011a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_011f:  stloc.0 
+	  IL_0120:  nop 
+	  IL_0121:  ldarg.0 
+	  IL_0122:  ldloc.0 
+	  IL_0123:  ldarg.0 
+	  IL_0124:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
+	  IL_0129:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteFile(string, bool)
+	  IL_012e:  nop 
+	  IL_012f:  ldloc.1 
+	  IL_0130:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0135:  brtrue IL_0119
+
+	  IL_013a:  leave IL_0153
+
+	} // end .try 0
+	finally  { // 0
+	  IL_013f:  ldloc.1 
+	  IL_0140:  isinst [mscorlib]System.IDisposable
+	  IL_0145:  dup 
+	  IL_0146:  stloc.2 
+	  IL_0147:  brfalse IL_0152
+
+	  IL_014c:  ldloc.2 
+	  IL_014d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0152:  endfinally 
+	} // end handler 0
+	IL_0153:  nop 
+	IL_0154:  ldarg.0 
+	IL_0155:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	IL_015a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_015f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0164:  ldc.i4.0 
+	IL_0165:  ble IL_0275
+
+	IL_016a:  ldarg.0 
+	IL_016b:  call instance bool class NAnt.Core.Tasks.DeleteTask::get_IncludeEmptyDirs()
+	IL_0170:  brfalse IL_0275
+
+	IL_0175:  nop 
+	IL_0176:  ldc.i4.0 
+	IL_0177:  stloc.3 
+	IL_0178:  nop 
+	IL_0179:  ldarg.0 
+	IL_017a:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
+	IL_017f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0184:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0189:  stloc.s 5
+	.try { // 2
+	  IL_018b:  br IL_0224
+
+	  IL_0190:  ldloc.s 5
+	  IL_0192:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0197:  stloc.s 4
+	  IL_0199:  nop 
+	  IL_019a:  ldloc.s 4
+	  IL_019c:  call string[] class [mscorlib]System.IO.Directory::GetFileSystemEntries(string)
+	  IL_01a1:  stloc.s 6
+	  IL_01a3:  ldloc.s 6
+	  IL_01a5:  brfalse IL_01b3
+
+	  IL_01aa:  ldloc.s 6
+	  IL_01ac:  ldlen 
+	  IL_01ad:  conv.i4 
+	  IL_01ae:  brtrue IL_0223
+
+	  IL_01b3:  nop 
+	  .try { // 1
+	    IL_01b4:  nop 
+	    IL_01b5:  ldarg.0 
+	    IL_01b6:  ldloc.s 4
+	    IL_01b8:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteDirectory(string)
+	    IL_01bd:  ldloc.3 
+	    IL_01be:  ldc.i4.1 
+	    IL_01bf:  add 
+	    IL_01c0:  stloc.3 
+	    IL_01c1:  nop 
+	    IL_01c2:  leave IL_0222
+
+	  } // end .try 1
+	  catch class [mscorlib]System.Exception { // 1
+	    IL_01c7:  stloc.s 7
+	    IL_01c9:  nop 
+	    IL_01ca:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_01cf:  ldstr "NA1113"
+	    IL_01d4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_01d9:  ldloc.s 4
+	    IL_01db:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_01e0:  stloc.s 8
+	    IL_01e2:  ldarg.0 
+	    IL_01e3:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	    IL_01e8:  brfalse IL_01fe
+
+	    IL_01ed:  nop 
+	    IL_01ee:  ldloc.s 8
+	    IL_01f0:  ldarg.0 
+	    IL_01f1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_01f6:  ldloc.s 7
+	    IL_01f8:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_01fd:  throw 
+	    IL_01fe:  ldarg.0 
+	    IL_01ff:  ldc.i4 4000
+	    IL_0204:  ldloc.s 8
+	    IL_0206:  ldstr " "
+	    IL_020b:  ldloc.s 7
+	    IL_020d:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_0212:  call string string::Concat(string, string, string)
+	    IL_0217:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	    IL_021c:  nop 
+	    IL_021d:  leave IL_0222
+
+	  } // end handler 1
+	  IL_0222:  nop 
+	  IL_0223:  nop 
+	  IL_0224:  ldloc.s 5
+	  IL_0226:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_022b:  brtrue IL_0190
+
+	  IL_0230:  leave IL_024c
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0235:  ldloc.s 5
+	  IL_0237:  isinst [mscorlib]System.IDisposable
+	  IL_023c:  dup 
+	  IL_023d:  stloc.s 9
+	  IL_023f:  brfalse IL_024b
+
+	  IL_0244:  ldloc.s 9
+	  IL_0246:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_024b:  endfinally 
+	} // end handler 2
+	IL_024c:  ldloc.3 
+	IL_024d:  ldc.i4.0 
+	IL_024e:  ble IL_0274
+
+	IL_0253:  nop 
+	IL_0254:  ldarg.0 
+	IL_0255:  ldc.i4 3000
+	IL_025a:  ldstr "Deleted {0} directories."
+	IL_025f:  ldc.i4.1 
+	IL_0260:  newarr [mscorlib]System.Object
+	IL_0265:  dup 
+	IL_0266:  ldc.i4.0 
+	IL_0267:  ldloc.3 
+	IL_0268:  box [mscorlib]System.Int32
+	IL_026d:  stelem.ref 
+	IL_026e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0273:  nop 
+	IL_0274:  nop 
+	IL_0275:  nop 
+	IL_0276:  ret 
+    } // end of method DeleteTask::ExecuteTask
+
+    // method line 350
+    .method private hidebysig 
+           instance default void RecursiveDeleteDirectory (string path)  cil managed 
+    {
+        // Method begins at RVA 0xd7ac
+	// Code size 363 (0x16b)
+	.maxstack 7
+	.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,
+		class [mscorlib]System.Exception	V_8,
+		string	V_9,
+		class NAnt.Core.BuildException	V_10,
+		class [mscorlib]System.Exception	V_11,
+		string	V_12)
+	IL_0000:  nop 
+	.try { // 1
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0008:  brtrue IL_0013
+
+	  IL_000d:  nop 
+	  IL_000e:  leave IL_016a
+
+	  IL_0013:  ldarg.1 
+	  IL_0014:  call string[] class [mscorlib]System.IO.Directory::GetDirectories(string)
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  stloc.2 
+	  IL_001d:  ldc.i4.0 
+	  IL_001e:  stloc.3 
+	  IL_001f:  br IL_0035
+
+	  IL_0024:  ldloc.2 
+	  IL_0025:  ldloc.3 
+	  IL_0026:  ldelem.ref 
+	  IL_0027:  stloc.1 
+	  IL_0028:  nop 
+	  IL_0029:  ldarg.0 
+	  IL_002a:  ldloc.1 
+	  IL_002b:  call instance void class NAnt.Core.Tasks.DeleteTask::RecursiveDeleteDirectory(string)
+	  IL_0030:  nop 
+	  IL_0031:  ldloc.3 
+	  IL_0032:  ldc.i4.1 
+	  IL_0033:  add 
+	  IL_0034:  stloc.3 
+	  IL_0035:  ldloc.3 
+	  IL_0036:  ldloc.2 
+	  IL_0037:  ldlen 
+	  IL_0038:  conv.i4 
+	  IL_0039:  blt IL_0024
+
+	  IL_003e:  ldarg.1 
+	  IL_003f:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string)
+	  IL_0044:  stloc.s 4
+	  IL_0046:  nop 
+	  IL_0047:  ldloc.s 4
+	  IL_0049:  stloc.s 6
+	  IL_004b:  ldc.i4.0 
+	  IL_004c:  stloc.s 7
+	  IL_004e:  br IL_00f2
+
+	  IL_0053:  ldloc.s 6
+	  IL_0055:  ldloc.s 7
+	  IL_0057:  ldelem.ref 
+	  IL_0058:  stloc.s 5
+	  IL_005a:  nop 
+	  .try { // 0
+	    IL_005b:  nop 
+	    IL_005c:  ldloc.s 5
+	    IL_005e:  ldc.i4 128
+	    IL_0063:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	    IL_0068:  ldarg.0 
+	    IL_0069:  ldc.i4 2000
+	    IL_006e:  ldstr "Deleting file '{0}'."
+	    IL_0073:  ldc.i4.1 
+	    IL_0074:  newarr [mscorlib]System.Object
+	    IL_0079:  dup 
+	    IL_007a:  ldc.i4.0 
+	    IL_007b:  ldloc.s 5
+	    IL_007d:  stelem.ref 
+	    IL_007e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_0083:  ldloc.s 5
+	    IL_0085:  call void class [mscorlib]System.IO.File::Delete(string)
+	    IL_008a:  nop 
+	    IL_008b:  leave IL_00eb
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_0090:  stloc.s 8
+	    IL_0092:  nop 
+	    IL_0093:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0098:  ldstr "NA1114"
+	    IL_009d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_00a2:  ldloc.s 5
+	    IL_00a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_00a9:  stloc.s 9
+	    IL_00ab:  ldarg.0 
+	    IL_00ac:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	    IL_00b1:  brfalse IL_00c7
+
+	    IL_00b6:  nop 
+	    IL_00b7:  ldloc.s 9
+	    IL_00b9:  ldarg.0 
+	    IL_00ba:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_00bf:  ldloc.s 8
+	    IL_00c1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_00c6:  throw 
+	    IL_00c7:  ldarg.0 
+	    IL_00c8:  ldc.i4 2000
+	    IL_00cd:  ldloc.s 9
+	    IL_00cf:  ldstr " "
+	    IL_00d4:  ldloc.s 8
+	    IL_00d6:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_00db:  call string string::Concat(string, string, string)
+	    IL_00e0:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	    IL_00e5:  nop 
+	    IL_00e6:  leave IL_00eb
+
+	  } // end handler 0
+	  IL_00eb:  nop 
+	  IL_00ec:  ldloc.s 7
+	  IL_00ee:  ldc.i4.1 
+	  IL_00ef:  add 
+	  IL_00f0:  stloc.s 7
+	  IL_00f2:  ldloc.s 7
+	  IL_00f4:  ldloc.s 6
+	  IL_00f6:  ldlen 
+	  IL_00f7:  conv.i4 
+	  IL_00f8:  blt IL_0053
+
+	  IL_00fd:  ldarg.0 
+	  IL_00fe:  ldarg.1 
+	  IL_00ff:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteDirectory(string)
+	  IL_0104:  nop 
+	  IL_0105:  leave IL_016a
+
+	} // end .try 1
+	catch class NAnt.Core.BuildException { // 1
+	  IL_010a:  stloc.s 10
+	  IL_010c:  nop 
+	  IL_010d:  ldloc.s 10
+	  IL_010f:  throw 
+	} // end handler 1
+	catch class [mscorlib]System.Exception { // 2
+	  IL_0110:  stloc.s 11
+	  IL_0112:  nop 
+	  IL_0113:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0118:  ldstr "NA1113"
+	  IL_011d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0122:  ldarg.1 
+	  IL_0123:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0128:  stloc.s 12
+	  IL_012a:  ldarg.0 
+	  IL_012b:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	  IL_0130:  brfalse IL_0146
+
+	  IL_0135:  nop 
+	  IL_0136:  ldloc.s 12
+	  IL_0138:  ldarg.0 
+	  IL_0139:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_013e:  ldloc.s 11
+	  IL_0140:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0145:  throw 
+	  IL_0146:  ldarg.0 
+	  IL_0147:  ldc.i4 4000
+	  IL_014c:  ldloc.s 12
+	  IL_014e:  ldstr " "
+	  IL_0153:  ldloc.s 11
+	  IL_0155:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_015a:  call string string::Concat(string, string, string)
+	  IL_015f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_0164:  nop 
+	  IL_0165:  leave IL_016a
+
+	} // end handler 2
+	IL_016a:  ret 
+    } // end of method DeleteTask::RecursiveDeleteDirectory
+
+    // method line 351
+    .method private hidebysig 
+           instance default void DeleteFile (string path, bool verbose)  cil managed 
+    {
+        // Method begins at RVA 0xd970
+	// Code size 191 (0xbf)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	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:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0008:  stloc.0 
+	  IL_0009:  ldloc.0 
+	  IL_000a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_000f:  brtrue IL_001a
+
+	  IL_0014:  nop 
+	  IL_0015:  leave IL_00be
+
+	  IL_001a:  ldarg.2 
+	  IL_001b:  brfalse IL_003c
+
+	  IL_0020:  nop 
+	  IL_0021:  ldarg.0 
+	  IL_0022:  ldc.i4 3000
+	  IL_0027:  ldstr "Deleting file {0}."
+	  IL_002c:  ldc.i4.1 
+	  IL_002d:  newarr [mscorlib]System.Object
+	  IL_0032:  dup 
+	  IL_0033:  ldc.i4.0 
+	  IL_0034:  ldarg.1 
+	  IL_0035:  stelem.ref 
+	  IL_0036:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_003b:  nop 
+	  IL_003c:  ldloc.0 
+	  IL_003d:  callvirt instance valuetype [mscorlib]System.IO.FileAttributes class [mscorlib]System.IO.FileSystemInfo::get_Attributes()
+	  IL_0042:  ldc.i4 128
+	  IL_0047:  beq IL_005e
+
+	  IL_004c:  nop 
+	  IL_004d:  ldloc.0 
+	  IL_004e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0053:  ldc.i4 128
+	  IL_0058:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	  IL_005d:  nop 
+	  IL_005e:  ldarg.1 
+	  IL_005f:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_0064:  nop 
+	  IL_0065:  leave IL_00be
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_006a:  stloc.1 
+	  IL_006b:  nop 
+	  IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0071:  ldstr "NA1114"
+	  IL_0076:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_007b:  ldarg.1 
+	  IL_007c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0081:  stloc.2 
+	  IL_0082:  ldarg.0 
+	  IL_0083:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	  IL_0088:  brfalse IL_009c
+
+	  IL_008d:  nop 
+	  IL_008e:  ldloc.2 
+	  IL_008f:  ldarg.0 
+	  IL_0090:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0095:  ldloc.1 
+	  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:  ldc.i4 4000
+	  IL_00a2:  ldloc.2 
+	  IL_00a3:  ldstr " "
+	  IL_00a8:  ldloc.1 
+	  IL_00a9:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_00ae:  call string string::Concat(string, string, string)
+	  IL_00b3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_00b8:  nop 
+	  IL_00b9:  leave IL_00be
+
+	} // end handler 0
+	IL_00be:  ret 
+    } // end of method DeleteTask::DeleteFile
+
+    // method line 352
+    .method private hidebysig 
+           instance default void DeleteDirectory (string path)  cil managed 
+    {
+        // Method begins at RVA 0xda4c
+	// Code size 45 (0x2d)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldc.i4 128
+	IL_0007:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	IL_000c:  ldarg.0 
+	IL_000d:  ldc.i4 2000
+	IL_0012:  ldstr "Deleting directory '{0}'."
+	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 void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0026:  ldarg.1 
+	IL_0027:  call void class [mscorlib]System.IO.Directory::Delete(string)
+	IL_002c:  ret 
+    } // end of method DeleteTask::DeleteDirectory
+
+	.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.DeleteTask::get_File () 
+		.set instance default void NAnt.Core.Tasks.DeleteTask::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.Tasks.DeleteTask::get_Directory () 
+		.set instance default void NAnt.Core.Tasks.DeleteTask::set_Directory (class [mscorlib]System.IO.DirectoryInfo '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.DeleteTask::get_IncludeEmptyDirs () 
+		.set instance default void NAnt.Core.Tasks.DeleteTask::set_IncludeEmptyDirs (bool 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet DeleteFileSet ()
+	{
+		.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.DeleteTask::get_DeleteFileSet () 
+		.set instance default void NAnt.Core.Tasks.DeleteTask::set_DeleteFileSet (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance bool Verbose ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 76 65 72 62 6F 73 65 00 00 ) // ...verbose..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Tasks.DeleteTask::get_Verbose () 
+		.set instance default void NAnt.Core.Tasks.DeleteTask::set_Verbose (bool 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.DeleteTask
+}
+
+.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..
+
+    .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
+
+    // method line 353
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xda7a
+	// 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 354
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    {
+        // Method begins at RVA 0xda84
+	// 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
+
+    // method line 355
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xda9f
+	// 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 356
+    .method public hidebysig specialname 
+           instance default string get_Property ()  cil managed 
+    {
+        // Method begins at RVA 0xdaac
+	// 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.LoadFileTask::_property
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_Property
+
+    // method line 357
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xdac7
+	// 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 358
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    {
+        // Method begins at RVA 0xdad4
+	// 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.LoadFileTask::_encoding
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_Encoding
+
+    // method line 359
+    .method public hidebysig specialname 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0xdaef
+	// 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
+
+    // method line 360
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Filters.FilterChain get_FilterChain ()  cil managed 
+    {
+        // Method begins at RVA 0xdafc
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_FilterChain
+
+    // method line 361
+    .method public hidebysig specialname 
+           instance default void set_FilterChain (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    {
+        // Method begins at RVA 0xdb17
+	// 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 362
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xdb24
+	// Code size 159 (0x9f)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.IO.IOException	V_1)
+	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
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit IncludeTask
+  	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..
+
+    .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 363
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xdbe0
+	// 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
+
+    // method line 364
+    .method public hidebysig specialname 
+           instance default string get_BuildFileName ()  cil managed 
+    {
+        // Method begins at RVA 0xdbe8
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludeTask::get_BuildFileName
+
+    // method line 365
+    .method public hidebysig specialname 
+           instance default void set_BuildFileName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xdc03
+	// Code size 9 (0x9)
+	.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
+
+    // method line 366
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xdc10
+	// Code size 271 (0x10f)
+	.maxstack 3
+	.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)
+	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_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
+
+	  IL_00f3:  leave IL_010e
+
+	} // 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_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 367
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xdd48
+	// Code size 564 (0x234)
+	.maxstack 7
+	.locals init (
+		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:  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
+
+	    } // end .try 0
+	    finally  { // 0
+	      IL_01c7:  ldloc.s 9
+	      IL_01c9:  brfalse IL_01d5
+
+	      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
+
+	  } // 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 368
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xdfec
+	// 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
+
+	.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.
+
+		.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') 
+	}
+  } // end of class NAnt.Core.Tasks.IncludeTask
+}
+
+.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..
+
+    .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 369
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x8c14
+	// 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_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 370
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    {
+        // Method begins at RVA 0x8c68
+	// 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 371
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8c83
+	// 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_0008:  ret 
+    } // end of method CopyTask::set_SourceFile
+
+    // method line 372
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    {
+        // Method begins at RVA 0x8c90
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_ToFile
+
+    // method line 373
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8cab
+	// 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
+
+    // method line 374
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x8cb8
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_ToDirectory
+
+    // method line 375
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8cd3
+	// 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
+
+    // method line 376
+    .method public hidebysig specialname 
+           instance default bool get_Overwrite ()  cil managed 
+    {
+        // Method begins at RVA 0x8ce0
+	// 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::_overwrite
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_Overwrite
+
+    // method line 377
+    .method public hidebysig specialname 
+           instance default void set_Overwrite (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8cfb
+	// 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 378
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Flatten ()  cil managed 
+    {
+        // Method begins at RVA 0x8d08
+	// 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::_flatten
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_Flatten
+
+    // method line 379
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Flatten (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8d23
+	// 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
+
+    // method line 380
+    .method public hidebysig specialname 
+           instance default bool get_IncludeEmptyDirs ()  cil managed 
+    {
+        // Method begins at RVA 0x8d30
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_IncludeEmptyDirs
+
+    // method line 381
+    .method public hidebysig specialname 
+           instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8d4b
+	// 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
+
+    // method line 382
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
+    {
+        // Method begins at RVA 0x8d58
+	// 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.CopyTask::_fileset
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_CopyFileSet
+
+    // method line 383
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8d73
+	// 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
+
+    // method line 384
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    {
+        // Method begins at RVA 0x8d80
+	// 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 385
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8d9b
+	// 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_0008:  ret 
+    } // end of method CopyTask::set_Filters
+
+    // method line 386
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
+    {
+        // Method begins at RVA 0x8da8
+	// 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::_inputEncoding
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_InputEncoding
+
+    // method line 387
+    .method public hidebysig specialname 
+           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8dc3
+	// 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
+
+    // method line 388
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_OutputEncoding ()  cil managed 
+    {
+        // Method begins at RVA 0x8dd0
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_OutputEncoding
+
+    // method line 389
+    .method public hidebysig specialname 
+           instance default void set_OutputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8deb
+	// 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
+
+    // method line 390
+    .method family hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_FileCopyMap ()  cil managed 
+    {
+        // Method begins at RVA 0x8df8
+	// 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
+
+    // method line 391
+    .method family hidebysig specialname 
+           instance default class NAnt.Core.Tasks.CopyTask/FileOperationMap get_OperationMap ()  cil managed 
+    {
+        // Method begins at RVA 0x8e18
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_OperationMap
+
+    // method line 392
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x8e34
+	// 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_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_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_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_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_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_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_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_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_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_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 393
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x8f84
+	// 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_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_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_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
+
+	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_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_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
+
+	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_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_00d8:  ldloc.0 
+	IL_00d9:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
+	IL_00de:  brfalse IL_00f7
+
+	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_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_010d:  ldarg.0 
+	IL_010e:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	IL_0113:  brtrue IL_0166
+
+	IL_0118:  ldarg.0 
+	IL_0119:  call instance bool class NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs()
+	IL_011e:  brfalse IL_0166
+
+	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_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_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_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_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_01e2:  nop 
+	  IL_01e3:  ldarg.0 
+	  IL_01e4:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	  IL_01e9:  brfalse IL_020e
+
+	  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_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_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_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_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
+
+	  IL_02ac:  ldloc.s 10
+	  IL_02ae:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
+	  IL_02b3:  brfalse IL_0307
+
+	  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_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_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_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_0329:  leave IL_0345
+
+	} // 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_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
+
+	IL_0350:  ldarg.0 
+	IL_0351:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	IL_0356:  brtrue IL_0481
+
+	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_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_039f:  nop 
+	  IL_03a0:  leave IL_0458
+
+	  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_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_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_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
+
+	  } // 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
+
+	  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 394
+    .method family virtual hidebysig newslot 
+           instance default void DoFileOperations ()  cil managed 
+    {
+        // Method begins at RVA 0x9468
+	// 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)
+	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_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
@@ -9643,11 +17692,11 @@
 	IL_03ab:  ret 
     } // end of method CopyTask::DoFileOperations
 
-    // method line 213
+    // method line 395
     .method family virtual hidebysig newslot 
            instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
     {
-        // Method begins at RVA 0x9bbc
+        // Method begins at RVA 0x983c
 	// Code size 36 (0x24)
 	.maxstack 3
 	.locals init (
@@ -9774,11 +17823,11 @@
     .field  private  valuetype [mscorlib]System.DateTime _lastWriteTime
     .field  private  string _path
 
-    // method line 214
+    // method line 396
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.IO.FileSystemInfo file)  cil managed 
     {
-        // Method begins at RVA 0x9bec
+        // Method begins at RVA 0x986c
 	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -9791,11 +17840,11 @@
 	IL_0013:  ret 
     } // end of method FileDateInfo::.ctor
 
-    // method line 215
+    // method line 397
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string path, valuetype [mscorlib]System.DateTime lastWriteTime)  cil managed 
     {
-        // Method begins at RVA 0x9c01
+        // Method begins at RVA 0x9881
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -9810,11 +17859,11 @@
 	IL_0015:  ret 
     } // end of method FileDateInfo::.ctor
 
-    // method line 216
+    // method line 398
     .method public hidebysig specialname 
            instance default string get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x9c18
+        // Method begins at RVA 0x9898
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -9829,11 +17878,11 @@
 	IL_000e:  ret 
     } // end of method FileDateInfo::get_Path
 
-    // method line 217
+    // method line 399
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_LastWriteTime ()  cil managed 
     {
-        // Method begins at RVA 0x9c34
+        // Method begins at RVA 0x98b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -9865,11 +17914,11 @@
     .field  private  class [mscorlib]System.IO.FileSystemInfo _target
     .field  private  class [mscorlib]System.StringComparer _comparer
 
-    // method line 218
+    // method line 400
     .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 0x9c50
+        // Method begins at RVA 0x98d0
 	// Code size 94 (0x5e)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -9912,11 +17961,11 @@
 	IL_005d:  ret 
     } // end of method FileOperation::.ctor
 
-    // method line 219
+    // method line 401
     .method public hidebysig specialname 
            instance default class [mscorlib]System.StringComparer get_Comparer ()  cil managed 
     {
-        // Method begins at RVA 0x9cbc
+        // Method begins at RVA 0x993c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -9931,11 +17980,11 @@
 	IL_000e:  ret 
     } // end of method FileOperation::get_Comparer
 
-    // method line 220
+    // method line 402
     .method public hidebysig specialname 
            instance default void set_Comparer (class [mscorlib]System.StringComparer 'value')  cil managed 
     {
-        // Method begins at RVA 0x9cd7
+        // Method begins at RVA 0x9957
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -9945,11 +17994,11 @@
 	IL_0008:  ret 
     } // end of method FileOperation::set_Comparer
 
-    // method line 221
+    // method line 403
     .method public hidebysig specialname 
            instance default string get_Source ()  cil managed 
     {
-        // Method begins at RVA 0x9ce4
+        // Method begins at RVA 0x9964
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -9965,11 +18014,11 @@
 	IL_0013:  ret 
     } // end of method FileOperation::get_Source
 
-    // method line 222
+    // method line 404
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileSystemInfo get_SourceInfo ()  cil managed 
     {
-        // Method begins at RVA 0x9d04
+        // Method begins at RVA 0x9984
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -9984,11 +18033,11 @@
 	IL_000e:  ret 
     } // end of method FileOperation::get_SourceInfo
 
-    // method line 223
+    // method line 405
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Type get_SourceType ()  cil managed 
     {
-        // Method begins at RVA 0x9d20
+        // Method begins at RVA 0x99a0
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -10004,11 +18053,11 @@
 	IL_0013:  ret 
     } // end of method FileOperation::get_SourceType
 
-    // method line 224
+    // method line 406
     .method public hidebysig specialname 
            instance default valuetype NAnt.Core.Tasks.CopyTask/OperationType get_OperationType ()  cil managed 
     {
-        // Method begins at RVA 0x9d40
+        // Method begins at RVA 0x99c0
 	// Code size 94 (0x5e)
 	.maxstack 2
 	.locals init (
@@ -10056,11 +18105,11 @@
 	IL_005d:  ret 
     } // end of method FileOperation::get_OperationType
 
-    // method line 225
+    // method line 407
     .method public hidebysig specialname 
            instance default bool get_Outdated ()  cil managed 
     {
-        // Method begins at RVA 0x9dac
+        // Method begins at RVA 0x9a2c
 	// Code size 66 (0x42)
 	.maxstack 2
 	.locals init (
@@ -10096,11 +18145,11 @@
 	IL_0041:  ret 
     } // end of method FileOperation::get_Outdated
 
-    // method line 226
+    // method line 408
     .method public hidebysig specialname 
            instance default string get_Target ()  cil managed 
     {
-        // Method begins at RVA 0x9dfc
+        // Method begins at RVA 0x9a7c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -10116,11 +18165,11 @@
 	IL_0013:  ret 
     } // end of method FileOperation::get_Target
 
-    // method line 227
+    // method line 409
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileSystemInfo get_TargetInfo ()  cil managed 
     {
-        // Method begins at RVA 0x9e1c
+        // Method begins at RVA 0x9a9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10135,11 +18184,11 @@
 	IL_000e:  ret 
     } // end of method FileOperation::get_TargetInfo
 
-    // method line 228
+    // method line 410
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Type get_TargetType ()  cil managed 
     {
-        // Method begins at RVA 0x9e38
+        // Method begins at RVA 0x9ab8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -10155,11 +18204,11 @@
 	IL_0013:  ret 
     } // end of method FileOperation::get_TargetType
 
-    // method line 229
+    // method line 411
     .method public hidebysig 
            instance default void NormalizeTargetAttributes ()  cil managed 
     {
-        // Method begins at RVA 0x9e58
+        // Method begins at RVA 0x9ad8
 	// Code size 79 (0x4f)
 	.maxstack 2
 	IL_0000:  nop 
@@ -10190,11 +18239,11 @@
 	IL_004e:  ret 
     } // end of method FileOperation::NormalizeTargetAttributes
 
-    // method line 230
+    // method line 412
     .method public hidebysig 
            instance default bool SourceEqualsTarget ()  cil managed 
     {
-        // Method begins at RVA 0x9eb4
+        // Method begins at RVA 0x9b34
 	// Code size 45 (0x2d)
 	.maxstack 3
 	.locals init (
@@ -10218,11 +18267,11 @@
 	IL_002c:  ret 
     } // end of method FileOperation::SourceEqualsTarget
 
-    // method line 231
+    // method line 413
     .method public hidebysig 
            instance default bool SourceIsIdenticalToTarget ()  cil managed 
     {
-        // Method begins at RVA 0x9ef0
+        // Method begins at RVA 0x9b70
 	// Code size 37 (0x25)
 	.maxstack 3
 	.locals init (
@@ -10243,11 +18292,11 @@
 	IL_0024:  ret 
     } // end of method FileOperation::SourceIsIdenticalToTarget
 
-    // method line 232
+    // method line 414
     .method public hidebysig 
            instance default void UpdateSource (class [mscorlib]System.IO.FileSystemInfo newSource)  cil managed 
     {
-        // Method begins at RVA 0x9f21
+        // Method begins at RVA 0x9ba1
 	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10267,11 +18316,11 @@
 	IL_0025:  ret 
     } // end of method FileOperation::UpdateSource
 
-    // method line 233
+    // method line 415
     .method public virtual hidebysig 
            instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x9f48
+        // Method begins at RVA 0x9bc8
 	// Code size 31 (0x1f)
 	.maxstack 3
 	.locals init (
@@ -10290,11 +18339,11 @@
 	IL_001e:  ret 
     } // end of method FileOperation::ToString
 
-    // method line 234
+    // method line 416
     .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 0x9f74
+        // Method begins at RVA 0x9bf4
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -10319,11 +18368,11 @@
 	IL_0027:  ret 
     } // end of method FileOperation::TargetIsOutdated
 
-    // method line 235
+    // method line 417
     .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 0x9fa8
+        // Method begins at RVA 0x9c28
 	// Code size 46 (0x2e)
 	.maxstack 3
 	.locals init (
@@ -10351,11 +18400,11 @@
 	IL_002d:  ret 
     } // end of method FileOperation::TargetDirectoryDoesNotExist
 
-    // method line 236
+    // method line 418
     .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 0x9fe4
+        // Method begins at RVA 0x9c64
 	// Code size 30 (0x1e)
 	.maxstack 2
 	.locals init (
@@ -10417,11 +18466,11 @@
   {
     .field  private  class [mscorlib]System.StringComparer _stringComparer
 
-    // method line 237
+    // method line 419
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa00e
+        // Method begins at RVA 0x9c8e
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -10434,11 +18483,11 @@
 	IL_0017:  ret 
     } // end of method FileOperationMap::.ctor
 
-    // method line 238
+    // method line 420
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.StringComparer comparer)  cil managed 
     {
-        // Method begins at RVA 0xa027
+        // Method begins at RVA 0x9ca7
 	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -10451,11 +18500,11 @@
 	IL_000f:  ret 
     } // end of method FileOperationMap::.ctor
 
-    // method line 239
+    // method line 421
     .method public hidebysig 
            instance default bool ContainsKey (string key)  cil managed 
     {
-        // Method begins at RVA 0xa038
+        // Method begins at RVA 0x9cb8
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -10481,11 +18530,11 @@
 	IL_0027:  ret 
     } // end of method FileOperationMap::ContainsKey
 
-    // method line 240
+    // method line 422
     .method public hidebysig 
            instance default int32 CountDirectoryOperations ()  cil managed 
     {
-        // Method begins at RVA 0xa06c
+        // Method begins at RVA 0x9cec
 	// Code size 75 (0x4b)
 	.maxstack 2
 	.locals init (
@@ -10533,11 +18582,11 @@
 	IL_004a:  ret 
     } // end of method FileOperationMap::CountDirectoryOperations
 
-    // method line 241
+    // method line 423
     .method public hidebysig 
            instance default int32 CountFileOperations ()  cil managed 
     {
-        // Method begins at RVA 0xa0c4
+        // Method begins at RVA 0x9d44
 	// Code size 75 (0x4b)
 	.maxstack 2
 	.locals init (
@@ -10585,11 +18634,11 @@
 	IL_004a:  ret 
     } // end of method FileOperationMap::CountFileOperations
 
-    // method line 242
+    // method line 424
     .method public hidebysig 
            instance default class [mscorlib]System.Collections.Hashtable ConvertToHashtable ()  cil managed 
     {
-        // Method begins at RVA 0xa11c
+        // Method begins at RVA 0x9d9c
 	// Code size 325 (0x145)
 	.maxstack 4
 	.locals init (
@@ -10736,11 +18785,11 @@
 	IL_0144:  ret 
     } // end of method FileOperationMap::ConvertToHashtable
 
-    // method line 243
+    // method line 425
     .method family virtual hidebysig 
            instance default string GetKeyForItem (class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
     {
-        // Method begins at RVA 0xa270
+        // Method begins at RVA 0x9ef0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10755,11 +18804,11 @@
 	IL_000e:  ret 
     } // end of method FileOperationMap::GetKeyForItem
 
-    // method line 244
+    // method line 426
     .method family virtual hidebysig 
            instance default void InsertItem (int32 index, class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
     {
-        // Method begins at RVA 0xa28b
+        // Method begins at RVA 0x9f0b
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10774,11 +18823,11 @@
 	IL_0015:  ret 
     } // end of method FileOperationMap::InsertItem
 
-    // method line 245
+    // method line 427
     .method family virtual hidebysig 
            instance default void SetItem (int32 index, class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
     {
-        // Method begins at RVA 0xa2a2
+        // Method begins at RVA 0x9f22
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10810,2608 +18859,832 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit XmlPokeTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit ExecTask
+  	extends NAnt.Core.Tasks.ExternalProgramBase
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 78 6D 6C 70 6F 6B 65 00 00 ) // ...xmlpoke..
+    .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.IO.FileInfo _xmlFile
-    .field  private  string _value
-    .field  private  string _xPathExpression
-    .field  private  bool _preserveWhitespace
-    .field  private  class NAnt.Core.Types.XmlNamespaceCollection _namespaces
+    .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 246
+    // method line 428
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa2b9
+        // Method begins at RVA 0xe008
 	// 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_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.Task::'.ctor'()
+	IL_000c:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
 	IL_0011:  ret 
-    } // end of method XmlPokeTask::.ctor
+    } // end of method ExecTask::.ctor
 
-    // method line 247
+    // method line 429
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
+           instance default string get_FileName ()  cil managed 
     {
-        // Method begins at RVA 0xa2cc
+        // Method begins at RVA 0xe01c
 	// 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.XmlPokeTask::_xmlFile
+	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 XmlPokeTask::get_XmlFile
+    } // end of method ExecTask::get_FileName
 
-    // method line 248
+    // method line 430
     .method public hidebysig specialname 
-           instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_FileName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa2e7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xe037
+	// Code size 14 (0xe)
 	.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
+	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 249
+    // method line 431
     .method public hidebysig specialname 
-           instance default string get_XPath ()  cil managed 
+           instance default string get_CommandLineArguments ()  cil managed 
     {
-        // Method begins at RVA 0xa2f4
+        // Method begins at RVA 0xe048
 	// 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.XmlPokeTask::_xPathExpression
+	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 XmlPokeTask::get_XPath
+    } // end of method ExecTask::get_CommandLineArguments
 
-    // method line 250
+    // method line 432
     .method public hidebysig specialname 
-           instance default void set_XPath (string 'value')  cil managed 
+           instance default void set_CommandLineArguments (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa30f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xe063
+	// Code size 14 (0xe)
 	.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_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 251
+    // method line 433
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentSet get_EnvironmentSet ()  cil managed 
     {
-        // Method begins at RVA 0xa31c
+        // Method begins at RVA 0xe074
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.EnvironmentSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPokeTask::_value
+	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 XmlPokeTask::get_Value
+    } // end of method ExecTask::get_EnvironmentSet
 
-    // method line 252
+    // method line 434
     .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_WorkingDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0xe090
+	// Code size 39 (0x27)
+	.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.ExecTask::_workingDirectory
+	IL_0007:  brtrue IL_0019
+
+	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_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_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method ExecTask::get_WorkingDirectory
+
+    // method line 435
+    .method public hidebysig specialname 
+           instance default void set_WorkingDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xa337
+        // Method begins at RVA 0xe0c3
 	// 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_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
 	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_Value
+    } // end of method ExecTask::set_WorkingDirectory
 
-    // method line 253
+    // method line 436
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
+           instance default string get_ResultProperty ()  cil managed 
     {
-        // Method begins at RVA 0xa344
+        // Method begins at RVA 0xe0d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespaceCollection	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
+	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 XmlPokeTask::get_Namespaces
+    } // end of method ExecTask::get_ResultProperty
 
-    // method line 254
+    // method line 437
     .method public hidebysig specialname 
-           instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
+           instance default void set_ResultProperty (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa35f
+        // Method begins at RVA 0xe0eb
 	// 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_0003:  stfld string NAnt.Core.Tasks.ExecTask::_resultProperty
 	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_Namespaces
+    } // end of method ExecTask::set_ResultProperty
 
-    // method line 255
-    .method public hidebysig specialname 
-           instance default bool get_PreserveWhitespace ()  cil managed 
+    // method line 438
+    .method public virtual hidebysig specialname 
+           instance default bool get_UseRuntimeEngine ()  cil managed 
     {
-        // Method begins at RVA 0xa36c
+        // Method begins at RVA 0xe0f8
 	// 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.XmlPokeTask::_preserveWhitespace
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlPokeTask::get_PreserveWhitespace
+    } // end of method ExecTask::get_UseRuntimeEngine
 
-    // method line 256
-    .method public hidebysig specialname 
-           instance default void set_PreserveWhitespace (bool 'value')  cil managed 
+    // method line 439
+    .method public virtual hidebysig specialname 
+           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa387
+        // Method begins at RVA 0xe113
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.XmlPokeTask::_preserveWhitespace
+	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine(bool)
 	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_PreserveWhitespace
-
-    // method line 257
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xa394
-	// 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_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 258
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName, bool preserveWhitespace)  cil managed 
-    {
-        // Method begins at RVA 0xa514
-	// 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
-
-    // method line 259
-    .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 0xa5ac
-	// 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
-
-	} // 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
-
-	IL_0057:  ldloc.0 
-	IL_0058:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_005d:  brtrue IL_0084
-
-	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 260
-    .method private hidebysig 
-           instance default void UpdateNodes (class [System.Xml]System.Xml.XmlNodeList nodes, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa680
-	// 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 line 261
-    .method private hidebysig 
-           instance default void SaveDocument (class [System.Xml]System.Xml.XmlDocument document, string fileName)  cil managed 
-    {
-        // Method begins at RVA 0xa740
-	// 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 .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.
-
-		.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.
-
-		.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.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.
-
-		.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.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..
-
-		.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.
-
-		.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 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
-}
-
-.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 262
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xa7c4
-	// 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
+    } // end of method ExecTask::set_UseRuntimeEngine
 
-    // method line 263
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.ElementContainer get_TryBlock ()  cil managed 
+    // method line 440
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
     {
-        // Method begins at RVA 0xa7cc
+        // Method begins at RVA 0xe120
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.ElementContainer	V_0)
+		valuetype NAnt.Core.Types.ManagedExecution	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_tryBlock
+	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_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TryCatchTask::get_TryBlock
+    } // end of method ExecTask::get_Managed
 
-    // method line 264
-    .method public hidebysig specialname 
-           instance default void set_TryBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
+    // method line 441
+    .method public virtual hidebysig specialname 
+           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
     {
-        // Method begins at RVA 0xa7e7
+        // Method begins at RVA 0xe13b
 	// 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:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_Managed(valuetype NAnt.Core.Types.ManagedExecution)
 	IL_0008:  ret 
-    } // end of method TryCatchTask::set_TryBlock
+    } // end of method ExecTask::set_Managed
 
-    // method line 265
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Tasks.TryCatchTask/CatchElement get_CatchBlock ()  cil managed 
+    // method line 442
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0xa7f4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xe148
+	// Code size 127 (0x7f)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Tasks.TryCatchTask/CatchElement	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::_catchBlock
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TryCatchTask::get_CatchBlock
+	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 266
-    .method public hidebysig specialname 
-           instance default void set_CatchBlock (class NAnt.Core.Tasks.TryCatchTask/CatchElement 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa80f
-	// Code size 9 (0x9)
-	.maxstack 8
-	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_001e:  ldarg.0 
+	IL_001f:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_0024:  brtrue IL_005b
 
-    // method line 267
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.ElementContainer get_FinallyBlock ()  cil managed 
-    {
-        // Method begins at RVA 0xa81c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.ElementContainer	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_finallyBlock
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TryCatchTask::get_FinallyBlock
+	IL_0047:  nop 
+	IL_0048:  ldloc.1 
+	IL_0049:  stloc.0 
+	IL_004a:  br IL_007d
 
-    // method line 268
-    .method public hidebysig specialname 
-           instance default void set_FinallyBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa837
-	// 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
+	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
 
-    // method line 269
+	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 443
     .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0xa844
-	// Code size 101 (0x65)
-	.maxstack 2
+        // Method begins at RVA 0xe1d4
+	// Code size 80 (0x50)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.BuildException	V_0)
+		class [mscorlib]System.Exception	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
-
-	  } // 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.
-
-		.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_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
 
-		.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_0018:  nop 
+	  IL_0019:  nop 
+	  IL_001a:  nop 
+	  IL_001b:  leave IL_004f
 
-    // method line 270
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xab67
-	// 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
+	} // 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 271
-    .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+    // method line 444
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0xab70
+        // Method begins at RVA 0xe240
 	// 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_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 CatchElement::get_Property
-
-    // method line 272
-    .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xab8b
-	// 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.TryCatchTask/CatchElement::_property
-	IL_000d:  ret 
-    } // end of method CatchElement::set_Property
-
-    // method line 273
-    .method public hidebysig 
-           instance default void Catch (class NAnt.Core.BuildException be)  cil managed 
-    {
-        // Method begins at RVA 0xab9c
-	// 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 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 274
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xac70
-	// 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
+    } // end of method ExecTask::get_ProgramArguments
 
-    // method line 275
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_ExeName ()  cil managed 
+    // method line 445
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0xaca8
-	// Code size 37 (0x25)
+        // Method begins at RVA 0xe25c
+	// Code size 39 (0x27)
 	.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.ExternalProgramBase::_exeName
-	IL_0007:  brfalse IL_0017
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_0007:  brtrue IL_0019
 
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
-	IL_0012:  br IL_001d
+	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_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_0023
+	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_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method ExternalProgramBase::get_ExeName
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method ExecTask::get_BaseDirectory
 
-    // method line 276
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ExeName (string 'value')  cil managed 
+    // method line 446
+    .method public virtual hidebysig specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xacd9
+        // Method begins at RVA 0xe28f
 	// 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_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
 	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_ExeName
+    } // end of method ExecTask::set_BaseDirectory
 
-    // method line 277
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_ProgramFileName ()  cil managed 
+    // method line 447
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0xace4
+        // Method begins at RVA 0xe29c
 	// 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:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::DetermineFilePath()
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::_output
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_ProgramFileName
-
-    // method line 278
-    .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 279
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
-    {
-        // Method begins at RVA 0xad00
-	// 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
+    } // end of method ExecTask::get_Output
 
-    // method line 280
-    .method public virtual hidebysig newslot specialname 
+    // method line 448
+    .method public virtual hidebysig specialname 
            instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xad16
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ExternalProgramBase::set_Output
-
-    // method line 281
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_OutputAppend ()  cil managed 
-    {
-        // Method begins at RVA 0xad1c
-	// 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 282
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputAppend (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xad32
-	// Code size 2 (0x2)
+        // Method begins at RVA 0xe2b7
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ExternalProgramBase::set_OutputAppend
-
-    // method line 283
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0xad38
-	// 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 284
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xad5d
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ExternalProgramBase::set_BaseDirectory
+	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 285
-    .method public hidebysig specialname 
-           instance default int32 get_TimeOut ()  cil managed 
+    // method line 449
+    .method public virtual hidebysig specialname 
+           instance default bool get_OutputAppend ()  cil managed 
     {
-        // Method begins at RVA 0xad60
+        // Method begins at RVA 0xe2c4
 	// 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.ExternalProgramBase::_timeout
+	IL_0002:  ldfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_TimeOut
+    } // end of method ExecTask::get_OutputAppend
 
-    // method line 286
-    .method public hidebysig specialname 
-           instance default void set_TimeOut (int32 'value')  cil managed 
+    // method line 450
+    .method public virtual hidebysig specialname 
+           instance default void set_OutputAppend (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xad7b
+        // Method begins at RVA 0xe2df
 	// 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_0003:  stfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
 	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_TimeOut
-
-    // method line 287
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
-    {
-        // Method begins at RVA 0xad88
-	// 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
+    } // end of method ExecTask::set_OutputAppend
 
-    // method line 288
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_UseRuntimeEngine ()  cil managed 
+    // method line 451
+    .method public virtual hidebysig specialname 
+           instance default bool get_Spawn ()  cil managed 
     {
-        // Method begins at RVA 0xada4
+        // Method begins at RVA 0xe2ec
 	// 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_0002:  call instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_UseRuntimeEngine
-
-    // method line 289
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xadbf
-	// 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 290
-    .method public virtual hidebysig newslot specialname 
-           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
-    {
-        // Method begins at RVA 0xadcc
-	// 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 291
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
-    {
-        // Method begins at RVA 0xae05
-	// 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 292
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
-    {
-        // Method begins at RVA 0xae1c
-	// 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 293
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0xae5a
-	// 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 294
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_ErrorWriter ()  cil managed 
-    {
-        // Method begins at RVA 0xae64
-	// 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
+    } // end of method ExecTask::get_Spawn
 
-    // method line 295
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ErrorWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    // method line 452
+    .method public virtual hidebysig specialname 
+           instance default void set_Spawn (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xaea2
+        // Method begins at RVA 0xe307
 	// 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_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_Spawn(bool)
 	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_ErrorWriter
+    } // end of method ExecTask::set_Spawn
 
-    // method line 296
+    // method line 453
     .method public hidebysig specialname 
-           instance default int32 get_ExitCode ()  cil managed 
-    {
-        // Method begins at RVA 0xaeac
-	// 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 297
-    .method family hidebysig specialname 
-           instance default int32 get_ProcessId ()  cil managed 
-    {
-        // Method begins at RVA 0xaec8
-	// 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 298
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Spawn ()  cil managed 
+           instance default string get_ProcessIdProperty ()  cil managed 
     {
-        // Method begins at RVA 0xaf14
+        // Method begins at RVA 0xe314
 	// 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.ExternalProgramBase::_spawn
+	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 ExternalProgramBase::get_Spawn
+    } // end of method ExecTask::get_ProcessIdProperty
 
-    // method line 299
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Spawn (bool 'value')  cil managed 
+    // method line 454
+    .method public hidebysig specialname 
+           instance default void set_ProcessIdProperty (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xaf2f
+        // Method begins at RVA 0xe32f
 	// 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_0003:  stfld string NAnt.Core.Tasks.ExecTask::_processIdProperty
 	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_Spawn
+    } // end of method ExecTask::set_ProcessIdProperty
 
-    // method line 300
+    // method line 455
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xaf3c
-	// Code size 489 (0x1e9)
+        // Method begins at RVA 0xe33c
+	// Code size 117 (0x75)
 	.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)
+		int32	V_0,
+		int32	V_1)
 	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_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_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
+	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 301
-    .method public hidebysig specialname 
-           instance default string get_CommandLine ()  cil managed 
-    {
-        // Method begins at RVA 0xb198
-	// 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_0043:  ldarg.0 
+	IL_0044:  call instance string class NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty()
+	IL_0049:  brfalse IL_0074
 
-	IL_0025:  ldloc.1 
-	IL_0026:  ret 
-    } // end of method ExternalProgramBase::get_CommandLine
+	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 302
-    .method family virtual hidebysig newslot 
+    // method line 456
+    .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0xb1cc
-	// Code size 451 (0x1c3)
-	.maxstack 4
+        // Method begins at RVA 0xe3c0
+	// Code size 371 (0x173)
+	.maxstack 3
 	.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)
+		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:  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 303
-    .method family virtual hidebysig newslot 
-           instance default class [System]System.Diagnostics.Process StartProcess ()  cil managed 
-    {
-        // Method begins at RVA 0xb3ac
-	// 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)
+	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_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
+	  IL_0030:  br IL_00a1
 
-	} // 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
+	  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
 
-    // method line 304
-    .method private hidebysig 
-           instance default void StreamReaderThread_Output ()  cil managed 
-    {
-        // Method begins at RVA 0xb464
-	// 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_0048:  ldloc.0 
+	  IL_0049:  callvirt instance bool class NAnt.Core.Types.Option::get_UnlessDefined()
+	  IL_004e:  brtrue IL_00a0
 
-	IL_001e:  nop 
-	IL_001f:  br IL_0091
+	  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_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_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_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_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_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
+	  IL_00ac:  leave IL_00c5
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0080:  ldloc.s 4
-	  IL_0082:  brfalse.s IL_008a
+	  IL_00b1:  ldloc.1 
+	  IL_00b2:  isinst [mscorlib]System.IDisposable
+	  IL_00b7:  dup 
+	  IL_00b8:  stloc.2 
+	  IL_00b9:  brfalse IL_00c4
 
-	  IL_0084:  ldloc.3 
-	  IL_0085:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_008a:  endfinally 
+	  IL_00be:  ldloc.2 
+	  IL_00bf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c4:  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
+	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_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 305
-    .method private hidebysig 
-           instance default void StreamReaderThread_Error ()  cil managed 
-    {
-        // Method begins at RVA 0xb550
-	// 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_00d8:  br IL_014a
 
-	IL_001e:  nop 
-	IL_001f:  br IL_008a
+	  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_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_00f1:  ldloc.3 
+	  IL_00f2:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
+	  IL_00f7:  brtrue IL_0149
 
-	  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
+	  IL_00fc:  nop 
+	  IL_00fd:  ldloc.3 
+	  IL_00fe:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
+	  IL_0103:  brtrue IL_012a
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0079:  ldloc.s 4
-	  IL_007b:  brfalse.s IL_0083
+	  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_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_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_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
+	  IL_0156:  leave IL_0172
 
 	} // end .try 1
 	finally  { // 1
-	  IL_00af:  ldloc.s 7
-	  IL_00b1:  brfalse.s IL_00ba
+	  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_00b3:  ldloc.s 6
-	  IL_00b5:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_00ba:  endfinally 
+	  IL_016a:  ldloc.s 5
+	  IL_016c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0171:  endfinally 
 	} // end handler 1
-	IL_00bb:  ret 
-    } // end of method ExternalProgramBase::StreamReaderThread_Error
-
-    // method line 306
-    .method private hidebysig 
-           instance default string DetermineFilePath ()  cil managed 
-    {
-        // Method begins at RVA 0xb634
-	// 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 307
-    .method private hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_ManagedExecutionMode ()  cil managed 
-    {
-        // Method begins at RVA 0xb848
-	// 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 308
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xb8b0
-	// 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
+	IL_0172:  ret 
+    } // end of method ExecTask::PrepareProcess
 
-	.property instance string ExeName ()
+	.property instance string FileName ()
 	{
-		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 07 65 78 65 6E 61 6D 65 00 00 ) // ...exename..
+		.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 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') 
+		.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 bool OutputAppend ()
+	.property instance string CommandLineArguments ()
 	{
-		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_OutputAppend (bool '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 class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
+	.property instance class NAnt.Core.Types.EnvironmentSet EnvironmentSet ()
 	{
-		.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') 
+		.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 int32 TimeOut ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo WorkingDirectory ()
 	{
-		.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 ) // ....
+		.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 int32 NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_TimeOut (int32 'value') 
+		.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 NAnt.Core.Types.ArgumentCollection Arguments ()
+	.property instance string ResultProperty ()
 	{
-		.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 0E 72 65 73 75 6C 74 70 72 6F 70 65 72 74   // ...resultpropert
+		79 00 00                                        ) // y..
 
-		.get instance default class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::get_Arguments () 
+		.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 bool UseRuntimeEngine ()
 	{
-		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		.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..
 
@@ -13421,48 +19694,65 @@
 		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') 
+		.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.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 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') 
+		.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 class [mscorlib]System.IO.TextWriter OutputWriter ()
+	.property instance string ProgramFileName ()
 	{
-		.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') 
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramFileName () 
 	}
-	.property instance class [mscorlib]System.IO.TextWriter ErrorWriter ()
+	.property instance string ProgramArguments ()
 	{
-		.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') 
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramArguments () 
 	}
-	.property instance int32 ExitCode ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
 	{
-		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode () 
+		.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') 
 	}
-	.property instance int32 ProcessId ()
+	.property instance class [mscorlib]System.IO.FileInfo Output ()
 	{
-		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_ProcessId () 
+		.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 Spawn ()
+	.property instance bool OutputAppend ()
 	{
-		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_Spawn () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Spawn (bool 'value') 
+		.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 string CommandLine ()
+	.property instance bool Spawn ()
 	{
-		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine () 
+		.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 class NAnt.Core.Configuration.ManagedExecutionMode ManagedExecutionMode ()
+	.property instance string ProcessIdProperty ()
 	{
-		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Tasks.ExternalProgramBase::get_ManagedExecutionMode () 
+		.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.ExternalProgramBase
+  } // end of class NAnt.Core.Tasks.ExecTask
 }
 
 .namespace NAnt.Core.Tasks
@@ -13482,11 +19772,11 @@
     .field  private  class NAnt.Core.Types.XsltExtensionObjectCollection _xsltExtensions
     .field  private  class NAnt.Core.Types.Proxy _proxy
 
-    // method line 309
+    // method line 457
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb8d0
+        // Method begins at RVA 0xe55c
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -13506,11 +19796,11 @@
 	IL_0032:  ret 
     } // end of method StyleTask::.ctor
 
-    // method line 310
+    // method line 458
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_DestDir ()  cil managed 
     {
-        // Method begins at RVA 0xb904
+        // Method begins at RVA 0xe590
 	// Code size 49 (0x31)
 	.maxstack 1
 	.locals init (
@@ -13537,11 +19827,11 @@
 	IL_0030:  ret 
     } // end of method StyleTask::get_DestDir
 
-    // method line 311
+    // method line 459
     .method public hidebysig specialname 
            instance default void set_DestDir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xb941
+        // Method begins at RVA 0xe5cd
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13551,11 +19841,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_DestDir
 
-    // method line 312
+    // method line 460
     .method public hidebysig specialname 
            instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0xb94c
+        // Method begins at RVA 0xe5d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13570,11 +19860,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_Extension
 
-    // method line 313
+    // method line 461
     .method public hidebysig specialname 
            instance default void set_Extension (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xb967
+        // Method begins at RVA 0xe5f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13584,11 +19874,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_Extension
 
-    // method line 314
+    // method line 462
     .method public hidebysig specialname 
            instance default class [System]System.Uri get_XsltFile ()  cil managed 
     {
-        // Method begins at RVA 0xb974
+        // Method begins at RVA 0xe600
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13603,11 +19893,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_XsltFile
 
-    // method line 315
+    // method line 463
     .method public hidebysig specialname 
            instance default void set_XsltFile (class [System]System.Uri 'value')  cil managed 
     {
-        // Method begins at RVA 0xb98f
+        // Method begins at RVA 0xe61b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13617,11 +19907,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_XsltFile
 
-    // method line 316
+    // method line 464
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
     {
-        // Method begins at RVA 0xb99c
+        // Method begins at RVA 0xe628
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13636,11 +19926,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_SrcFile
 
-    // method line 317
+    // method line 465
     .method public hidebysig specialname 
            instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xb9b7
+        // Method begins at RVA 0xe643
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13650,11 +19940,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_SrcFile
 
-    // method line 318
+    // method line 466
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0xb9c4
+        // Method begins at RVA 0xe650
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13669,11 +19959,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_OutputFile
 
-    // method line 319
+    // method line 467
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xb9df
+        // Method begins at RVA 0xe66b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13683,11 +19973,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_OutputFile
 
-    // method line 320
+    // method line 468
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.FileSet get_InFiles ()  cil managed 
     {
-        // Method begins at RVA 0xb9ec
+        // Method begins at RVA 0xe678
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13702,11 +19992,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_InFiles
 
-    // method line 321
+    // method line 469
     .method public hidebysig specialname 
            instance default void set_InFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xba07
+        // Method begins at RVA 0xe693
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13716,11 +20006,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_InFiles
 
-    // method line 322
+    // method line 470
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.XsltParameterCollection get_Parameters ()  cil managed 
     {
-        // Method begins at RVA 0xba14
+        // Method begins at RVA 0xe6a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13735,11 +20025,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_Parameters
 
-    // method line 323
+    // method line 471
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.XsltExtensionObjectCollection get_ExtensionObjects ()  cil managed 
     {
-        // Method begins at RVA 0xba30
+        // Method begins at RVA 0xe6bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13754,11 +20044,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_ExtensionObjects
 
-    // method line 324
+    // method line 472
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.Proxy get_Proxy ()  cil managed 
     {
-        // Method begins at RVA 0xba4c
+        // Method begins at RVA 0xe6d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13773,11 +20063,11 @@
 	IL_000e:  ret 
     } // end of method StyleTask::get_Proxy
 
-    // method line 325
+    // method line 473
     .method public hidebysig specialname 
            instance default void set_Proxy (class NAnt.Core.Types.Proxy 'value')  cil managed 
     {
-        // Method begins at RVA 0xba67
+        // Method begins at RVA 0xe6f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13787,11 +20077,11 @@
 	IL_0008:  ret 
     } // end of method StyleTask::set_Proxy
 
-    // method line 326
+    // method line 474
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xba74
+        // Method begins at RVA 0xe700
 	// Code size 1638 (0x666)
 	.maxstack 7
 	.locals init (
@@ -14447,11 +20737,11 @@
 	IL_0665:  ret 
     } // end of method StyleTask::ExecuteTask
 
-    // method line 327
+    // method line 475
     .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 0xc194
+        // Method begins at RVA 0xee20
 	// Code size 175 (0xaf)
 	.maxstack 3
 	.locals init (
@@ -14532,11 +20822,11 @@
 	IL_00ae:  ret 
     } // end of method StyleTask::CreateXmlReader
 
-    // method line 328
+    // method line 476
     .method family virtual hidebysig newslot 
            instance default class [mscorlib]System.IO.TextWriter CreateWriter (string filepath)  cil managed 
     {
-        // Method begins at RVA 0xc250
+        // Method begins at RVA 0xeedc
 	// Code size 58 (0x3a)
 	.maxstack 1
 	.locals init (
@@ -14650,16675 +20940,14131 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit MoveTask
-  	extends NAnt.Core.Tasks.CopyTask
+  .class public auto ansi beforefieldinit MkDirTask
+  	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 6F 76 65 00 00 ) // ...move..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 6D 6B 64 69 72 00 00 ) // ...mkdir..
 
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
 
-    // method line 329
+    // method line 477
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc296
+        // Method begins at RVA 0xef22
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Tasks.CopyTask::'.ctor'()
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
 	IL_0006:  ret 
-    } // end of method MoveTask::.ctor
+    } // end of method MkDirTask::.ctor
 
-    // method line 330
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    // method line 478
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
     {
-        // Method begins at RVA 0xc2a0
+        // Method begins at RVA 0xef2c
 	// 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:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MoveTask::get_SourceFile
+    } // end of method MkDirTask::get_Dir
 
-    // method line 331
-    .method public virtual hidebysig specialname 
-           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 479
+    .method public hidebysig specialname 
+           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xc2bb
+        // Method begins at RVA 0xef47
 	// 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_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
 	IL_0008:  ret 
-    } // end of method MoveTask::set_SourceFile
+    } // end of method MkDirTask::set_Dir
 
-    // method line 332
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    // method line 480
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xc2c8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xef54
+	// Code size 120 (0x78)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class [mscorlib]System.Exception	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
+	.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_ToFile
+	  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
 
-    // method line 333
-    .method public virtual hidebysig specialname 
-           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc2e3
-	// 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
+	} // 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
 
-    // method line 334
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0xc2f0
-	// 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
+	.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.
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_ToDirectory
+		.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
+}
 
-    // method line 335
-    .method public virtual hidebysig specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+.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 481
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc30b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xefe8
+	// Code size 7 (0x7)
 	.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
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method TryCatchTask::.ctor
 
-    // method line 336
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
+    // method line 482
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.ElementContainer get_TryBlock ()  cil managed 
     {
-        // Method begins at RVA 0xc318
+        // Method begins at RVA 0xeff0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.ElementContainer	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_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 MoveTask::get_CopyFileSet
+    } // end of method TryCatchTask::get_TryBlock
 
-    // method line 337
-    .method public virtual hidebysig specialname 
-           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 483
+    .method public hidebysig specialname 
+           instance default void set_TryBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
     {
-        // Method begins at RVA 0xc333
+        // Method begins at RVA 0xf00b
 	// 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_0003:  stfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_tryBlock
 	IL_0008:  ret 
-    } // end of method MoveTask::set_CopyFileSet
+    } // end of method TryCatchTask::set_TryBlock
 
-    // method line 338
-    .method public virtual hidebysig specialname 
-           instance default bool get_Flatten ()  cil managed 
+    // method line 484
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Tasks.TryCatchTask/CatchElement get_CatchBlock ()  cil managed 
     {
-        // Method begins at RVA 0xc340
+        // Method begins at RVA 0xf018
 	// 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:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	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 MoveTask::get_Flatten
+    } // end of method TryCatchTask::get_CatchBlock
 
-    // method line 339
-    .method public virtual hidebysig specialname 
-           instance default void set_Flatten (bool 'value')  cil managed 
+    // method line 485
+    .method public hidebysig specialname 
+           instance default void set_CatchBlock (class NAnt.Core.Tasks.TryCatchTask/CatchElement 'value')  cil managed 
     {
-        // Method begins at RVA 0xc35b
+        // Method begins at RVA 0xf033
 	// 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_0003:  stfld class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::_catchBlock
 	IL_0008:  ret 
-    } // end of method MoveTask::set_Flatten
+    } // end of method TryCatchTask::set_CatchBlock
 
-    // method line 340
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    // method line 486
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.ElementContainer get_FinallyBlock ()  cil managed 
     {
-        // Method begins at RVA 0xc368
+        // Method begins at RVA 0xf040
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain	V_0)
+		class NAnt.Core.ElementContainer	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:  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 MoveTask::get_Filters
+    } // end of method TryCatchTask::get_FinallyBlock
 
-    // method line 341
-    .method public virtual hidebysig specialname 
-           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    // method line 487
+    .method public hidebysig specialname 
+           instance default void set_FinallyBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
     {
-        // Method begins at RVA 0xc383
+        // Method begins at RVA 0xf05b
 	// 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_0003:  stfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_finallyBlock
 	IL_0008:  ret 
-    } // end of method MoveTask::set_Filters
+    } // end of method TryCatchTask::set_FinallyBlock
 
-    // method line 342
+    // method line 488
     .method family virtual hidebysig 
-           instance default void DoFileOperations ()  cil managed 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xc390
-	// Code size 689 (0x2b1)
-	.maxstack 8
+        // Method begins at RVA 0xf068
+	// Code size 101 (0x65)
+	.maxstack 2
 	.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)
+		class NAnt.Core.BuildException	V_0)
 	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
+	.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_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_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_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
+	  } // 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_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_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_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_0040:  nop 
+	    IL_0041:  rethrow 
+	    IL_0043:  nop 
+	    IL_0044:  leave IL_0064
 
-	  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
+	  } // 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_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
+	  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
 
-	} // 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
+	.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_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
+		.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_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
+		.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_0256:  ldstr "s"
-	IL_025b:  br IL_0265
+		.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_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
+    // method line 489
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xf0f8
+	// 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_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
+    // method line 490
+    .method public hidebysig specialname 
+           instance default string get_Property ()  cil managed 
+    {
+        // Method begins at RVA 0xf100
+	// 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_029a:  ldstr "directories"
-	IL_029f:  br IL_02a9
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CatchElement::get_Property
 
-	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 491
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xf11b
+	// 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.TryCatchTask/CatchElement::_property
+	IL_000d:  ret 
+    } // end of method CatchElement::set_Property
 
-    // method line 343
-    .method family virtual hidebysig 
-           instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
+    // method line 492
+    .method public hidebysig 
+           instance default void Catch (class NAnt.Core.BuildException be)  cil managed 
     {
-        // Method begins at RVA 0xc66c
-	// Code size 36 (0x24)
+        // Method begins at RVA 0xf12c
+	// Code size 182 (0xb6)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.BuildException	V_0)
+		bool	V_0,
+		string	V_1)
 	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_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_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method MoveTask::CreateSourceFileNotFoundException
+	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
 
-	.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..
+	} // 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.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..
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.0 
+	  IL_0077:  brtrue IL_0099
 
-		.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..
+	  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.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_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 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 string Property ()
 	{
-		.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.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.BooleanValidatorAttribute::'.ctor'() =  (01 00 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 bool NAnt.Core.Tasks.MoveTask::get_Flatten () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_Flatten (bool 'value') 
+		.get instance default string NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property () 
+		.set instance default void NAnt.Core.Tasks.TryCatchTask/CatchElement::set_Property (string '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..
+  } // end of class CatchElement
 
-		.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
+  } // end of class NAnt.Core.Tasks.TryCatchTask
 }
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit SleepTask
+  .class public auto ansi beforefieldinit TouchTask
   	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..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 74 6F 75 63 68 00 00 ) // ...touch..
 
-    .field  private  int32 _hours
-    .field  private  int32 _minutes
-    .field  private  int32 _seconds
-    .field  private  int32 _milliseconds
+    .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 344
+    // method line 493
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc69c
-	// Code size 35 (0x23)
+        // Method begins at RVA 0xf200
+	// Code size 18 (0x12)
 	.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
+	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 345
+    // method line 494
     .method public hidebysig specialname 
-           instance default int32 get_Hours ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0xc6c0
+        // Method begins at RVA 0xf214
 	// 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.Tasks.SleepTask::_hours
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SleepTask::get_Hours
+    } // end of method TouchTask::get_File
 
-    // method line 346
+    // method line 495
     .method public hidebysig specialname 
-           instance default void set_Hours (int32 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xc6db
+        // Method begins at RVA 0xf22f
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::_file
 	IL_0008:  ret 
-    } // end of method SleepTask::set_Hours
+    } // end of method TouchTask::set_File
 
-    // method line 347
+    // method line 496
     .method public hidebysig specialname 
-           instance default int32 get_Minutes ()  cil managed 
+           instance default int64 get_Millis ()  cil managed 
     {
-        // Method begins at RVA 0xc6e8
+        // Method begins at RVA 0xf23c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		int64	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_minutes
+	IL_0002:  ldfld int64 NAnt.Core.Tasks.TouchTask::_millis
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SleepTask::get_Minutes
+    } // end of method TouchTask::get_Millis
 
-    // method line 348
+    // method line 497
     .method public hidebysig specialname 
-           instance default void set_Minutes (int32 'value')  cil managed 
+           instance default void set_Millis (int64 'value')  cil managed 
     {
-        // Method begins at RVA 0xc703
+        // Method begins at RVA 0xf257
 	// 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_0003:  stfld int64 NAnt.Core.Tasks.TouchTask::_millis
 	IL_0008:  ret 
-    } // end of method SleepTask::set_Minutes
+    } // end of method TouchTask::set_Millis
 
-    // method line 349
+    // method line 498
     .method public hidebysig specialname 
-           instance default int32 get_Seconds ()  cil managed 
+           instance default valuetype [mscorlib]System.DateTime get_Datetime ()  cil managed 
     {
-        // Method begins at RVA 0xc710
+        // Method begins at RVA 0xf264
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_seconds
+	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::_datetime
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SleepTask::get_Seconds
+    } // end of method TouchTask::get_Datetime
 
-    // method line 350
+    // method line 499
     .method public hidebysig specialname 
-           instance default void set_Seconds (int32 'value')  cil managed 
+           instance default void set_Datetime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0xc72b
+        // Method begins at RVA 0xf27f
 	// 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_0003:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::_datetime
 	IL_0008:  ret 
-    } // end of method SleepTask::set_Seconds
+    } // end of method TouchTask::set_Datetime
 
-    // method line 351
+    // method line 500
     .method public hidebysig specialname 
-           instance default int32 get_Milliseconds ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_TouchFileSet ()  cil managed 
     {
-        // Method begins at RVA 0xc738
+        // Method begins at RVA 0xf28c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
+	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 SleepTask::get_Milliseconds
+    } // end of method TouchTask::get_TouchFileSet
 
-    // method line 352
+    // method line 501
     .method public hidebysig specialname 
-           instance default void set_Milliseconds (int32 'value')  cil managed 
+           instance default void set_TouchFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xc753
+        // Method begins at RVA 0xf2a7
 	// 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_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
 	IL_0008:  ret 
-    } // end of method SleepTask::set_Milliseconds
+    } // end of method TouchTask::set_TouchFileSet
 
-    // method line 353
+    // method line 502
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0xc75d
-	// Code size 32 (0x20)
-	.maxstack 8
+        // Method begins at RVA 0xf2b4
+	// Code size 104 (0x68)
+	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::GetSleepTime()
+	IL_0002:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
 	IL_0007:  ldc.i4.0 
-	IL_0008:  bge IL_001f
+	IL_0008:  conv.i8 
+	IL_0009:  beq IL_0035
 
-	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
+	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
 
-    // method line 354
+	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
+
+	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_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 503
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xc780
-	// Code size 47 (0x2f)
-	.maxstack 7
+        // Method begins at RVA 0xf328
+	// Code size 230 (0xe6)
+	.maxstack 3
 	.locals init (
-		int32	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:  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
+	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
 
-    // method line 355
+	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_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_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_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_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_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_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
+
+	  IL_00cb:  leave IL_00e4
+
+	} // 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
+
+	  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 504
     .method private hidebysig 
-           instance default int32 GetSleepTime ()  cil managed 
+           instance default void TouchFile (string path, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
     {
-        // Method begins at RVA 0xc7bc
-	// Code size 48 (0x30)
-	.maxstack 2
+        // Method begins at RVA 0xf42c
+	// Code size 229 (0xe5)
+	.maxstack 8
 	.locals init (
-		int32	V_0)
+		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:  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
+	.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_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method SleepTask::GetSleepTime
+	  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
 
-    // method line 356
+	  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
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0075:  ldloc.0 
+	    IL_0076:  brfalse IL_0081
+
+	    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
+
+	} // 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_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
+
+	} // end handler 1
+	IL_00e4:  ret 
+    } // end of method TouchTask::TouchFile
+
+    // method line 505
     .method private hidebysig 
-           instance default void DoSleep (int32 millis)  cil managed 
+           instance default valuetype [mscorlib]System.DateTime GetDateTime (int64 milliSeconds)  cil managed 
     {
-        // Method begins at RVA 0xc7f8
-	// Code size 8 (0x8)
-	.maxstack 8
+        // Method begins at RVA 0xf53c
+	// Code size 39 (0x27)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	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
+	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
 
-	.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..
+	IL_0025:  ldloc.1 
+	IL_0026:  ret 
+    } // end of method TouchTask::GetDateTime
 
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+	.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 int32 NAnt.Core.Tasks.SleepTask::get_Hours () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Hours (int32 'value') 
+		.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 int32 Minutes ()
+	.property instance int64 Millis ()
 	{
-		.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 ) // ............
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6D 69 6C 6C 69 73 00 00 ) // ...millis..
 
-		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Minutes () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Minutes (int32 'value') 
+		.get instance default int64 NAnt.Core.Tasks.TouchTask::get_Millis () 
+		.set instance default void NAnt.Core.Tasks.TouchTask::set_Millis (int64 'value') 
 	}
-	.property instance int32 Seconds ()
+	.property instance valuetype [mscorlib]System.DateTime Datetime ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 64 61 74 65 74 69 6D 65 00 00 ) // ...datetime..
 
-		.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.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Seconds () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Seconds (int32 'value') 
+		.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 int32 Milliseconds ()
+	.property instance class NAnt.Core.Types.FileSet TouchFileSet ()
 	{
-		.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.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-		.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 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.SleepTask
+  } // end of class NAnt.Core.Tasks.TouchTask
 }
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit AvailableTask
+  .class public auto ansi beforefieldinit MailTask
   	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....
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6C 00 00 ) // ...mail..
 
-    .field  private  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType _resourceType
-    .field  private  string _resource
-    .field  private  string _propertyName
+    .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 357
+    // method line 506
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc801
-	// Code size 7 (0x7)
-	.maxstack 8
+        // Method begins at RVA 0xf570
+	// Code size 106 (0x6a)
+	.maxstack 2
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method AvailableTask::.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 358
+    // method line 507
     .method public hidebysig specialname 
-           instance default string get_Resource ()  cil managed 
+           instance default string get_From ()  cil managed 
     {
-        // Method begins at RVA 0xc80c
+        // Method begins at RVA 0xf5e8
 	// 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::_resource
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_from
 	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 MailTask::get_From
 
-    // method line 359
+    // method line 508
     .method public hidebysig specialname 
-           instance default void set_Resource (string 'value')  cil managed 
+           instance default void set_From (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc827
+        // Method begins at RVA 0xf603
 	// 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::_resource
+	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_from
 	IL_000d:  ret 
-    } // end of method AvailableTask::set_Resource
+    } // end of method MailTask::set_From
 
-    // method line 360
+    // method line 509
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.AvailableTask/ResourceType get_Type ()  cil managed 
+           instance default string get_ToList ()  cil managed 
     {
-        // Method begins at RVA 0xc838
+        // Method begins at RVA 0xf614
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Tasks.AvailableTask/ResourceType	V_0)
+		string	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 string NAnt.Core.Tasks.MailTask::_toList
 	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 MailTask::get_ToList
 
-    // method line 361
+    // method line 510
     .method public hidebysig specialname 
-           instance default void set_Type (valuetype NAnt.Core.Tasks.AvailableTask/ResourceType 'value')  cil managed 
+           instance default void set_ToList (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc854
-	// Code size 65 (0x41)
-	.maxstack 3
+        // Method begins at RVA 0xf62f
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	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
-
-	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
+	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
 
-    // method line 362
+    // method line 511
     .method public hidebysig specialname 
-           instance default string get_PropertyName ()  cil managed 
+           instance default string get_ReplyTo ()  cil managed 
     {
-        // Method begins at RVA 0xc8a4
+        // Method begins at RVA 0xf63c
 	// 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_0002:  ldfld string NAnt.Core.Tasks.MailTask::_replyTo
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AvailableTask::get_PropertyName
+    } // end of method MailTask::get_ReplyTo
 
-    // method line 363
+    // method line 512
     .method public hidebysig specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
+           instance default void set_ReplyTo (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc8bf
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf657
+	// 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::_propertyName
-	IL_000d:  ret 
-    } // end of method AvailableTask::set_PropertyName
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_replyTo
+	IL_0008:  ret 
+    } // end of method MailTask::set_ReplyTo
 
-    // method line 364
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 513
+    .method public hidebysig specialname 
+           instance default string get_CcList ()  cil managed 
     {
-        // Method begins at RVA 0xc8d0
-	// Code size 43 (0x2b)
-	.maxstack 4
+        // Method begins at RVA 0xf664
+	// 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 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 365
-    .method family virtual hidebysig newslot 
-           instance default bool Evaluate ()  cil managed 
-    {
-        // Method begins at RVA 0xc908
-	// 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 366
-    .method private hidebysig 
-           instance default bool CheckFile ()  cil managed 
-    {
-        // Method begins at RVA 0xc9cc
-	// 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 367
-    .method private hidebysig 
-           instance default bool CheckDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0xca38
-	// 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 368
-    .method private hidebysig 
-           instance default bool CheckFramework ()  cil managed 
-    {
-        // Method begins at RVA 0xcaa4
-	// 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 369
-    .method private hidebysig 
-           instance default bool CheckFrameworkSDK ()  cil managed 
-    {
-        // Method begins at RVA 0xcad0
-	// 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 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 370
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xcb17
-	// 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 371
-    .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
-    {
-        // Method begins at RVA 0xcb2c
-	// 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.MailTask::_ccList
 	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 MailTask::get_CcList
 
-    // method line 372
+    // method line 514
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_CcList (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcb47
+        // Method begins at RVA 0xf67f
 	// 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.MailTask::_ccList
 	IL_0008:  ret 
-    } // end of method TStampTask::set_Property
+    } // end of method MailTask::set_CcList
 
-    // method line 373
+    // method line 515
     .method public hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
+           instance default string get_BccList ()  cil managed 
     {
-        // Method begins at RVA 0xcb54
+        // Method begins at RVA 0xf68c
 	// 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.MailTask::_bccList
 	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 MailTask::get_BccList
 
-    // method line 374
+    // method line 516
     .method public hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+           instance default void set_BccList (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcb6f
+        // Method begins at RVA 0xf6a7
 	// 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.MailTask::_bccList
 	IL_0008:  ret 
-    } // end of method TStampTask::set_Pattern
+    } // end of method MailTask::set_BccList
 
-    // method line 375
+    // method line 517
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FormatterCollection get_Formatters ()  cil managed 
+           instance default string get_Mailhost ()  cil managed 
     {
-        // Method begins at RVA 0xcb7c
+        // Method begins at RVA 0xf6b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FormatterCollection	V_0)
+		string	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 string NAnt.Core.Tasks.MailTask::_mailHost
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TStampTask::get_Formatters
-
-    // method line 376
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xcb98
-	// 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_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
-	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_01be:  ret 
-    } // end of method TStampTask::ExecuteTask
-
-	.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.
-
-		.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 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 00                         ) // equired.
-
-		.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 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 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..
-
-    .field  private  string _pattern
-    .field  private  string _input
-    .field  private  valuetype [System]System.Text.RegularExpressions.RegexOptions _options
+    } // end of method MailTask::get_Mailhost
 
-    // method line 377
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 518
+    .method public hidebysig specialname 
+           instance default void set_Mailhost (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcd74
+        // Method begins at RVA 0xf6cf
 	// Code size 14 (0xe)
 	.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_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 RegexTask::.ctor
+    } // end of method MailTask::set_Mailhost
 
-    // method line 378
+    // method line 519
     .method public hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
+           instance default int32 get_Port ()  cil managed 
     {
-        // Method begins at RVA 0xcd84
+        // Method begins at RVA 0xf6e0
 	// 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.RegexTask::_pattern
+	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 RegexTask::get_Pattern
+    } // end of method MailTask::get_Port
 
-    // method line 379
+    // method line 520
     .method public hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+           instance default void set_Port (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0xcd9f
+        // Method begins at RVA 0xf6fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.RegexTask::_pattern
+	IL_0003:  stfld int32 NAnt.Core.Tasks.MailTask::_portNumber
 	IL_0008:  ret 
-    } // end of method RegexTask::set_Pattern
+    } // end of method MailTask::set_Port
 
-    // method line 380
+    // method line 521
     .method public hidebysig specialname 
-           instance default valuetype [System]System.Text.RegularExpressions.RegexOptions get_Options ()  cil managed 
+           instance default bool get_EnableSsl ()  cil managed 
     {
-        // Method begins at RVA 0xcdac
+        // Method begins at RVA 0xf708
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [System]System.Text.RegularExpressions.RegexOptions	V_0)
+		bool	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:  ldfld bool NAnt.Core.Tasks.MailTask::_enableSsl
 	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 MailTask::get_EnableSsl
 
-    // method line 381
+    // method line 522
     .method public hidebysig specialname 
-           instance default void set_Options (valuetype [System]System.Text.RegularExpressions.RegexOptions 'value')  cil managed 
+           instance default void set_EnableSsl (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xcdc7
+        // Method begins at RVA 0xf723
 	// Code size 9 (0x9)
 	.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_0003:  stfld bool NAnt.Core.Tasks.MailTask::_enableSsl
 	IL_0008:  ret 
-    } // end of method RegexTask::set_Options
+    } // end of method MailTask::set_EnableSsl
 
-    // method line 382
+    // method line 523
     .method public hidebysig specialname 
-           instance default string get_Input ()  cil managed 
+           instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0xcdd4
+        // Method begins at RVA 0xf730
 	// 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.RegexTask::_input
+	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 RegexTask::get_Input
+    } // end of method MailTask::get_Message
 
-    // method line 383
+    // method line 524
     .method public hidebysig specialname 
-           instance default void set_Input (string 'value')  cil managed 
+           instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcdef
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf74b
+	// Code size 14 (0xe)
 	.maxstack 8
 	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
-
-    // method line 384
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xcdfc
-	// Code size 257 (0x101)
-	.maxstack 8
-	.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)
-	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_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_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
-
-	IL_0100:  ret 
-    } // end of method RegexTask::ExecuteTask
-
-	.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.
-
-		.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 valuetype [System]System.Text.RegularExpressions.RegexOptions Options ()
-	{
-		.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 string Input ()
-	{
-		.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.Tasks.RegexTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .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..
-
-    .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 385
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xcf1c
-	// Code size 18 (0x12)
-	.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_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 386
+    // method line 525
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default string get_Subject ()  cil managed 
     {
-        // Method begins at RVA 0xcf30
+        // Method begins at RVA 0xf75c
 	// 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.AttribTask::_file
+	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 AttribTask::get_File
+    } // end of method MailTask::get_Subject
 
-    // method line 387
+    // method line 526
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Subject (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf4b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf777
+	// Code size 14 (0xe)
 	.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_0008:  ret 
-    } // end of method AttribTask::set_File
+	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 388
+    // method line 527
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_AttribFileSet ()  cil managed 
+           instance default bool get_IsBodyHtml ()  cil managed 
     {
-        // Method begins at RVA 0xcf58
+        // Method begins at RVA 0xf788
 	// 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.AttribTask::_fileset
+	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 AttribTask::get_AttribFileSet
+    } // end of method MailTask::get_IsBodyHtml
 
-    // method line 389
+    // method line 528
     .method public hidebysig specialname 
-           instance default void set_AttribFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_IsBodyHtml (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf73
+        // Method begins at RVA 0xf7a3
 	// 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 bool NAnt.Core.Tasks.MailTask::_isBodyHtml
 	IL_0008:  ret 
-    } // end of method AttribTask::set_AttribFileSet
+    } // end of method MailTask::set_IsBodyHtml
 
-    // method line 390
+    // method line 529
     .method public hidebysig specialname 
-           instance default bool get_ArchiveAttrib ()  cil managed 
+           instance default string get_UserName ()  cil managed 
     {
-        // Method begins at RVA 0xcf80
+        // Method begins at RVA 0xf7b0
 	// 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.AttribTask::_archiveAttrib
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_userName
 	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 MailTask::get_UserName
 
-    // method line 391
+    // method line 530
     .method public hidebysig specialname 
-           instance default void set_ArchiveAttrib (bool 'value')  cil managed 
+           instance default void set_UserName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf9b
+        // Method begins at RVA 0xf7cb
 	// 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 string NAnt.Core.Tasks.MailTask::_userName
 	IL_0008:  ret 
-    } // end of method AttribTask::set_ArchiveAttrib
+    } // end of method MailTask::set_UserName
 
-    // method line 392
+    // method line 531
     .method public hidebysig specialname 
-           instance default bool get_HiddenAttrib ()  cil managed 
+           instance default string get_Password ()  cil managed 
     {
-        // Method begins at RVA 0xcfa8
+        // Method begins at RVA 0xf7d8
 	// 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.AttribTask::_hiddenAttrib
+	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 AttribTask::get_HiddenAttrib
+    } // end of method MailTask::get_Password
 
-    // method line 393
+    // method line 532
     .method public hidebysig specialname 
-           instance default void set_HiddenAttrib (bool 'value')  cil managed 
+           instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcfc3
+        // Method begins at RVA 0xf7f3
 	// 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 string NAnt.Core.Tasks.MailTask::_passWord
 	IL_0008:  ret 
-    } // end of method AttribTask::set_HiddenAttrib
+    } // end of method MailTask::set_Password
 
-    // method line 394
+    // method line 533
     .method public hidebysig specialname 
-           instance default bool get_NormalAttrib ()  cil managed 
+           instance default valuetype NAnt.Core.Tasks.MailTask/MailFormat get_Format ()  cil managed 
     {
-        // Method begins at RVA 0xcfd0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xf800
+	// Code size 29 (0x1d)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.Core.Tasks.MailTask/MailFormat	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
+	IL_0002:  call instance bool class NAnt.Core.Tasks.MailTask::get_IsBodyHtml()
+	IL_0007:  brfalse IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AttribTask::get_NormalAttrib
+	IL_000c:  nop 
+	IL_000d:  ldc.i4.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_001b
 
-    // method line 395
+	IL_0014:  ldc.i4.0 
+	IL_0015:  stloc.0 
+	IL_0016:  br IL_001b
+
+	IL_001b:  ldloc.0 
+	IL_001c:  ret 
+    } // end of method MailTask::get_Format
+
+    // method line 534
     .method public hidebysig specialname 
-           instance default void set_NormalAttrib (bool 'value')  cil managed 
+           instance default void set_Format (valuetype NAnt.Core.Tasks.MailTask/MailFormat 'value')  cil managed 
     {
-        // Method begins at RVA 0xcfeb
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xf82c
+	// Code size 105 (0x69)
+	.maxstack 3
 	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
+	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 396
+	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 535
     .method public hidebysig specialname 
-           instance default bool get_ReadOnlyAttrib ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_Files ()  cil managed 
     {
-        // Method begins at RVA 0xcff8
+        // Method begins at RVA 0xf8a4
 	// 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.Tasks.AttribTask::_readOnlyAttrib
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_ReadOnlyAttrib
+    } // end of method MailTask::get_Files
 
-    // method line 397
+    // method line 536
     .method public hidebysig specialname 
-           instance default void set_ReadOnlyAttrib (bool 'value')  cil managed 
+           instance default void set_Files (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xd013
+        // Method begins at RVA 0xf8bf
 	// 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_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
 	IL_0008:  ret 
-    } // end of method AttribTask::set_ReadOnlyAttrib
+    } // end of method MailTask::set_Files
 
-    // method line 398
+    // method line 537
     .method public hidebysig specialname 
-           instance default bool get_SystemAttrib ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_Attachments ()  cil managed 
     {
-        // Method begins at RVA 0xd020
+        // Method begins at RVA 0xf8cc
 	// 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.Tasks.AttribTask::_systemAttrib
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_SystemAttrib
+    } // end of method MailTask::get_Attachments
 
-    // method line 399
+    // method line 538
     .method public hidebysig specialname 
-           instance default void set_SystemAttrib (bool 'value')  cil managed 
+           instance default void set_Attachments (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xd03b
+        // Method begins at RVA 0xf8e7
 	// 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_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
 	IL_0008:  ret 
-    } // end of method AttribTask::set_SystemAttrib
+    } // end of method MailTask::set_Attachments
 
-    // method line 400
+    // method line 539
     .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0xd048
-	// 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 0xf8f4
+	// Code size 68 (0x44)
+	.maxstack 2
 	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 string class NAnt.Core.Tasks.MailTask::get_ToList()
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  brfalse 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_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_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_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_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 
+	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 540
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xf944
+	// 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)
+	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_00ca:  br IL_00e0
+	  IL_0037:  br IL_0054
 
-	  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_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_00eb:  leave IL_0104
+	  IL_0060:  leave IL_0074
 
 	} // 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_0065:  ldloc.s 5
+	  IL_0067:  brfalse IL_0073
 
-	  IL_00fd:  ldloc.3 
-	  IL_00fe:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0103:  endfinally 
+	  IL_006c:  ldloc.s 5
+	  IL_006e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0073:  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
-
-	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
+	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_017a:  br IL_0194
+	  IL_007d:  br IL_009a
 
-	  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_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_01a0:  leave IL_01bc
+	  IL_00a6:  leave IL_00ba
 
 	} // 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_00ab:  ldloc.s 7
+	  IL_00ad:  brfalse IL_00b9
 
-	  IL_01b4:  ldloc.s 7
-	  IL_01b6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01bb:  endfinally 
+	  IL_00b2:  ldloc.s 7
+	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b9:  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_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_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_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_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
+	  IL_00ec:  leave IL_0100
 
-    // method line 401
-    .method private hidebysig 
-           instance default valuetype [mscorlib]System.IO.FileAttributes GetFileAttributes ()  cil managed 
-    {
-        // Method begins at RVA 0xd26c
-	// 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
+	} // end .try 2
+	finally  { // 2
+	  IL_00f1:  ldloc.s 9
+	  IL_00f3:  brfalse IL_00ff
 
-	IL_000e:  nop 
-	IL_000f:  ldc.i4 128
-	IL_0014:  stloc.0 
-	IL_0015:  nop 
-	IL_0016:  br IL_0062
+	  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_001b:  nop 
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
-	IL_0022:  brfalse IL_002e
+	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_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_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_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_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_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_0160:  leave IL_0174
 
-	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
+	} // end .try 3
+	finally  { // 3
+	  IL_0165:  ldloc.s 12
+	  IL_0167:  brfalse IL_0173
 
-	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
+	  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_008b:  ldloc.1 
-	IL_008c:  ret 
-    } // end of method AttribTask::GetFileAttributes
+	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
 
-    // method line 402
+	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 541
     .method private hidebysig 
-           instance default void SetFileAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
+           instance default string ReadFile (string filename)  cil managed 
     {
-        // Method begins at RVA 0xd308
-	// Code size 114 (0x72)
-	.maxstack 5
+        // Method begins at RVA 0x1002c
+	// Code size 49 (0x31)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Exception	V_0,
-		string	V_1)
+		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_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_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
 
 	} // 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_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
+	finally  { // 0
+	  IL_0022:  ldloc.0 
+	  IL_0023:  brfalse IL_002e
 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_002e:  endfinally 
 	} // end handler 0
-	IL_0071:  ret 
-    } // end of method AttribTask::SetFileAttributes
+	IL_002f:  ldloc.2 
+	IL_0030:  ret 
+    } // end of method MailTask::ReadFile
 
-    // method line 403
+    // method line 542
     .method private hidebysig 
-           instance default valuetype [mscorlib]System.IO.FileAttributes GetDirectoryAttributes ()  cil managed 
+           instance default class [System]System.Net.Mail.MailAddressCollection ParseAddresses (string addresses)  cil managed 
     {
-        // Method begins at RVA 0xd398
-	// Code size 95 (0x5f)
-	.maxstack 2
+        // Method begins at RVA 0x1007c
+	// Code size 147 (0x93)
+	.maxstack 5
 	.locals init (
-		valuetype [mscorlib]System.IO.FileAttributes	V_0,
-		valuetype [mscorlib]System.IO.FileAttributes	V_1)
+		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:  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_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_000f:  nop 
-	IL_0010:  ldarg.0 
-	IL_0011:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
-	IL_0016:  brfalse IL_0022
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  ldstr ";"
+	IL_0019:  callvirt instance bool string::Contains(string)
+	IL_001e:  brfalse IL_0078
 
-	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_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_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_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_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_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_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_0072:  nop 
+	IL_0073:  br IL_0087
 
-	IL_005d:  ldloc.1 
-	IL_005e:  ret 
-    } // end of method AttribTask::GetDirectoryAttributes
+	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
 
-    // method line 404
+	IL_0090:  ldloc.s 5
+	IL_0092:  ret 
+    } // end of method MailTask::ParseAddresses
+
+    // method line 543
     .method private hidebysig 
-           instance default void SetDirectoryAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
+           instance default class [System]System.Net.Mail.MailAddress ConvertStringToMailAddress (string address)  cil managed 
     {
-        // Method begins at RVA 0xd404
-	// Code size 139 (0x8b)
-	.maxstack 5
+        // Method begins at RVA 0x1011c
+	// Code size 298 (0x12a)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Exception	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:  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_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0008:  brfalse IL_0027
+	  IL_00b7:  nop 
+	  IL_00b8:  ldloc.1 
+	  IL_00b9:  call bool string::IsNullOrEmpty(string)
+	  IL_00be:  brtrue IL_00de
 
-	  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_00c3:  ldloc.2 
+	  IL_00c4:  call bool string::IsNullOrEmpty(string)
+	  IL_00c9:  brtrue IL_00de
 
-	  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_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
 
-	} // 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_00de:  ldloc.2 
+	  IL_00df:  call bool string::IsNullOrEmpty(string)
+	  IL_00e4:  brtrue IL_00f8
 
-	  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_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
-	IL_008a:  ret 
-    } // end of method AttribTask::SetDirectoryAttributes
+	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
 
-	.property instance class [mscorlib]System.IO.FileInfo File ()
+    // method line 544
+    .method private hidebysig 
+           instance default string UnescapeXmlCodes (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10270
+	// 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
+
+	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 69 6C 65 00 00 ) // ...file..
+		.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.
 
-		.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') 
+		.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.Types.FileSet AttribFileSet ()
+	.property instance string ToList ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 6C 69 73 74 00 00 ) // ...tolist..
 
-		.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') 
+		.get instance default string NAnt.Core.Tasks.MailTask::get_ToList () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_ToList (string 'value') 
 	}
-	.property instance bool ArchiveAttrib ()
+	.property instance string ReplyTo ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 61 72 63 68 69 76 65 00 00 ) // ...archive..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 72 65 70 6C 79 74 6F 00 00 ) // ...replyto..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.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 bool NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_ArchiveAttrib (bool 'value') 
+		.get instance default string NAnt.Core.Tasks.MailTask::get_CcList () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_CcList (string 'value') 
 	}
-	.property instance bool HiddenAttrib ()
+	.property instance string BccList ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 68 69 64 64 65 6E 00 00 ) // ...hidden..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 63 63 6C 69 73 74 00 00 ) // ...bcclist..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.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 bool NAnt.Core.Tasks.AttribTask::get_HiddenAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_HiddenAttrib (bool 'value') 
+		.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 NormalAttrib ()
+	.property instance int32 Port ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6E 6F 72 6D 61 6C 00 00 ) // ...normal..
+		.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.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.AttribTask::get_NormalAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_NormalAttrib (bool 'value') 
+		.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 ReadOnlyAttrib ()
+	.property instance bool EnableSsl ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 72 65 61 64 6F 6E 6C 79 00 00 ) // ...readonly..
+		.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.AttribTask::get_ReadOnlyAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_ReadOnlyAttrib (bool 'value') 
+		.get instance default bool NAnt.Core.Tasks.MailTask::get_EnableSsl () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_EnableSsl (bool 'value') 
 	}
-	.property instance bool SystemAttrib ()
+	.property instance string Message ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 73 79 73 74 65 6D 00 00 ) // ...system..
+		.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.AttribTask::get_SystemAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_SystemAttrib (bool 'value') 
+		.get instance default bool NAnt.Core.Tasks.MailTask::get_IsBodyHtml () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_IsBodyHtml (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.AttribTask
+	.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
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit FailTask
-  	extends NAnt.Core.Task
+  .class public auto ansi sealed beforefieldinit StringValidatorAttribute
+  	extends NAnt.Core.Attributes.ValidatorAttribute
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 66 61 69 6C 00 00 ) // ...fail..
+    .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 _message
-    .field  private  string _contents
+    .field  private  bool _allowEmpty
+    .field  private  string _expression
+    .field  private  string _expressionErrorMessage
 
-    // method line 405
+    // method line 545
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd4ac
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x102d9
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method FailTask::.ctor
+	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
 
-    // method line 406
+    // method line 546
     .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
+           instance default bool get_AllowEmpty ()  cil managed 
     {
-        // Method begins at RVA 0xd4b4
+        // Method begins at RVA 0x102ec
 	// 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.FailTask::_message
+	IL_0002:  ldfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FailTask::get_Message
+    } // end of method StringValidatorAttribute::get_AllowEmpty
 
-    // method line 407
+    // method line 547
     .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
+           instance default void set_AllowEmpty (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xd4d0
-	// Code size 72 (0x48)
-	.maxstack 2
+        // Method begins at RVA 0x10307
+	// Code size 9 (0x9)
+	.maxstack 8
 	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
+	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 408
+    // method line 548
     .method public hidebysig specialname 
-           instance default string get_Contents ()  cil managed 
+           instance default string get_Expression ()  cil managed 
     {
-        // Method begins at RVA 0xd524
+        // Method begins at RVA 0x10314
 	// 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_0002:  ldfld string NAnt.Core.Attributes.StringValidatorAttribute::_expression
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FailTask::get_Contents
+    } // end of method StringValidatorAttribute::get_Expression
 
-    // method line 409
+    // method line 549
     .method public hidebysig specialname 
-           instance default void set_Contents (string 'value')  cil managed 
+           instance default void set_Expression (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd540
-	// Code size 72 (0x48)
-	.maxstack 2
+        // Method begins at RVA 0x1032f
+	// Code size 9 (0x9)
+	.maxstack 8
 	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
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Attributes.StringValidatorAttribute::_expression
+	IL_0008:  ret 
+    } // end of method StringValidatorAttribute::set_Expression
 
-    // method line 410
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 550
+    .method public hidebysig specialname 
+           instance default string get_ExpressionErrorMessage ()  cil managed 
     {
-        // Method begins at RVA 0xd594
-	// Code size 82 (0x52)
-	.maxstack 2
+        // Method begins at RVA 0x1033c
+	// 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.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_0002:  ldfld string NAnt.Core.Attributes.StringValidatorAttribute::_expressionErrorMessage
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringValidatorAttribute::get_ExpressionErrorMessage
 
-    // method line 411
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 551
+    .method public hidebysig specialname 
+           instance default void set_ExpressionErrorMessage (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd5f2
-	// Code size 36 (0x24)
+        // Method begins at RVA 0x10357
+	// Code size 9 (0x9)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Attributes.StringValidatorAttribute::_expressionErrorMessage
+	IL_0008:  ret 
+    } // end of method StringValidatorAttribute::set_ExpressionErrorMessage
 
-	.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..
+    // method line 552
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10364
+	// 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
 
-		.get instance default string NAnt.Core.Tasks.FailTask::get_Message () 
-		.set instance default void NAnt.Core.Tasks.FailTask::set_Message (string 'value') 
+	} // 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 Contents ()
+	.property instance string Expression ()
 	{
-		.get instance default string NAnt.Core.Tasks.FailTask::get_Contents () 
-		.set instance default void NAnt.Core.Tasks.FailTask::set_Contents (string 'value') 
+		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_Expression () 
+		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_Expression (string 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.FailTask
+	.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.Tasks
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit ExecTask
-  	extends NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi abstract beforefieldinit ValidatorAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 65 78 65 63 00 00 ) // ...exec..
+    .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 _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 412
-    .method public hidebysig specialname rtspecialname 
+    // method line 553
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd617
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x102d1
+	// 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 [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ValidatorAttribute::.ctor
 
-    // method line 413
-    .method public hidebysig specialname 
-           instance default string get_FileName ()  cil managed 
+    // method line 554
+    .method public virtual hidebysig newslot abstract 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd62c
-	// 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.ExecTask::_program
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x0
+    } // end of method ValidatorAttribute::Validate
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_FileName
+  } // end of class NAnt.Core.Attributes.ValidatorAttribute
+}
 
-    // method line 414
-    .method public hidebysig specialname 
-           instance default void set_FileName (string 'value')  cil managed 
+.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 555
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd647
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1044c
+	// Code size 8 (0x8)
 	.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::_program
-	IL_000d:  ret 
-    } // end of method ExecTask::set_FileName
+	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 415
-    .method public hidebysig specialname 
-           instance default string get_CommandLineArguments ()  cil managed 
+    // method line 556
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd658
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x10458
+	// Code size 56 (0x38)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Exception	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
+	.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 ExecTask::get_CommandLineArguments
+	} // 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 416
-    .method public hidebysig specialname 
-           instance default void set_CommandLineArguments (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xd673
-	// 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.ExecTask::_commandline
-	IL_000d:  ret 
-    } // end of method ExecTask::set_CommandLineArguments
+  } // end of class NAnt.Core.Attributes.DateTimeValidatorAttribute
+}
 
-    // method line 417
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentSet get_EnvironmentSet ()  cil managed 
-    {
-        // Method begins at RVA 0xd684
-	// 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.Tasks.ExecTask::_environmentSet
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+.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.
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_EnvironmentSet
+    .field  private  string _prefix
+    .field  private  string _category
 
-    // method line 418
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_WorkingDirectory ()  cil managed 
+    // method line 557
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string prefix, string category)  cil managed 
     {
-        // Method begins at RVA 0xd6a0
-	// Code size 39 (0x27)
-	.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.ExecTask::_workingDirectory
-	IL_0007:  brtrue IL_0019
+        // Method begins at RVA 0x104ac
+	// 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_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_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_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_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_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method ExecTask::get_WorkingDirectory
+	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 419
-    .method public hidebysig specialname 
-           instance default void set_WorkingDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xd6d3
-	// 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::_workingDirectory
-	IL_0008:  ret 
-    } // end of method ExecTask::set_WorkingDirectory
+	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 420
+    // method line 558
     .method public hidebysig specialname 
-           instance default string get_ResultProperty ()  cil managed 
+           instance default string get_Category ()  cil managed 
     {
-        // Method begins at RVA 0xd6e0
+        // Method begins at RVA 0x10538
 	// 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.ExecTask::_resultProperty
+	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 ExecTask::get_ResultProperty
+    } // end of method FunctionSetAttribute::get_Category
 
-    // method line 421
+    // method line 559
     .method public hidebysig specialname 
-           instance default void set_ResultProperty (string 'value')  cil managed 
+           instance default void set_Category (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd6fb
+        // Method begins at RVA 0x10553
 	// 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::_resultProperty
+	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
 	IL_0008:  ret 
-    } // end of method ExecTask::set_ResultProperty
+    } // end of method FunctionSetAttribute::set_Category
 
-    // method line 422
-    .method public virtual hidebysig specialname 
-           instance default bool get_UseRuntimeEngine ()  cil managed 
+    // method line 560
+    .method public hidebysig specialname 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0xd708
+        // Method begins at RVA 0x10560
 	// 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.Tasks.ExternalProgramBase::get_UseRuntimeEngine()
+	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 ExecTask::get_UseRuntimeEngine
+    } // end of method FunctionSetAttribute::get_Prefix
 
-    // method line 423
-    .method public virtual hidebysig specialname 
-           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
+    // method line 561
+    .method public hidebysig specialname 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd723
+        // Method begins at RVA 0x1057b
 	// 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_UseRuntimeEngine(bool)
+	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
 	IL_0008:  ret 
-    } // end of method ExecTask::set_UseRuntimeEngine
+    } // end of method FunctionSetAttribute::set_Prefix
 
-    // method line 424
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
+	.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 FunctionAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .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
+
+    // method line 562
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x10588
+	// Code size 67 (0x43)
+	.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 "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
+
+    // method line 563
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xd730
+        // Method begins at RVA 0x105d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Types.ManagedExecution	V_0)
+		string	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:  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 ExecTask::get_Managed
+    } // end of method FunctionAttribute::get_Name
 
-    // method line 425
-    .method public virtual hidebysig specialname 
-           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
+    // method line 564
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd74b
+        // Method begins at RVA 0x105f3
 	// 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_Managed(valuetype NAnt.Core.Types.ManagedExecution)
+	IL_0003:  stfld string NAnt.Core.Attributes.FunctionAttribute::_name
 	IL_0008:  ret 
-    } // end of method ExecTask::set_Managed
-
-    // method line 426
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0xd758
-	// Code size 127 (0x7f)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1)
-	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_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_001e:  ldarg.0 
-	IL_001f:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
-	IL_0024:  brtrue IL_005b
+    } // end of method FunctionAttribute::set_Name
 
-	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
+	.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_0047:  nop 
-	IL_0048:  ldloc.1 
-	IL_0049:  stloc.0 
-	IL_004a:  br IL_007d
+.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)
 
-	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
+  } // end of class NAnt.Core.Attributes.LocationType
+}
 
-	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
+.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_007d:  ldloc.0 
-	IL_007e:  ret 
-    } // end of method ExecTask::get_ProgramFileName
+    .field  private  valuetype NAnt.Core.Attributes.LocationType _locationType
 
-    // method line 427
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 565
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.Core.Attributes.LocationType 'type')  cil managed 
     {
-        // Method begins at RVA 0xd7e4
-	// 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 begins at RVA 0x105fd
+	// 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
 
-    // method line 428
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    // method line 566
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Attributes.LocationType get_LocationType ()  cil managed 
     {
-        // Method begins at RVA 0xd850
+        // Method begins at RVA 0x10610
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.Core.Attributes.LocationType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_commandline
+	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 ExecTask::get_ProgramArguments
+    } // end of method ProgramLocationAttribute::get_LocationType
 
-    // method line 429
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
+    // method line 567
+    .method public hidebysig specialname 
+           instance default void set_LocationType (valuetype NAnt.Core.Attributes.LocationType 'value')  cil managed 
     {
-        // Method begins at RVA 0xd86c
-	// Code size 39 (0x27)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+        // Method begins at RVA 0x1062b
+	// Code size 9 (0x9)
+	.maxstack 8
 	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:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::_locationType
+	IL_0008:  ret 
+    } // end of method ProgramLocationAttribute::set_LocationType
 
-	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
+	.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') 
+	}
+  } // end of class NAnt.Core.Attributes.ProgramLocationAttribute
+}
 
-	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
+.namespace NAnt.Core.Attributes
+{
+  .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.
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method ExecTask::get_BaseDirectory
+    .field  private  class [mscorlib]System.Type _elementType
 
-    // method line 430
-    .method public virtual hidebysig specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 568
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0xd89f
+        // Method begins at RVA 0x10705
 	// 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_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 ExecTask::set_BaseDirectory
+    } // end of method BuildElementArrayAttribute::.ctor
 
-    // method line 431
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
+    // method line 569
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_ElementType ()  cil managed 
     {
-        // Method begins at RVA 0xd8ac
+        // Method begins at RVA 0x10710
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class [mscorlib]System.Type	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 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 ExecTask::get_Output
+    } // end of method BuildElementArrayAttribute::get_ElementType
 
-    // method line 432
-    .method public virtual hidebysig specialname 
-           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 570
+    .method public hidebysig specialname 
+           instance default void set_ElementType (class [mscorlib]System.Type 'value')  cil managed 
     {
-        // Method begins at RVA 0xd8c7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1072b
+	// Code size 33 (0x21)
 	.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_0008:  ret 
-    } // end of method ExecTask::set_Output
+	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
 
-    // method line 433
-    .method public virtual hidebysig specialname 
-           instance default bool get_OutputAppend ()  cil managed 
+	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 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
+
+    // method line 571
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x10635
+	// Code size 22 (0x16)
+	.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
+
+    // method line 572
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xd8d4
+        // Method begins at RVA 0x1064c
 	// 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.Attributes.BuildElementAttribute::_name
 	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 BuildElementAttribute::get_Name
 
-    // method line 434
-    .method public virtual hidebysig specialname 
-           instance default void set_OutputAppend (bool 'value')  cil managed 
+    // method line 573
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd8ef
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x10668
+	// Code size 66 (0x42)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
-	IL_0008:  ret 
-    } // end of method ExecTask::set_OutputAppend
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 435
-    .method public virtual hidebysig specialname 
-           instance default bool get_Spawn ()  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 574
+    .method public hidebysig specialname 
+           instance default bool get_Required ()  cil managed 
     {
-        // Method begins at RVA 0xd8fc
+        // Method begins at RVA 0x106b8
 	// 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.Attributes.BuildElementAttribute::_required
 	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 BuildElementAttribute::get_Required
 
-    // method line 436
-    .method public virtual hidebysig specialname 
-           instance default void set_Spawn (bool 'value')  cil managed 
+    // method line 575
+    .method public hidebysig specialname 
+           instance default void set_Required (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xd917
+        // Method begins at RVA 0x106d3
 	// 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.Attributes.BuildElementAttribute::_required
 	IL_0008:  ret 
-    } // end of method ExecTask::set_Spawn
+    } // end of method BuildElementAttribute::set_Required
 
-    // method line 437
+    // method line 576
     .method public hidebysig specialname 
-           instance default string get_ProcessIdProperty ()  cil managed 
+           instance default bool get_ProcessXml ()  cil managed 
     {
-        // Method begins at RVA 0xd924
+        // Method begins at RVA 0x106e0
 	// 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.Attributes.BuildElementAttribute::_processXml
 	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 BuildElementAttribute::get_ProcessXml
 
-    // method line 438
+    // method line 577
     .method public hidebysig specialname 
-           instance default void set_ProcessIdProperty (string 'value')  cil managed 
+           instance default void set_ProcessXml (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xd93f
+        // Method begins at RVA 0x106fb
 	// 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.Attributes.BuildElementAttribute::_processXml
 	IL_0008:  ret 
-    } // end of method ExecTask::set_ProcessIdProperty
-
-    // method line 439
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xd94c
-	// Code size 117 (0x75)
-	.maxstack 4
-	.locals init (
-		int32	V_0,
-		int32	V_1)
-	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_0043:  ldarg.0 
-	IL_0044:  call instance string class NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty()
-	IL_0049:  brfalse IL_0074
-
-	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 440
-    .method family virtual hidebysig 
-           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
-    {
-        // Method begins at RVA 0xd9d0
-	// Code size 371 (0x173)
-	.maxstack 3
-	.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)
-	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_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_00b1:  ldloc.1 
-	  IL_00b2:  isinst [mscorlib]System.IDisposable
-	  IL_00b7:  dup 
-	  IL_00b8:  stloc.2 
-	  IL_00b9:  brfalse IL_00c4
-
-	  IL_00be:  ldloc.2 
-	  IL_00bf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c4:  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_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 ()
-	{
-		.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 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..
-
-		.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..
-
-		.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..
-
-		.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..
-
-		.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 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..
-
-		.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 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..
-
-		.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 ()
-	{
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramFileName () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramArguments () 
-	}
-	.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.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..
+    } // end of method BuildElementAttribute::set_ProcessXml
 
-		.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 ()
+	.property instance string Name ()
 	{
-		.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') 
+		.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 Spawn ()
+	.property instance bool Required ()
 	{
-		.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') 
+		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_Required () 
+		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_Required (bool 'value') 
 	}
-	.property instance string ProcessIdProperty ()
+	.property instance bool ProcessXml ()
 	{
-		.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') 
+		.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.Tasks.ExecTask
+  } // end of class NAnt.Core.Attributes.BuildElementAttribute
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit DescriptionTask
-  	extends NAnt.Core.Task
+  .class public auto ansi sealed beforefieldinit Int32ValidatorAttribute
+  	extends NAnt.Core.Attributes.ValidatorAttribute
   {
-    .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..
+    .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  int32 _minValue
+    .field  private  int32 _maxValue
+    .field  private  int32 _base
 
-    // method line 441
+    // method line 578
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xdb6c
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1074d
+	// Code size 38 (0x26)
 	.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 442
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xdb74
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DescriptionTask::ExecuteTask
-
-  } // end of class NAnt.Core.Tasks.DescriptionTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit SetEnvTask
-  	extends NAnt.Core.Task
-  {
-    .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
+	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 443
+    // method line 579
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (int32 minValue, int32 maxValue)  cil managed 
     {
-        // Method begins at RVA 0xdb77
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x10774
+	// Code size 52 (0x34)
 	.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_0001:  ldc.i4 -2147483648
+	IL_0006:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
 	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method SetEnvTask::.ctor
+	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 444
+    // method line 580
     .method public hidebysig specialname 
-           instance default string get_EnvName ()  cil managed 
+           instance default int32 get_MinValue ()  cil managed 
     {
-        // Method begins at RVA 0xdb8c
+        // Method begins at RVA 0x107ac
 	// 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.Attributes.Int32ValidatorAttribute::_minValue
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_EnvName
+    } // end of method Int32ValidatorAttribute::get_MinValue
 
-    // method line 445
+    // method line 581
     .method public hidebysig specialname 
-           instance default void set_EnvName (string 'value')  cil managed 
+           instance default void set_MinValue (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0xdba7
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x107c7
+	// 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.SetEnvTask::_name
-	IL_000d:  ret 
-    } // end of method SetEnvTask::set_EnvName
+	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_0008:  ret 
+    } // end of method Int32ValidatorAttribute::set_MinValue
 
-    // method line 446
+    // method line 582
     .method public hidebysig specialname 
-           instance default string get_LiteralValue ()  cil managed 
+           instance default int32 get_MaxValue ()  cil managed 
     {
-        // Method begins at RVA 0xdbb8
+        // Method begins at RVA 0x107d4
 	// 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::_literalValue
+	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_LiteralValue
+    } // end of method Int32ValidatorAttribute::get_MaxValue
 
-    // method line 447
+    // method line 583
     .method public hidebysig specialname 
-           instance default void set_LiteralValue (string 'value')  cil managed 
+           instance default void set_MaxValue (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0xdbd3
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x107ef
+	// Code size 9 (0x9)
 	.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
+	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0008:  ret 
+    } // end of method Int32ValidatorAttribute::set_MaxValue
 
-    // method line 448
+    // method line 584
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default int32 get_Base ()  cil managed 
     {
-        // Method begins at RVA 0xdbe4
+        // Method begins at RVA 0x107fc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		int32	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 int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_File
+    } // end of method Int32ValidatorAttribute::get_Base
 
-    // method line 449
+    // method line 585
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Base (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0xdbff
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x10817
+	// Code size 9 (0x9)
 	.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
+	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_0008:  ret 
+    } // end of method Int32ValidatorAttribute::set_Base
 
-    // method line 450
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    // method line 586
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xdc18
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x10824
+	// Code size 173 (0xad)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		int32	V_0,
+		class [mscorlib]System.Exception	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 SetEnvTask::get_Directory
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  isinst [mscorlib]System.String
+	  IL_0008:  brfalse IL_0026
 
-    // method line 451
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdc33
-	// 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
+	  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
 
-    // method line 452
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
-    {
-        // Method begins at RVA 0xdc4c
+	  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
+
+	} // 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_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_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
+
+	.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
+}
+
+.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.
+
+    .field  private  string _name
+    .field  private  bool _required
+    .field  private  bool _expandProperties
+    .field  private  bool _processXml
+
+    // method line 587
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x108f0
+	// 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
+
+    // method line 588
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x10910
 	// 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.Tasks.SetEnvTask::_path
+	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 SetEnvTask::get_Path
+    } // end of method BuildAttributeAttribute::get_Name
 
-    // method line 453
+    // method line 589
     .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xdc67
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1092c
+	// Code size 66 (0x42)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	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 590
+    .method public hidebysig specialname 
+           instance default bool get_Required ()  cil managed 
+    {
+        // Method begins at RVA 0x1097c
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildAttributeAttribute::get_Required
+
+    // method line 591
+    .method public hidebysig specialname 
+           instance default void set_Required (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10997
+	// Code size 9 (0x9)
 	.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_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_required
+	IL_0008:  ret 
+    } // end of method BuildAttributeAttribute::set_Required
 
-    // method line 454
+    // method line 592
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
+           instance default bool get_ExpandProperties ()  cil managed 
     {
-        // Method begins at RVA 0xdc80
+        // Method begins at RVA 0x109a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
+		bool	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 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 SetEnvTask::get_EnvironmentVariables
+    } // end of method BuildAttributeAttribute::get_ExpandProperties
 
-    // method line 455
+    // method line 593
     .method public hidebysig specialname 
-           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
+           instance default void set_ExpandProperties (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdc9b
+        // Method begins at RVA 0x109bf
 	// 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_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
 	IL_0008:  ret 
-    } // end of method SetEnvTask::set_EnvironmentVariables
+    } // end of method BuildAttributeAttribute::set_ExpandProperties
 
-    // method line 456
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 594
+    .method public hidebysig specialname 
+           instance default bool get_ProcessXml ()  cil managed 
     {
-        // Method begins at RVA 0xdca5
-	// Code size 47 (0x2f)
+        // Method begins at RVA 0x109cc
+	// 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::_processXml
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildAttributeAttribute::get_ProcessXml
+
+    // method line 595
+    .method public hidebysig specialname 
+           instance default void set_ProcessXml (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x109e7
+	// Code size 9 (0x9)
 	.maxstack 8
 	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:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
+	IL_0008:  ret 
+    } // end of method BuildAttributeAttribute::set_ProcessXml
 
-	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
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.Attributes.BuildAttributeAttribute::get_Name () 
+		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_Name (string 'value') 
+	}
+	.property instance bool Required ()
+	{
+		.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 ExpandProperties ()
+	{
+		.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 ProcessXml ()
+	{
+		.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
+}
 
-	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
+.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 457
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    .field  private  string _elementName
+
+    // method line 596
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string collectionName, string childName)  cil managed 
     {
-        // Method begins at RVA 0xdcd8
-	// Code size 149 (0x95)
+        // Method begins at RVA 0x109f4
+	// 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
+
+    // method line 597
+    .method public hidebysig specialname 
+           instance default string get_ChildElementName ()  cil managed 
+    {
+        // Method begins at RVA 0x10a4c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
 	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_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_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_0002:  ldfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_0050:  ldloc.0 
-	  IL_0051:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
-	  IL_0056:  brtrue IL_006f
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildElementCollectionAttribute::get_ChildElementName
 
-	  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
+	.property instance string ChildElementName ()
+	{
+		.get instance default string NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName () 
+	}
+  } // end of class NAnt.Core.Attributes.BuildElementCollectionAttribute
+}
 
-	  IL_007b:  leave IL_0094
+.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.
 
-	} // 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 598
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x10a67
+	// 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 line 458
-    .method private hidebysig 
-           instance default void SetSingleEnvironmentVariable (string name, string 'value')  cil managed 
+    // method line 599
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd8c
-	// Code size 95 (0x5f)
-	.maxstack 7
+        // Method begins at RVA 0x10a70
+	// Code size 56 (0x38)
+	.maxstack 3
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1)
+		class [mscorlib]System.Exception	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_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
+	  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
 
 	} // 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 
+	  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_005e:  ret 
-    } // end of method SetEnvTask::SetSingleEnvironmentVariable
-
-	.property instance string EnvName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6E 61 6D 65 00 00 ) // ...name..
-
-		.get instance default string NAnt.Core.Tasks.SetEnvTask::get_EnvName () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_EnvName (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_0037:  ret 
+    } // end of method BooleanValidatorAttribute::Validate
 
-		.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 [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..
+  } // end of class NAnt.Core.Attributes.BooleanValidatorAttribute
+}
 
-		.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 [mscorlib]System.IO.DirectoryInfo Directory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
+.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.
 
-		.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.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.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.EnvironmentVariableCollection EnvironmentVariables ()
-	{
-		.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
+    // method line 600
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x10ac4
+	// 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
 
-		.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.SetEnvTask
+  } // end of class NAnt.Core.Attributes.TaskAttributeAttribute
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit TouchTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit ElementNameAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .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 [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  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 _name
 
-    // method line 459
+    // method line 601
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0xde08
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x10ace
+	// Code size 15 (0xf)
 	.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:  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
 
-    // method line 460
+    // method line 602
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xde1c
+        // Method begins at RVA 0x10ae0
 	// 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.Attributes.ElementNameAttribute::_name
 	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 ElementNameAttribute::get_Name
 
-    // method line 461
+    // method line 603
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10afc
+	// Code size 66 (0x42)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	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
+
+	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
+
+	.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
+}
+
+.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.
+
+    .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                                        ) // ...
+
+
+    // method line 604
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0xde37
+        // Method begins at RVA 0x10b4a
 	// 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_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 TouchTask::set_File
+    } // end of method FileSetAttribute::.ctor
 
-    // method line 462
+  } // end of class NAnt.Core.Attributes.FileSetAttribute
+}
+
+.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 605
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x10b54
+	// 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
+
+    // method line 606
     .method public hidebysig specialname 
-           instance default int64 get_Millis ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xde44
+        // Method begins at RVA 0x10b6c
 	// 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.Attributes.FrameworkConfigurableAttribute::_name
 	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 FrameworkConfigurableAttribute::get_Name
 
-    // method line 463
+    // method line 607
     .method public hidebysig specialname 
-           instance default void set_Millis (int64 'value')  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xde5f
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x10b88
+	// Code size 66 (0x42)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int64 NAnt.Core.Tasks.TouchTask::_millis
-	IL_0008:  ret 
-    } // end of method TouchTask::set_Millis
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 464
+	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 608
     .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Datetime ()  cil managed 
+           instance default bool get_Required ()  cil managed 
     {
-        // Method begins at RVA 0xde6c
+        // Method begins at RVA 0x10bd8
 	// 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.Attributes.FrameworkConfigurableAttribute::_required
 	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 FrameworkConfigurableAttribute::get_Required
 
-    // method line 465
+    // method line 609
     .method public hidebysig specialname 
-           instance default void set_Datetime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+           instance default void set_Required (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xde87
+        // Method begins at RVA 0x10bf3
 	// 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.Attributes.FrameworkConfigurableAttribute::_required
 	IL_0008:  ret 
-    } // end of method TouchTask::set_Datetime
+    } // end of method FrameworkConfigurableAttribute::set_Required
 
-    // method line 466
+    // method line 610
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_TouchFileSet ()  cil managed 
+           instance default bool get_ExpandProperties ()  cil managed 
     {
-        // Method begins at RVA 0xde94
+        // Method begins at RVA 0x10c00
 	// 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.Attributes.FrameworkConfigurableAttribute::_expandProperties
 	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 FrameworkConfigurableAttribute::get_ExpandProperties
 
-    // method line 467
+    // method line 611
     .method public hidebysig specialname 
-           instance default void set_TouchFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_ExpandProperties (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdeaf
+        // Method begins at RVA 0x10c1b
 	// 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.Attributes.FrameworkConfigurableAttribute::_expandProperties
 	IL_0008:  ret 
-    } // end of method TouchTask::set_TouchFileSet
-
-    // method line 468
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0xdebc
-	// 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
-
-	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_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
-
-	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_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 469
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xdf30
-	// Code size 230 (0xe6)
-	.maxstack 3
-	.locals init (
-		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:  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_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_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_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_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_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_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
-
-	  IL_00cb:  leave IL_00e4
-
-	} // 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
-
-	  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 470
-    .method private hidebysig 
-           instance default void TouchFile (string path, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
-    {
-        // Method begins at RVA 0xe034
-	// Code size 229 (0xe5)
-	.maxstack 8
-	.locals init (
-		class [mscorlib]System.IO.FileStream	V_0,
-		class [mscorlib]System.Exception	V_1,
-		string	V_2)
-	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_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_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
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0075:  ldloc.0 
-	    IL_0076:  brfalse IL_0081
-
-	    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
-
-	} // 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_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
-
-	} // end handler 1
-	IL_00e4:  ret 
-    } // end of method TouchTask::TouchFile
-
-    // method line 471
-    .method private hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetDateTime (int64 milliSeconds)  cil managed 
-    {
-        // Method begins at RVA 0xe144
-	// Code size 39 (0x27)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
-	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_0025:  ldloc.1 
-	IL_0026:  ret 
-    } // end of method TouchTask::GetDateTime
+    } // end of method FrameworkConfigurableAttribute::set_ExpandProperties
 
-	.property instance class [mscorlib]System.IO.FileInfo File ()
+	.property instance string Name ()
 	{
-		.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.TouchTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.TouchTask::set_File (class [mscorlib]System.IO.FileInfo '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 int64 Millis ()
+	.property instance bool Required ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6D 69 6C 6C 69 73 00 00 ) // ...millis..
-
-		.get instance default int64 NAnt.Core.Tasks.TouchTask::get_Millis () 
-		.set instance default void NAnt.Core.Tasks.TouchTask::set_Millis (int64 '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 valuetype [mscorlib]System.DateTime Datetime ()
+	.property instance bool ExpandProperties ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 64 61 74 65 74 69 6D 65 00 00 ) // ...datetime..
+		.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 NAnt.Core.Attributes.FrameworkConfigurableAttribute
+}
 
-		.custom instance void class NAnt.Core.Attributes.DateTimeValidatorAttribute::'.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 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..
 
-		.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
+    // method line 612
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x10c25
+	// 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
+
+  } // end of class NAnt.Core.Attributes.TaskNameAttribute
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit UpToDateTask
-  	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 08 75 70 74 6F 64 61 74 65 00 00 ) // ...uptodate..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 05 74 6F 6B 65 6E 00 00 ) // ...token..
 
-    .field  private  string _propertyName
-    .field  private  class NAnt.Core.Types.FileSet _sourceFiles
-    .field  private  class NAnt.Core.Types.FileSet _targetFiles
+    .field  private  string _key
+    .field  private  string _value
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 472
+    // method line 613
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe177
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x10c2f
+	// 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 UpToDateTask::.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 473
+    // method line 614
     .method public hidebysig specialname 
-           instance default string get_PropertyName ()  cil managed 
+           instance default string get_Key ()  cil managed 
     {
-        // Method begins at RVA 0xe180
+        // Method begins at RVA 0x10c40
 	// 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.UpToDateTask::_propertyName
+	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 UpToDateTask::get_PropertyName
+    } // end of method Token::get_Key
 
-    // method line 474
+    // method line 615
     .method public hidebysig specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
+           instance default void set_Key (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xe19b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x10c5b
+	// 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.UpToDateTask::_propertyName
-	IL_000d:  ret 
-    } // end of method UpToDateTask::set_PropertyName
+	IL_0003:  stfld string NAnt.Core.Types.Token::_key
+	IL_0008:  ret 
+    } // end of method Token::set_Key
 
-    // method line 475
+    // method line 616
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_SourceFiles ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xe1ac
+        // Method begins at RVA 0x10c68
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		string	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 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 UpToDateTask::get_SourceFiles
+    } // end of method Token::get_Value
 
-    // method line 476
+    // method line 617
     .method public hidebysig specialname 
-           instance default void set_SourceFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xe1c7
+        // Method begins at RVA 0x10c83
 	// 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_0003:  stfld string NAnt.Core.Types.Token::_value
 	IL_0008:  ret 
-    } // end of method UpToDateTask::set_SourceFiles
+    } // end of method Token::set_Value
 
-    // method line 477
+    // method line 618
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_TargetFiles ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xe1d4
+        // Method begins at RVA 0x10c90
 	// 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.UpToDateTask::_targetFiles
+	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 UpToDateTask::get_TargetFiles
+    } // end of method Token::get_IfDefined
 
-    // method line 478
+    // method line 619
     .method public hidebysig specialname 
-           instance default void set_TargetFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xe1ef
+        // Method begins at RVA 0x10cab
 	// 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_0003:  stfld bool NAnt.Core.Types.Token::_ifDefined
 	IL_0008:  ret 
-    } // end of method UpToDateTask::set_TargetFiles
+    } // end of method Token::set_IfDefined
 
-    // method line 479
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 620
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xe1fc
-	// Code size 169 (0xa9)
-	.maxstack 7
+        // Method begins at RVA 0x10cb8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1,
-		string	V_2,
-		bool	V_3)
+		bool	V_0)
 	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_0015:  ldloc.1 
-	IL_0016:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_001b:  brtrue IL_0039
-
-	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_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.Token::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Token::get_UnlessDefined
 
-	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
+    // method line 621
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10cd3
+	// 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_0008:  ret 
+    } // end of method Token::set_UnlessDefined
 
-	.property instance string PropertyName ()
+	.property instance string Key ()
 	{
 		.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 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.
 
-		.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 string NAnt.Core.Types.Token::get_Key () 
+		.set instance default void NAnt.Core.Types.Token::set_Key (string 'value') 
 	}
-	.property instance class NAnt.Core.Types.FileSet SourceFiles ()
+	.property instance string Value ()
 	{
-		.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.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 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 string NAnt.Core.Types.Token::get_Value () 
+		.set instance default void NAnt.Core.Types.Token::set_Value (string 'value') 
 	}
-	.property instance class NAnt.Core.Types.FileSet TargetFiles ()
+	.property instance bool IfDefined ()
 	{
-		.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.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.
 
-		.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') 
+		.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') 
 	}
-  } // end of class NAnt.Core.Tasks.UpToDateTask
+	.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.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit DeleteTask
-  	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 06 64 65 6C 65 74 65 00 00 ) // ...delete..
+    .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 _file
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
-    .field  private  class NAnt.Core.Types.FileSet _fileset
-    .field  private  bool _includeEmptyDirs
 
-    // method line 480
+    // method line 622
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe2b1
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x10cdd
+	// Code size 8 (0x8)
 	.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.DeleteTask::_fileset
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.Core.Tasks.DeleteTask::_includeEmptyDirs
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0018:  ret 
-    } // end of method DeleteTask::.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 481
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    // method line 623
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xe2cc
+        // Method begins at RVA 0x10ce6
 	// 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 624
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltParameter[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10cf6
+	// 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 625
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltParameter get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x10d08
+	// 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.DeleteTask::_file
-	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 DeleteTask::get_File
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method XsltParameterCollection::get_Item
 
-    // method line 482
+    // method line 626
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.XsltParameter 'value')  cil managed 
     {
-        // Method begins at RVA 0xe2e7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x10d2e
+	// 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.Core.Tasks.DeleteTask::_file
-	IL_0008:  ret 
-    } // end of method DeleteTask::set_File
+	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 483
+    // method line 627
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+           instance default class NAnt.Core.Types.XsltParameter get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xe2f4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x10d40
+	// Code size 111 (0x6f)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		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 628
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    {
+        // Method begins at RVA 0x10dcc
+	// 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.DeleteTask::_dir
-	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 XsltParameterCollection::Add
+
+    // method line 629
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XsltParameter[] items)  cil managed 
+    {
+        // Method begins at RVA 0x10df0
+	// 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 630
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XsltParameterCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x10e20
+	// 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 631
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    {
+        // Method begins at RVA 0x10e58
+	// 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 632
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10e7c
+	// 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
+
+    // method line 633
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.XsltParameter[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x10e9e
+	// 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 DeleteTask::get_Directory
+    } // end of method XsltParameterCollection::CopyTo
 
-    // method line 484
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 634
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.XsltParameter item)  cil managed 
     {
-        // Method begins at RVA 0xe30f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x10eb0
+	// 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 XsltParameterCollection::IndexOf
+
+    // method line 635
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.XsltParameter item)  cil managed 
+    {
+        // Method begins at RVA 0x10ed1
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.DeleteTask::_dir
-	IL_0008:  ret 
-    } // end of method DeleteTask::set_Directory
+	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 485
-    .method public hidebysig specialname 
-           instance default bool get_IncludeEmptyDirs ()  cil managed 
+    // method line 636
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.XsltParameterEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xe31c
+        // Method begins at RVA 0x10ee4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.XsltParameterEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.DeleteTask::_includeEmptyDirs
+	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 DeleteTask::get_IncludeEmptyDirs
+    } // end of method XsltParameterCollection::GetEnumerator
 
-    // method line 486
-    .method public hidebysig specialname 
-           instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
+    // method line 637
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.XsltParameter item)  cil managed 
     {
-        // Method begins at RVA 0xe337
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x10eff
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.DeleteTask::_includeEmptyDirs
-	IL_0008:  ret 
-    } // end of method DeleteTask::set_IncludeEmptyDirs
+	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 XsltParameterCollection::Remove
 
-    // method line 487
+	.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 638
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x10f10
+	// 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.XsltParameterEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method XsltParameterEnumerator::.ctor
+
+    // method line 639
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_DeleteFileSet ()  cil managed 
+           instance default class NAnt.Core.Types.XsltParameter get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xe344
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x10f34
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.Types.XsltParameter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.DeleteTask::_fileset
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DeleteTask::get_DeleteFileSet
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method XsltParameterEnumerator::get_Current
 
-    // method line 488
-    .method public hidebysig specialname 
-           instance default void set_DeleteFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 640
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xe35f
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x10f5c
+	.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 class NAnt.Core.Types.FileSet NAnt.Core.Tasks.DeleteTask::_fileset
-	IL_0008:  ret 
-    } // end of method DeleteTask::set_DeleteFileSet
+	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
 
-    // method line 489
-    .method public virtual hidebysig specialname 
-           instance default bool get_Verbose ()  cil managed 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 641
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xe36c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x10f7c
+	// 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.Task::get_Verbose()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DeleteTask::get_Verbose
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XsltParameterEnumerator::MoveNext
 
-    // method line 490
-    .method public virtual hidebysig specialname 
-           instance default void set_Verbose (bool 'value')  cil managed 
+    // method line 642
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xe387
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x10f9c
+	.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.XsltParameterEnumerator::_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
+
+    // method line 643
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x10fbc
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Task::set_Verbose(bool)
-	IL_0008:  ret 
-    } // end of method DeleteTask::set_Verbose
+	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 491
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 644
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xe394
-	// Code size 103 (0x67)
-	.maxstack 2
+        // Method begins at RVA 0x10fca
+	.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.DeleteTask::get_File()
-	IL_0007:  brfalse IL_0029
+	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
 
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
-	IL_0012:  brfalse IL_0029
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Types.XsltParameterEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.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
+}
 
-	IL_0017:  nop 
-	IL_0018:  ldstr "Cannot specify both 'file' and 'dir' attribute in the same <delete> task."
-	IL_001d:  ldarg.0 
-	IL_001e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0023:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.DeleteTask::get_File()
-	IL_002f:  brtrue IL_003f
+.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..
 
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
-	IL_003a:  brfalse IL_0066
+    .field  private  class [mscorlib]System.Collections.ArrayList _elements
+    .field  private  class [System]System.Collections.Specialized.StringCollection _translatedElements
+    .field  private static initonly  bool _dosBasedFileSystem
 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	IL_0045:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_004a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_004f:  brfalse IL_0066
+    // method line 645
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x111ea
+	// 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
 
-	IL_0054:  nop 
-	IL_0055:  ldstr "Cannot specify both 'file' or 'dir' attribute and use <fileset> in the same <delete> task."
-	IL_005a:  ldarg.0 
-	IL_005b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0060:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0065:  throw 
-	IL_0066:  ret 
-    } // end of method DeleteTask::Initialize
+    // method line 646
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, string path)  cil managed 
+    {
+        // Method begins at RVA 0x11209
+	// 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 492
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 647
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0xe408
-	// Code size 631 (0x277)
-	.maxstack 7
+        // Method begins at RVA 0x1123c
+	// Code size 115 (0x73)
+	.maxstack 3
 	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2,
-		int32	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		string[]	V_6,
-		class [mscorlib]System.Exception	V_7,
-		string	V_8,
-		class [mscorlib]System.IDisposable	V_9)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		string	V_1,
+		class [mscorlib]System.Text.StringBuilder	V_2,
+		int32	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	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 [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_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	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.DeleteTask::get_File()
-	IL_0034:  brfalse IL_0052
+	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:  ldarg.0 
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.DeleteTask::get_File()
-	IL_0041:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0046:  ldc.i4.1 
-	IL_0047:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteFile(string, bool)
-	IL_004c:  nop 
-	IL_004d:  br IL_0276
+	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_0052:  ldarg.0 
-	IL_0053:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
-	IL_0058:  brfalse IL_00bc
+	IL_0065:  ldloc.2 
+	IL_0066:  callvirt instance string object::ToString()
+	IL_006b:  stloc.1 
+	IL_006c:  br IL_0071
 
-	IL_005d:  nop 
-	IL_005e:  ldarg.0 
-	IL_005f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
-	IL_0064:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0069:  brtrue IL_0074
+	IL_0071:  ldloc.1 
+	IL_0072:  ret 
+    } // end of method PathSet::ToString
 
-	IL_006e:  nop 
-	IL_006f:  br IL_0276
+    // method line 648
+    .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_0074:  ldarg.0 
-	IL_0075:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
-	IL_007a:  brtrue IL_00a5
+        // Method begins at RVA 0x112bb
+	// 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
 
-	IL_007f:  nop 
-	IL_0080:  ldarg.0 
-	IL_0081:  ldc.i4 3000
-	IL_0086:  ldstr "Deleting directory '{0}'."
-	IL_008b:  ldc.i4.1 
-	IL_008c:  newarr [mscorlib]System.Object
-	IL_0091:  dup 
-	IL_0092:  ldc.i4.0 
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
-	IL_0099:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_009e:  stelem.ref 
-	IL_009f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00a4:  nop 
-	IL_00a5:  ldarg.0 
-	IL_00a6:  ldarg.0 
-	IL_00a7:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.DeleteTask::get_Directory()
-	IL_00ac:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00b1:  call instance void class NAnt.Core.Tasks.DeleteTask::RecursiveDeleteDirectory(string)
-	IL_00b6:  nop 
-	IL_00b7:  br IL_0276
+    // method line 649
+    .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_00bc:  nop 
-	IL_00bd:  ldarg.0 
-	IL_00be:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	IL_00c3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00c8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00cd:  ldc.i4.0 
-	IL_00ce:  ble IL_0154
+        // Method begins at RVA 0x112cb
+	// 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
 
-	IL_00d3:  nop 
-	IL_00d4:  ldarg.0 
-	IL_00d5:  ldc.i4 3000
-	IL_00da:  ldstr "Deleting {0} files."
-	IL_00df:  ldc.i4.1 
-	IL_00e0:  newarr [mscorlib]System.Object
-	IL_00e5:  dup 
-	IL_00e6:  ldc.i4.0 
-	IL_00e7:  ldarg.0 
-	IL_00e8:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	IL_00ed:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00f2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00f7:  box [mscorlib]System.Int32
-	IL_00fc:  stelem.ref 
-	IL_00fd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0102:  nop 
-	IL_0103:  ldarg.0 
-	IL_0104:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	IL_0109:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_010e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0113:  stloc.1 
-	.try { // 0
-	  IL_0114:  br IL_012f
+    // method line 650
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetElements ()  cil managed 
+    {
+        // Method begins at RVA 0x112dc
+	// Code size 353 (0x161)
+	.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)
+	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_0119:  ldloc.1 
-	  IL_011a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_011f:  stloc.0 
-	  IL_0120:  nop 
-	  IL_0121:  ldarg.0 
-	  IL_0122:  ldloc.0 
-	  IL_0123:  ldarg.0 
-	  IL_0124:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
-	  IL_0129:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteFile(string, bool)
-	  IL_012e:  nop 
-	  IL_012f:  ldloc.1 
-	  IL_0130:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0135:  brtrue IL_0119
+	  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_013a:  leave IL_0153
+	  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
 
-	} // end .try 0
-	finally  { // 0
-	  IL_013f:  ldloc.1 
-	  IL_0140:  isinst [mscorlib]System.IDisposable
-	  IL_0145:  dup 
-	  IL_0146:  stloc.2 
-	  IL_0147:  brfalse IL_0152
+	    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_014c:  ldloc.2 
-	  IL_014d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0152:  endfinally 
-	} // end handler 0
-	IL_0153:  nop 
-	IL_0154:  ldarg.0 
-	IL_0155:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	IL_015a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_015f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0164:  ldc.i4.0 
-	IL_0165:  ble IL_0275
+	    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_016a:  ldarg.0 
-	IL_016b:  call instance bool class NAnt.Core.Tasks.DeleteTask::get_IncludeEmptyDirs()
-	IL_0170:  brfalse IL_0275
+	    IL_0077:  leave IL_0093
 
-	IL_0175:  nop 
-	IL_0176:  ldc.i4.0 
-	IL_0177:  stloc.3 
-	IL_0178:  nop 
-	IL_0179:  ldarg.0 
-	IL_017a:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet()
-	IL_017f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0184:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0189:  stloc.s 5
-	.try { // 2
-	  IL_018b:  br IL_0224
+	  } // 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_0190:  ldloc.s 5
-	  IL_0192:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0197:  stloc.s 4
-	  IL_0199:  nop 
-	  IL_019a:  ldloc.s 4
-	  IL_019c:  call string[] class [mscorlib]System.IO.Directory::GetFileSystemEntries(string)
-	  IL_01a1:  stloc.s 6
-	  IL_01a3:  ldloc.s 6
-	  IL_01a5:  brfalse IL_01b3
+	    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_01aa:  ldloc.s 6
-	  IL_01ac:  ldlen 
-	  IL_01ad:  conv.i4 
-	  IL_01ae:  brtrue IL_0223
+	  IL_0099:  ldloc.1 
+	  IL_009a:  isinst NAnt.Core.Types.PathElement
+	  IL_009f:  brfalse IL_012f
 
-	  IL_01b3:  nop 
+	  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_00b9:  ldloc.s 6
+	  IL_00bb:  callvirt instance bool class NAnt.Core.Types.PathElement::get_UnlessDefined()
+	  IL_00c0:  brfalse IL_00cb
+
+	  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_01b4:  nop 
-	    IL_01b5:  ldarg.0 
-	    IL_01b6:  ldloc.s 4
-	    IL_01b8:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteDirectory(string)
-	    IL_01bd:  ldloc.3 
-	    IL_01be:  ldc.i4.1 
-	    IL_01bf:  add 
-	    IL_01c0:  stloc.3 
-	    IL_01c1:  nop 
-	    IL_01c2:  leave IL_0222
+	    IL_00de:  br IL_0106
 
-	  } // end .try 1
-	  catch class [mscorlib]System.Exception { // 1
-	    IL_01c7:  stloc.s 7
-	    IL_01c9:  nop 
-	    IL_01ca:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_01cf:  ldstr "NA1113"
-	    IL_01d4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_01d9:  ldloc.s 4
-	    IL_01db:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_01e0:  stloc.s 8
-	    IL_01e2:  ldarg.0 
-	    IL_01e3:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	    IL_01e8:  brfalse IL_01fe
+	    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_01ed:  nop 
-	    IL_01ee:  ldloc.s 8
-	    IL_01f0:  ldarg.0 
-	    IL_01f1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_01f6:  ldloc.s 7
-	    IL_01f8:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_01fd:  throw 
-	    IL_01fe:  ldarg.0 
-	    IL_01ff:  ldc.i4 4000
-	    IL_0204:  ldloc.s 8
-	    IL_0206:  ldstr " "
-	    IL_020b:  ldloc.s 7
-	    IL_020d:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_0212:  call string string::Concat(string, string, string)
-	    IL_0217:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	    IL_021c:  nop 
-	    IL_021d:  leave IL_0222
+	    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_0222:  nop 
-	  IL_0223:  nop 
-	  IL_0224:  ldloc.s 5
-	  IL_0226:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_022b:  brtrue IL_0190
+	  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_0230:  leave IL_024c
+	  IL_013b:  leave IL_0156
 
 	} // end .try 2
 	finally  { // 2
-	  IL_0235:  ldloc.s 5
-	  IL_0237:  isinst [mscorlib]System.IDisposable
-	  IL_023c:  dup 
-	  IL_023d:  stloc.s 9
-	  IL_023f:  brfalse IL_024b
+	  IL_0140:  ldloc.2 
+	  IL_0141:  isinst [mscorlib]System.IDisposable
+	  IL_0146:  dup 
+	  IL_0147:  stloc.s 10
+	  IL_0149:  brfalse IL_0155
 
-	  IL_0244:  ldloc.s 9
-	  IL_0246:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_024b:  endfinally 
+	  IL_014e:  ldloc.s 10
+	  IL_0150:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0155:  endfinally 
 	} // end handler 2
-	IL_024c:  ldloc.3 
-	IL_024d:  ldc.i4.0 
-	IL_024e:  ble IL_0274
+	IL_0156:  ldloc.0 
+	IL_0157:  stloc.s 11
+	IL_0159:  br IL_015e
 
-	IL_0253:  nop 
-	IL_0254:  ldarg.0 
-	IL_0255:  ldc.i4 3000
-	IL_025a:  ldstr "Deleted {0} directories."
-	IL_025f:  ldc.i4.1 
-	IL_0260:  newarr [mscorlib]System.Object
-	IL_0265:  dup 
-	IL_0266:  ldc.i4.0 
-	IL_0267:  ldloc.3 
-	IL_0268:  box [mscorlib]System.Int32
-	IL_026d:  stelem.ref 
-	IL_026e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0273:  nop 
-	IL_0274:  nop 
-	IL_0275:  nop 
-	IL_0276:  ret 
-    } // end of method DeleteTask::ExecuteTask
+	IL_015e:  ldloc.s 11
+	IL_0160:  ret 
+    } // end of method PathSet::GetElements
 
-    // method line 493
-    .method private hidebysig 
-           instance default void RecursiveDeleteDirectory (string path)  cil managed 
+    // method line 651
+    .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 0xe6b4
-	// Code size 363 (0x16b)
+        // Method begins at RVA 0x11498
+	// Code size 388 (0x184)
 	.maxstack 7
 	.locals init (
-		string[]	V_0,
-		string	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_4,
 		string	V_5,
-		string[]	V_6,
-		int32	V_7,
-		class [mscorlib]System.Exception	V_8,
-		string	V_9,
-		class NAnt.Core.BuildException	V_10,
-		class [mscorlib]System.Exception	V_11,
-		string	V_12)
+		string	V_6,
+		string	V_7,
+		string[]	V_8,
+		int32	V_9,
+		string	V_10,
+		class [mscorlib]System.Exception	V_11)
 	IL_0000:  nop 
-	.try { // 1
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0008:  brtrue IL_0013
+	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_000d:  nop 
-	  IL_000e:  leave IL_016a
+	IL_000d:  nop 
+	IL_000e:  ldloc.0 
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0182
 
-	  IL_0013:  ldarg.1 
-	  IL_0014:  call string[] class [mscorlib]System.IO.Directory::GetDirectories(string)
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  stloc.2 
-	  IL_001d:  ldc.i4.0 
-	  IL_001e:  stloc.3 
-	  IL_001f:  br IL_0035
+	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_0024:  ldloc.2 
-	  IL_0025:  ldloc.3 
-	  IL_0026:  ldelem.ref 
-	  IL_0027:  stloc.1 
-	  IL_0028:  nop 
-	  IL_0029:  ldarg.0 
-	  IL_002a:  ldloc.1 
-	  IL_002b:  call instance void class NAnt.Core.Tasks.DeleteTask::RecursiveDeleteDirectory(string)
-	  IL_0030:  nop 
-	  IL_0031:  ldloc.3 
-	  IL_0032:  ldc.i4.1 
-	  IL_0033:  add 
-	  IL_0034:  stloc.3 
-	  IL_0035:  ldloc.3 
-	  IL_0036:  ldloc.2 
-	  IL_0037:  ldlen 
-	  IL_0038:  conv.i4 
-	  IL_0039:  blt IL_0024
+	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_003e:  ldarg.1 
-	  IL_003f:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string)
-	  IL_0044:  stloc.s 4
-	  IL_0046:  nop 
-	  IL_0047:  ldloc.s 4
-	  IL_0049:  stloc.s 6
-	  IL_004b:  ldc.i4.0 
-	  IL_004c:  stloc.s 7
-	  IL_004e:  br IL_00f2
+	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_0053:  ldloc.s 6
-	  IL_0055:  ldloc.s 7
-	  IL_0057:  ldelem.ref 
-	  IL_0058:  stloc.s 5
-	  IL_005a:  nop 
-	  .try { // 0
-	    IL_005b:  nop 
-	    IL_005c:  ldloc.s 5
-	    IL_005e:  ldc.i4 128
-	    IL_0063:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	    IL_0068:  ldarg.0 
-	    IL_0069:  ldc.i4 2000
-	    IL_006e:  ldstr "Deleting file '{0}'."
-	    IL_0073:  ldc.i4.1 
-	    IL_0074:  newarr [mscorlib]System.Object
-	    IL_0079:  dup 
-	    IL_007a:  ldc.i4.0 
-	    IL_007b:  ldloc.s 5
-	    IL_007d:  stelem.ref 
-	    IL_007e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_0083:  ldloc.s 5
-	    IL_0085:  call void class [mscorlib]System.IO.File::Delete(string)
-	    IL_008a:  nop 
-	    IL_008b:  leave IL_00eb
+	IL_0058:  ldsfld bool NAnt.Core.Types.PathSet::_dosBasedFileSystem
+	IL_005d:  brfalse IL_00b3
 
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_0090:  stloc.s 8
-	    IL_0092:  nop 
-	    IL_0093:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0098:  ldstr "NA1114"
-	    IL_009d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_00a2:  ldloc.s 5
-	    IL_00a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_00a9:  stloc.s 9
-	    IL_00ab:  ldarg.0 
-	    IL_00ac:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	    IL_00b1:  brfalse IL_00c7
+	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_00b6:  nop 
-	    IL_00b7:  ldloc.s 9
-	    IL_00b9:  ldarg.0 
-	    IL_00ba:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_00bf:  ldloc.s 8
-	    IL_00c1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_00c6:  throw 
-	    IL_00c7:  ldarg.0 
-	    IL_00c8:  ldc.i4 2000
-	    IL_00cd:  ldloc.s 9
-	    IL_00cf:  ldstr " "
-	    IL_00d4:  ldloc.s 8
-	    IL_00d6:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_00db:  call string string::Concat(string, string, string)
-	    IL_00e0:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	    IL_00e5:  nop 
-	    IL_00e6:  leave IL_00eb
+	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
 
-	  } // end handler 0
-	  IL_00eb:  nop 
-	  IL_00ec:  ldloc.s 7
-	  IL_00ee:  ldc.i4.1 
-	  IL_00ef:  add 
-	  IL_00f0:  stloc.s 7
-	  IL_00f2:  ldloc.s 7
-	  IL_00f4:  ldloc.s 6
-	  IL_00f6:  ldlen 
-	  IL_00f7:  conv.i4 
-	  IL_00f8:  blt IL_0053
+	IL_008b:  ldloc.s 5
+	IL_008d:  ldstr "/"
+	IL_0092:  callvirt instance bool string::StartsWith(string)
+	IL_0097:  brfalse IL_00b2
 
-	  IL_00fd:  ldarg.0 
-	  IL_00fe:  ldarg.1 
-	  IL_00ff:  call instance void class NAnt.Core.Tasks.DeleteTask::DeleteDirectory(string)
-	  IL_0104:  nop 
-	  IL_0105:  leave IL_016a
+	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
 
-	} // end .try 1
-	catch class NAnt.Core.BuildException { // 1
-	  IL_010a:  stloc.s 10
-	  IL_010c:  nop 
-	  IL_010d:  ldloc.s 10
-	  IL_010f:  throw 
-	} // end handler 1
-	catch class [mscorlib]System.Exception { // 2
-	  IL_0110:  stloc.s 11
-	  IL_0112:  nop 
-	  IL_0113:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0118:  ldstr "NA1113"
-	  IL_011d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0122:  ldarg.1 
-	  IL_0123:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0128:  stloc.s 12
-	  IL_012a:  ldarg.0 
-	  IL_012b:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	  IL_0130:  brfalse IL_0146
+	IL_00cd:  ldloc.s 6
+	IL_00cf:  ldstr "%"
+	IL_00d4:  callvirt instance bool string::EndsWith(string)
+	IL_00d9:  brfalse IL_00e4
 
-	  IL_0135:  nop 
-	  IL_0136:  ldloc.s 12
-	  IL_0138:  ldarg.0 
-	  IL_0139:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_013e:  ldloc.s 11
-	  IL_0140:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0145:  throw 
-	  IL_0146:  ldarg.0 
-	  IL_0147:  ldc.i4 4000
-	  IL_014c:  ldloc.s 12
-	  IL_014e:  ldstr " "
-	  IL_0153:  ldloc.s 11
-	  IL_0155:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_015a:  call string string::Concat(string, string, string)
-	  IL_015f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_0164:  nop 
-	  IL_0165:  leave IL_016a
+	IL_00de:  nop 
+	IL_00df:  br IL_016e
 
-	} // end handler 2
-	IL_016a:  ret 
-    } // end of method DeleteTask::RecursiveDeleteDirectory
+	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
 
-    // method line 494
-    .method private hidebysig 
-           instance default void DeleteFile (string path, bool verbose)  cil managed 
-    {
-        // Method begins at RVA 0xe878
-	// Code size 191 (0xbf)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		class [mscorlib]System.Exception	V_1,
-		string	V_2)
-	IL_0000:  nop 
+	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_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0008:  stloc.0 
-	  IL_0009:  ldloc.0 
-	  IL_000a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_000f:  brtrue IL_001a
-
-	  IL_0014:  nop 
-	  IL_0015:  leave IL_00be
-
-	  IL_001a:  ldarg.2 
-	  IL_001b:  brfalse IL_003c
-
-	  IL_0020:  nop 
-	  IL_0021:  ldarg.0 
-	  IL_0022:  ldc.i4 3000
-	  IL_0027:  ldstr "Deleting file {0}."
-	  IL_002c:  ldc.i4.1 
-	  IL_002d:  newarr [mscorlib]System.Object
-	  IL_0032:  dup 
-	  IL_0033:  ldc.i4.0 
-	  IL_0034:  ldarg.1 
-	  IL_0035:  stelem.ref 
-	  IL_0036:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_003b:  nop 
-	  IL_003c:  ldloc.0 
-	  IL_003d:  callvirt instance valuetype [mscorlib]System.IO.FileAttributes class [mscorlib]System.IO.FileSystemInfo::get_Attributes()
-	  IL_0042:  ldc.i4 128
-	  IL_0047:  beq IL_005e
+	  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_004c:  nop 
-	  IL_004d:  ldloc.0 
-	  IL_004e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0053:  ldc.i4 128
-	  IL_0058:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	  IL_005d:  nop 
-	  IL_005e:  ldarg.1 
-	  IL_005f:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_0064:  nop 
-	  IL_0065:  leave IL_00be
+	  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_006a:  stloc.1 
-	  IL_006b:  nop 
-	  IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0071:  ldstr "NA1114"
-	  IL_0076:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_007b:  ldarg.1 
-	  IL_007c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0081:  stloc.2 
-	  IL_0082:  ldarg.0 
-	  IL_0083:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	  IL_0088:  brfalse IL_009c
-
-	  IL_008d:  nop 
-	  IL_008e:  ldloc.2 
-	  IL_008f:  ldarg.0 
-	  IL_0090:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0095:  ldloc.1 
-	  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:  ldc.i4 4000
-	  IL_00a2:  ldloc.2 
-	  IL_00a3:  ldstr " "
-	  IL_00a8:  ldloc.1 
-	  IL_00a9:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_00ae:  call string string::Concat(string, string, string)
-	  IL_00b3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_00b8:  nop 
-	  IL_00b9:  leave IL_00be
+	  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_00be:  ret 
-    } // end of method DeleteTask::DeleteFile
-
-    // method line 495
-    .method private hidebysig 
-           instance default void DeleteDirectory (string path)  cil managed 
-    {
-        // Method begins at RVA 0xe954
-	// Code size 45 (0x2d)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldc.i4 128
-	IL_0007:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	IL_000c:  ldarg.0 
-	IL_000d:  ldc.i4 2000
-	IL_0012:  ldstr "Deleting directory '{0}'."
-	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 void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0026:  ldarg.1 
-	IL_0027:  call void class [mscorlib]System.IO.Directory::Delete(string)
-	IL_002c:  ret 
-    } // end of method DeleteTask::DeleteDirectory
-
-	.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.DeleteTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.DeleteTask::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.Tasks.DeleteTask::get_Directory () 
-		.set instance default void NAnt.Core.Tasks.DeleteTask::set_Directory (class [mscorlib]System.IO.DirectoryInfo '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..
+	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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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
 
-		.get instance default bool NAnt.Core.Tasks.DeleteTask::get_IncludeEmptyDirs () 
-		.set instance default void NAnt.Core.Tasks.DeleteTask::set_IncludeEmptyDirs (bool 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet DeleteFileSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+	IL_017b:  ldloc.0 
+	IL_017c:  stloc.1 
+	IL_017d:  br IL_0182
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.DeleteTask::get_DeleteFileSet () 
-		.set instance default void NAnt.Core.Tasks.DeleteTask::set_DeleteFileSet (class NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance bool Verbose ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 76 65 72 62 6F 73 65 00 00 ) // ...verbose..
+	IL_0182:  ldloc.1 
+	IL_0183:  ret 
+    } // end of method PathSet::TranslatePath
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 652
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x11638
+	// 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
 
-		.get instance default bool NAnt.Core.Tasks.DeleteTask::get_Verbose () 
-		.set instance default void NAnt.Core.Tasks.DeleteTask::set_Verbose (bool 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.DeleteTask
+  } // end of class NAnt.Core.Types.PathSet
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit NAntSchemaTask
-  	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 0A 6E 61 6E 74 73 63 68 65 6D 61 00 00 ) // ...nantschema..
+    .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  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
+    .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 496
+    // method line 653
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe982
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x11648
+	// Code size 52 (0x34)
 	.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 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 497
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    // method line 654
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.PatternCollection get_Include ()  cil managed 
     {
-        // Method begins at RVA 0xe998
+        // Method begins at RVA 0x11680
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.Core.Types.PatternCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::_outputFile
+	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 NAntSchemaTask::get_OutputFile
-
-    // method line 498
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe9b3
-	// 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.NAntSchemaTask::_outputFile
-	IL_0008:  ret 
-    } // end of method NAntSchemaTask::set_OutputFile
+    } // end of method PatternSet::get_Include
 
-    // method line 499
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_TargetNamespace ()  cil managed 
+    // method line 655
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.PatternCollection get_IncludesFile ()  cil managed 
     {
-        // Method begins at RVA 0xe9c0
+        // Method begins at RVA 0x1169c
 	// 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.NAntSchemaTask::_targetNamespace
+	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 NAntSchemaTask::get_TargetNamespace
+    } // end of method PatternSet::get_IncludesFile
 
-    // method line 500
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_TargetNamespace (string 'value')  cil managed 
+    // method line 656
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.PatternCollection get_Exclude ()  cil managed 
     {
-        // Method begins at RVA 0xe9db
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x116b8
+	// 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:  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:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 501
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_ForType ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PatternSet::get_Exclude
+
+    // method line 657
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.PatternCollection get_ExcludesFile ()  cil managed 
     {
-        // Method begins at RVA 0xe9ec
+        // Method begins at RVA 0x116d4
 	// 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.NAntSchemaTask::_forType
+	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 NAntSchemaTask::get_ForType
+    } // end of method PatternSet::get_ExcludesFile
 
-    // method line 502
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ForType (string 'value')  cil managed 
+    // method line 658
+    .method public hidebysig 
+           instance default void Append (class NAnt.Core.Types.PatternSet patternSet)  cil managed 
     {
-        // Method begins at RVA 0xea07
-	// Code size 14 (0xe)
-	.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 0x116f0
+	// 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.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
+	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
 
-    // method line 503
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	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 659
+    .method public hidebysig 
+           instance default string[] GetIncludePatterns ()  cil managed 
     {
-        // Method begins at RVA 0xea18
-        .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 0x11784
+	// Code size 301 (0x12d)
+	.maxstack 3
 	.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 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,
-		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)
+		string[]	V_8)
 	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_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 
+	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_0039:  br IL_0061
+	  IL_001f:  br IL_004b
 
-	  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_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_006c:  leave IL_0087
+	  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_0071:  ldloc.3 
-	  IL_0072:  isinst [mscorlib]System.IDisposable
-	  IL_0077:  dup 
-	  IL_0078:  stloc.s 4
-	  IL_007a:  brfalse IL_0086
+	  IL_005b:  ldloc.2 
+	  IL_005c:  isinst [mscorlib]System.IDisposable
+	  IL_0061:  dup 
+	  IL_0062:  stloc.3 
+	  IL_0063:  brfalse IL_006e
 
-	  IL_007f:  ldloc.s 4
-	  IL_0081:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0086:  endfinally 
+	  IL_0068:  ldloc.3 
+	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_006e:  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
+	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_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
+	  IL_007d:  br IL_00e6
 
-	} // 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_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_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_0098:  nop 
+	  IL_0099:  leave IL_00e6
 
-	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
+	  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
 
-	} // 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_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_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_00f2:  leave IL_010e
 
-	  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 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
 
-	} // end .try 3
-	finally  { // 3
-	  IL_021c:  ldloc.s 12
-	  IL_021e:  brfalse IL_022a
+	  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_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
+	IL_012a:  ldloc.s 8
+	IL_012c:  ret 
+    } // end of method PatternSet::GetIncludePatterns
 
-    // method line 504
-    .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 line 660
+    .method public hidebysig 
+           instance default string[] GetExcludePatterns ()  cil managed 
     {
-        // Method begins at RVA 0xeca8
-	// Code size 68 (0x44)
+        // Method begins at RVA 0x118dc
+	// Code size 301 (0x12d)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator	V_0,
-		class [System.Xml]System.Xml.Schema.XmlSchema	V_1)
+		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.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_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_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_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_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_0037:  nop 
+	  IL_0038:  leave IL_004b
 
-	IL_0042:  ldloc.1 
-	IL_0043:  ret 
-    } // end of method NAntSchemaTask::WriteSchema
+	  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
 
-    // method line 505
-    .method family static hidebysig 
-           default string GenerateIDFromType (class [mscorlib]System.Type 'type')  cil managed 
-    {
-        // Method begins at RVA 0xecf8
-	// 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_0056:  leave IL_006f
 
-	IL_003a:  ldloc.0 
-	IL_003b:  ret 
-    } // end of method NAntSchemaTask::GenerateIDFromType
+	} // 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
 
-    // method line 506
-    .method family static hidebysig 
-           default class [System.Xml]System.Xml.Schema.XmlSchemaAttribute CreateXsdAttribute (string name, bool required)  cil managed 
-    {
-        // Method begins at RVA 0xed40
-	// 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_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_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_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_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_0098:  nop 
+	  IL_0099:  leave IL_00e6
 
-	IL_0032:  ldloc.1 
-	IL_0033:  ret 
-    } // end of method NAntSchemaTask::CreateXsdAttribute
+	  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
 
-    // method line 507
-    .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 0xed80
-	// 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_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_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_00f2:  leave IL_010e
 
-	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
+	} // 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_0045:  ldloc.1 
-	IL_0046:  ret 
-    } // end of method NAntSchemaTask::CreateXsdSequence
+	  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
 
-    // method line 508
-    .method family static hidebysig 
-           default class [System.Xml]System.Xml.XmlNode[] TextToNodeArray (string text)  cil managed 
+	IL_012a:  ldloc.s 8
+	IL_012c:  ret 
+    } // end of method PatternSet::GetExcludePatterns
+
+    // method line 661
+    .method private hidebysig 
+           instance default void ReadPatterns (string fileName, class [mscorlib]System.Collections.ArrayList patterns)  cil managed 
     {
-        // Method begins at RVA 0xedd4
-	// Code size 31 (0x1f)
-	.maxstack 5
+        // Method begins at RVA 0x11a34
+	// Code size 104 (0x68)
+	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [System.Xml]System.Xml.XmlNode[]	V_1)
+		class [mscorlib]System.IO.StreamReader	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_0006:  stloc.0 
+	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:  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_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_001d:  ldloc.1 
-	IL_001e:  ret 
-    } // end of method NAntSchemaTask::TextToNodeArray
+	  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
 
-    // method line 509
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xedff
-	// 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
+	  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
 
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	  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 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.
+		.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 [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') 
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_Include () 
 	}
-	.property instance string TargetNamespace ()
+	.property instance class NAnt.Core.Types.PatternCollection IncludesFile ()
 	{
-		.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.
+		.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.NAntSchemaTask::get_TargetNamespace () 
-		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_TargetNamespace (string 'value') 
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_IncludesFile () 
 	}
-	.property instance string ForType ()
+	.property instance class NAnt.Core.Types.PatternCollection Exclude ()
 	{
-		.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.
+		.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 string NAnt.Core.Tasks.NAntSchemaTask::get_ForType () 
-		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_ForType (string 'value') 
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_Exclude () 
 	}
-  .class nested private auto ansi beforefieldinit NAntSchemaGenerator
-  	extends [mscorlib]System.Object
+	.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                                              ) // .
+
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_ExcludesFile () 
+	}
+  } // end of class NAnt.Core.Types.PatternSet
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit ArgumentCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .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
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    // method line 510
+
+    // method line 662
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, string targetNS)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xee28
-	// 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)
+        // Method begins at RVA 0x11ab8
+	// Code size 8 (0x8)
+	.maxstack 8
 	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_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ArgumentCollection::.ctor
 
-	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
+    // method line 663
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11ac1
+	// 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.ArgumentCollection)
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::.ctor
 
-	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
+    // method line 664
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.Argument[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11ad1
+	// 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
 
-	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
+    // method line 665
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Argument get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x11ae4
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.Argument	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.Argument
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	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_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ArgumentCollection::get_Item
 
-	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
+    // method line 666
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Argument 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11b0a
+	// 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_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
+    // method line 667
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Argument get_Item (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11b1c
+	// Code size 111 (0x6f)
+	.maxstack 2
+	.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)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	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
+	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_01c0:  br IL_021b
+	  IL_0015:  br IL_0041
 
-	  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_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_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_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-	  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_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-	  IL_0227:  leave IL_0243
+	  IL_004c:  leave IL_0065
 
 	} // 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_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
 
-	  IL_023b:  ldloc.s 16
-	  IL_023d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0242:  endfinally 
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  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_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
 
-    // method line 511
-    .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchema get_Schema ()  cil managed 
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method ArgumentCollection::get_Item
+
+    // method line 668
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0xf1ec
-	// Code size 39 (0x27)
-	.maxstack 1
+        // Method begins at RVA 0x11ba8
+	// Code size 28 (0x1c)
+	.maxstack 2
 	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchema	V_0)
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1)
 	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_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_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method NAntSchemaGenerator::get_Schema
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method ArgumentCollection::ToString
 
-    // method line 512
+    // method line 669
     .method public hidebysig 
-           instance default void Compile ()  cil managed 
-    {
-        // Method begins at RVA 0xf21f
-	// 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 513
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType CreateTaskListComplexType (class [mscorlib]System.Type[] tasks)  cil managed 
+           instance default int32 Add (class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf23c
-	// Code size 23 (0x17)
-	.maxstack 4
+        // Method begins at RVA 0x11bd0
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
+		int32	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_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_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ArgumentCollection::Add
 
-    // method line 514
-    .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 line 670
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Argument[] items)  cil managed 
     {
-        // Method begins at RVA 0xf260
-	// Code size 392 (0x188)
-	.maxstack 6
+        // Method begins at RVA 0x11bf4
+	// Code size 34 (0x22)
+	.maxstack 3
 	.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)
+		int32	V_0)
 	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	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_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_0185:  ldloc.s 16
-	IL_0187:  ret 
-    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
+	IL_0021:  ret 
+    } // end of method ArgumentCollection::AddRange
 
-    // method line 515
-    .method family hidebysig 
-           instance default void ValidationEH (object sender, class [System.Xml]System.Xml.Schema.ValidationEventArgs args)  cil managed 
+    // method line 671
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.ArgumentCollection items)  cil managed 
     {
-        // Method begins at RVA 0xf3f4
-	// Code size 136 (0x88)
-	.maxstack 4
+        // Method begins at RVA 0x11c24
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
+		int32	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	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_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_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_0028:  ret 
+    } // end of method ArgumentCollection::AddRange
 
-    // method line 516
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindComplexTypeByID (string id)  cil managed 
+    // method line 672
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf488
-	// Code size 51 (0x33)
+        // Method begins at RVA 0x11c5c
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
+	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.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_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0031:  ldloc.0 
-	IL_0032:  ret 
-    } // end of method NAntSchemaGenerator::FindComplexTypeByID
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ArgumentCollection::Contains
 
-    // method line 517
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindOrCreateComplexType (class [mscorlib]System.Type t)  cil managed 
+    // method line 673
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xf4c8
-	// Code size 1102 (0x44e)
-	.maxstack 6
+        // Method begins at RVA 0x11c80
+	// Code size 22 (0x16)
+	.maxstack 2
 	.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)
+		bool	V_0)
 	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_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_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_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method ArgumentCollection::Contains
 
-	IL_044c:  ldloc.2 
-	IL_044d:  ret 
-    } // end of method NAntSchemaGenerator::FindOrCreateComplexType
+    // method line 674
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Argument[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x11ca2
+	// 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
 
-    // method line 518
-    .method private hidebysig 
-           instance default string GetTaskName (class [mscorlib]System.Type t)  cil managed 
+    // method line 675
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf924
-	// Code size 58 (0x3a)
-	.maxstack 3
+        // Method begins at RVA 0x11cb4
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Attributes.TaskNameAttribute[]	V_0,
-		string	V_1)
+		int32	V_0)
 	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_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_0030:  nop 
-	IL_0031:  ldnull 
-	IL_0032:  stloc.1 
-	IL_0033:  br IL_0038
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ArgumentCollection::IndexOf
 
-	IL_0038:  ldloc.1 
-	IL_0039:  ret 
-    } // end of method NAntSchemaGenerator::GetTaskName
+    // method line 676
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Argument item)  cil managed 
+    {
+        // Method begins at RVA 0x11cd5
+	// 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 ArgumentCollection::Insert
 
-    // method line 519
-    .method private hidebysig 
-           instance default string GetDataTypeName (class [mscorlib]System.Type t)  cil managed 
+    // method line 677
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.ArgumentEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xf96c
-	// Code size 58 (0x3a)
-	.maxstack 3
+        // Method begins at RVA 0x11ce8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute[]	V_0,
-		string	V_1)
+		class NAnt.Core.Types.ArgumentEnumerator	V_0)
 	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 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_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
 
-    .field  private  class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> _elementContainers
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::GetEnumerator
 
-    // method line 520
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 678
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf9b2
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x11d03
+	// Code size 14 (0xe)
 	.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
+	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
 
-    // method line 521
-    .method private hidebysig specialname 
-           instance default bool get_IsFallbackDefined ()  cil managed 
+    // method line 679
+    .method assembly hidebysig 
+           instance default void ToString (class [mscorlib]System.Text.StringBuilder sb)  cil managed 
     {
-        // Method begins at RVA 0xf9c8
-	// Code size 88 (0x58)
-	.maxstack 1
+        // Method begins at RVA 0x11d14
+	// Code size 120 (0x78)
+	.maxstack 2
 	.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)
+		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:  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 
+	IL_0003:  call instance class NAnt.Core.Types.ArgumentEnumerator class NAnt.Core.Types.ArgumentCollection::GetEnumerator()
+	IL_0008:  stloc.1 
 	.try { // 0
-	  IL_000e:  br IL_0030
+	  IL_0009:  br IL_0053
 
-	  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_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_0027:  nop 
-	  IL_0028:  ldc.i4.1 
-	  IL_0029:  stloc.2 
-	  IL_002a:  leave IL_0056
+	  IL_0021:  ldloc.0 
+	  IL_0022:  callvirt instance bool class NAnt.Core.Types.Argument::get_UnlessDefined()
+	  IL_0027:  brtrue IL_0052
 
-	  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_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_003c:  leave IL_004f
+	  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_005e:  leave IL_0077
 
 	} // 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 
+	  IL_0063:  ldloc.1 
+	  IL_0064:  isinst [mscorlib]System.IDisposable
+	  IL_0069:  dup 
+	  IL_006a:  stloc.2 
+	  IL_006b:  brfalse IL_0076
+
+	  IL_0070:  ldloc.2 
+	  IL_0071:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0076:  endfinally 
 	} // end handler 0
-	IL_004f:  ldc.i4.0 
-	IL_0050:  stloc.2 
-	IL_0051:  br IL_0056
+	IL_0077:  ret 
+    } // end of method ArgumentCollection::ToString
 
-	IL_0056:  ldloc.2 
-	IL_0057:  ret 
-    } // end of method ChooseTask::get_IsFallbackDefined
+	.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 line 522
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+.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 680
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xfa3c
-	// Code size 112 (0x70)
+        // Method begins at RVA 0x11da8
+	// 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.ArgumentEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method ArgumentEnumerator::.ctor
+
+    // method line 681
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Argument get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x11dcc
+	// Code size 25 (0x19)
 	.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)
+		class NAnt.Core.Types.Argument	V_0)
 	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_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_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_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ArgumentEnumerator::get_Current
 
-	  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
+    // method line 682
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x11df4
+	.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
 
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.2 
-	  IL_0037:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
-	  IL_003c:  leave IL_005c
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.get_Current
 
-	  IL_0041:  nop 
-	  IL_0042:  br IL_004f
+    // method line 683
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x11e14
+	// 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.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	  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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ArgumentEnumerator::MoveNext
 
-	  IL_005c:  leave IL_006f
+    // method line 684
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x11e34
+	.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.ArgumentEnumerator::_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_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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 523
+    // method line 685
     .method public hidebysig 
-           instance default void AddCondition (class NAnt.Core.Tasks.ChooseTask/When when)  cil managed 
+           instance default void Reset ()  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 0xfac8
-	// Code size 59 (0x3b)
+        // Method begins at RVA 0x11e54
+	// Code size 13 (0xd)
 	.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
+	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
 
-    // method line 524
-    .method public hidebysig 
-           instance default void AddFallback (class NAnt.Core.ElementContainer fallback)  cil managed 
+    // method line 686
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  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 0xfb04
-	// Code size 43 (0x2b)
+        // Method begins at RVA 0x11e62
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
 	.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
+	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
 
-	.property instance bool IsFallbackDefined ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default bool NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined () 
+		.get instance default object NAnt.Core.Types.ArgumentEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-  .class nested public auto ansi beforefieldinit When
-  	extends NAnt.Core.ElementContainer
+	.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 serializable beforefieldinit Argument
+  	extends NAnt.Core.Element
   {
-    .field  private  bool _test
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
 
-    // method line 525
+    .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 687
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xfb30
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x11e70
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Tasks.ChooseTask/When::_test
+	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.ElementContainer::'.ctor'()
-	IL_000d:  ret 
-    } // end of method When::.ctor
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Argument::.ctor
 
-    // method line 526
-    .method public hidebysig specialname 
-           instance default bool get_Test ()  cil managed 
+    // method line 688
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xfb40
-	// 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
+        // Method begins at RVA 0x11e80
+	// 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
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method When::get_Test
+    // method line 689
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11e97
+	// 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 527
-    .method public hidebysig specialname 
-           instance default void set_Test (bool 'value')  cil managed 
+    // method line 690
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xfb5b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x11eae
+	// Code size 22 (0x16)
 	.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
+	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 528
+    // method line 691
     .method public virtual hidebysig 
-           instance default void Execute ()  cil managed 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0xfb65
-	// Code size 25 (0x19)
-	.maxstack 8
+        // Method begins at RVA 0x11ec8
+	// Code size 170 (0xaa)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	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.Types.Argument::get_File()
+	IL_0007:  brfalse IL_0023
 
 	IL_000c:  nop 
-	IL_000d:  br IL_0018
+	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_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.ElementContainer::Execute()
-	IL_0018:  ret 
-    } // end of method When::Execute
+	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
 
-	.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_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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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
 
-		.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_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
 
-  } // end of class NAnt.Core.Tasks.ChooseTask
-}
+	IL_0067:  ldarg.0 
+	IL_0068:  call instance string class NAnt.Core.Types.Argument::get_Value()
+	IL_006d:  brfalse IL_0084
 
-.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_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
 
-    .field  private  string _prefix
+	IL_0084:  ldarg.0 
+	IL_0085:  call instance string class NAnt.Core.Types.Argument::get_Line()
+	IL_008a:  brfalse IL_009c
 
-    // method line 529
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xfb7f
-	// Code size 18 (0x12)
-	.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_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
 
-    // method line 530
+	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 692
     .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xfb94
+        // Method begins at RVA 0x11f80
 	// 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.SysInfoTask::_prefix
+	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 SysInfoTask::get_Prefix
+    } // end of method Argument::get_Value
 
-    // method line 531
+    // method line 693
     .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xfbaf
+        // Method begins at RVA 0x11f9b
 	// 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 string NAnt.Core.Types.Argument::_value
 	IL_0008:  ret 
-    } // end of method SysInfoTask::set_Prefix
+    } // end of method Argument::set_Value
 
-    // method line 532
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 694
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0xfbbc
-	// Code size 788 (0x314)
-	.maxstack 7
+        // Method begins at RVA 0x11fa8
+	// 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)
+		class [mscorlib]System.IO.FileInfo	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
-
-	} // 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 ()
-	{
-		.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.Tasks.SysInfoTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit PropertyTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 70 72 6F 70 65 72 74 79 00 00 ) // ...property..
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    .field  private  string _name
-    .field  private  string _value
-    .field  private  bool _readOnly
-    .field  private  bool _dynamic
-    .field  private  bool _overwrite
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Argument::get_File
 
-    // method line 533
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 695
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xff04
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x11fc3
+	// Code size 9 (0x9)
 	.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_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
 
-    // method line 534
+    // method line 696
     .method public hidebysig specialname 
-           instance default string get_PropertyName ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0xff20
+        // Method begins at RVA 0x11fd0
 	// 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.PropertyTask::_name
+	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 PropertyTask::get_PropertyName
+    } // end of method Argument::get_Directory
 
-    // method line 535
+    // method line 697
     .method public hidebysig specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xff3b
+        // Method begins at RVA 0x11feb
 	// 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 class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::_directory
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_PropertyName
+    } // end of method Argument::set_Directory
 
-    // method line 536
+    // method line 698
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0xff48
+        // Method begins at RVA 0x11ff8
 	// 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.PropertyTask::_value
+	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 PropertyTask::get_Value
+    } // end of method Argument::get_Path
 
-    // method line 537
+    // method line 699
     .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xff63
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x12013
+	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.PropertyTask::_value
-	IL_0008:  ret 
-    } // end of method PropertyTask::set_Value
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0007:  brfalse IL_001e
 
-    // method line 538
+	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 700
     .method public hidebysig specialname 
-           instance default bool get_ReadOnly ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
     {
-        // Method begins at RVA 0xff70
+        // Method begins at RVA 0x1203c
 	// 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.PropertyTask::_readOnly
+	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 PropertyTask::get_ReadOnly
+    } // end of method Argument::get_PathSet
 
-    // method line 539
+    // method line 701
     .method public hidebysig specialname 
-           instance default void set_ReadOnly (bool 'value')  cil managed 
+           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12057
+	// 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_PathSet
+
+    // method line 702
+    .method public hidebysig specialname 
+           instance default string get_Line ()  cil managed 
+    {
+        // Method begins at RVA 0x12080
+	// 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.Argument::_line
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Argument::get_Line
+
+    // method line 703
+    .method public hidebysig specialname 
+           instance default void set_Line (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xff8b
+        // Method begins at RVA 0x1209b
 	// 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_0003:  stfld string NAnt.Core.Types.Argument::_line
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_ReadOnly
+    } // end of method Argument::set_Line
 
-    // method line 540
+    // method line 704
     .method public hidebysig specialname 
-           instance default bool get_Dynamic ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xff98
+        // Method begins at RVA 0x120a8
 	// 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_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 PropertyTask::get_Dynamic
+    } // end of method Argument::get_IfDefined
 
-    // method line 541
+    // method line 705
     .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 0xffb3
+        // Method begins at RVA 0x120c3
 	// 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.Argument::_ifDefined
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_Dynamic
+    } // end of method Argument::set_IfDefined
 
-    // method line 542
+    // method line 706
     .method public hidebysig specialname 
-           instance default bool get_Overwrite ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xffc0
+        // Method begins at RVA 0x120d0
 	// 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.Argument::_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 Argument::get_UnlessDefined
 
-    // method line 543
+    // method line 707
     .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 0xffdb
+        // Method begins at RVA 0x120eb
 	// 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.Argument::_unlessDefined
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_Overwrite
+    } // end of method Argument::set_UnlessDefined
 
-    // method line 544
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 708
+    .method assembly hidebysig specialname 
+           instance default string get_StringValue ()  cil managed 
     {
-        // Method begins at RVA 0xffe8
-	// Code size 726 (0x2d6)
-	.maxstack 7
+        // Method begins at RVA 0x120f8
+	// Code size 127 (0x7f)
+	.maxstack 1
 	.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)
+		string	V_0)
 	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_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:  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_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_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_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_012c:  leave IL_0148
+	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
 
-	} // 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_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_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_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_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_0058:  ldarg.0 
+	IL_0059:  call instance string class NAnt.Core.Types.Argument::get_Line()
+	IL_005e:  brfalse IL_0070
 
-	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_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_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_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_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_007d:  ldloc.0 
+	IL_007e:  ret 
+    } // end of method Argument::get_StringValue
 
-	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
+    // method line 709
+    .method private static hidebysig 
+           default string QuoteArgument (string argument)  cil managed 
+    {
+        // Method begins at RVA 0x12184
+	// Code size 97 (0x61)
+	.maxstack 3
+	.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_022d:  nop 
-	IL_022e:  ldarg.0 
-	IL_022f:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Overwrite()
-	IL_0234:  brfalse IL_02b3
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_005f
 
-	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_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_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_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_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_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_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_0057:  nop 
+	IL_0058:  ldarg.0 
+	IL_0059:  stloc.0 
+	IL_005a:  br IL_005f
 
-	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
+	IL_005f:  ldloc.0 
+	IL_0060:  ret 
+    } // end of method Argument::QuoteArgument
 
-	.property instance string PropertyName ()
+	.property instance string Value ()
 	{
-		.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 05 76 61 6C 75 65 00 00 ) // ...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.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 string NAnt.Core.Tasks.PropertyTask::get_PropertyName () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_PropertyName (string 'value') 
+		.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 string Value ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-		.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 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 string NAnt.Core.Tasks.PropertyTask::get_Value () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Value (string 'value') 
+		.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 bool ReadOnly ()
+	.property instance class NAnt.Core.Types.PathSet PathSet ()
 	{
-		.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.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.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 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.Argument::get_Line () 
+		.set instance default void NAnt.Core.Types.Argument::set_Line (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.Argument::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Argument::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.Argument::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Argument::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.PropertyTask
+	.property instance string StringValue ()
+	{
+		.get instance default string NAnt.Core.Types.Argument::get_StringValue () 
+	}
+  } // end of class NAnt.Core.Types.Argument
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi sealed LocationType
-  	extends [mscorlib]System.Enum
+  .class public auto ansi serializable beforefieldinit FormatterCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .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)
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-  } // end of class NAnt.Core.Attributes.LocationType
-}
 
-.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.
+    // method line 710
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x121f1
+	// 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
 
-    .field  private  valuetype NAnt.Core.Attributes.LocationType _locationType
+    // method line 711
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x121fa
+	// 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 545
+    // method line 712
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.Core.Attributes.LocationType 'type')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.Formatter[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x102dc
+        // Method begins at RVA 0x1220a
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.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.Attributes.ProgramLocationAttribute::set_LocationType(valuetype NAnt.Core.Attributes.LocationType)
+	IL_0009:  call instance void class NAnt.Core.Types.FormatterCollection::AddRange(class NAnt.Core.Types.Formatter[])
 	IL_000e:  ret 
-    } // end of method ProgramLocationAttribute::.ctor
+    } // end of method FormatterCollection::.ctor
 
-    // method line 546
+    // method line 713
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Attributes.LocationType get_LocationType ()  cil managed 
+           instance default class NAnt.Core.Types.Formatter get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x102ec
+        // Method begins at RVA 0x1221c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.Formatter	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_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FormatterCollection::get_Item
+
+    // method line 714
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Formatter 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12242
+	// 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 715
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.Formatter item)  cil managed 
+    {
+        // Method begins at RVA 0x12254
+	// 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 FormatterCollection::Add
+
+    // method line 716
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Formatter[] items)  cil managed 
+    {
+        // Method begins at RVA 0x12278
+	// 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.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_0021:  ret 
+    } // end of method FormatterCollection::AddRange
+
+    // method line 717
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.FormatterCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x122a8
+	// 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.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
+
+	IL_0028:  ret 
+    } // end of method FormatterCollection::AddRange
+
+    // method line 718
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Formatter item)  cil managed 
+    {
+        // Method begins at RVA 0x122e0
+	// 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 FormatterCollection::Contains
+
+    // method line 719
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Formatter[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x12301
+	// 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
+
+    // method line 720
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Formatter item)  cil managed 
+    {
+        // Method begins at RVA 0x12314
+	// 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 FormatterCollection::IndexOf
+
+    // method line 721
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Formatter item)  cil managed 
+    {
+        // Method begins at RVA 0x12335
+	// 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 722
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.FormatterEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x12348
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Attributes.LocationType	V_0)
+		class NAnt.Core.Types.FormatterEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::_locationType
+	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_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ProgramLocationAttribute::get_LocationType
+    } // end of method FormatterCollection::GetEnumerator
 
-    // method line 547
-    .method public hidebysig specialname 
-           instance default void set_LocationType (valuetype NAnt.Core.Attributes.LocationType 'value')  cil managed 
+    // method line 723
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Formatter item)  cil managed 
     {
-        // Method begins at RVA 0x10307
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x12363
+	// Code size 14 (0xe)
 	.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
+	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 valuetype NAnt.Core.Attributes.LocationType LocationType ()
+	.property instance class NAnt.Core.Types.Formatter Item (int32)
 	{
-		.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 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.Attributes.ProgramLocationAttribute
+  } // end of class NAnt.Core.Types.FormatterCollection
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .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.
+  .class public auto ansi beforefieldinit FormatterEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 724
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x12374
+	// 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
+
+    // method line 725
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Formatter get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x12398
+	// 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_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FormatterEnumerator::get_Current
 
-    // method line 548
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 726
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x10311
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x123c0
+	.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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 727
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x123e0
+	// 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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterEnumerator::MoveNext
+
+    // method line 728
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x12400
+	.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
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 729
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x12420
+	// Code size 13 (0xd)
 	.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_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 line 549
-    .method public virtual hidebysig newslot abstract 
-           instance default void Validate (object 'value')  cil managed 
+    // method line 730
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ValidatorAttribute::Validate
+        // Method begins at RVA 0x1242e
+	.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
 
-  } // end of class NAnt.Core.Attributes.ValidatorAttribute
+	.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.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi sealed beforefieldinit TaskAttributeAttribute
-  	extends NAnt.Core.Attributes.BuildAttributeAttribute
+  .class public auto ansi sealed ManagedExecution
+  	extends [mscorlib]System.Enum
   {
-    .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 [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
+}
 
-    // method line 550
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit ManagedExecutionConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
+
+    // method line 731
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x10419
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1243c
+	// Code size 18 (0x12)
 	.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
+	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
 
-  } // end of class NAnt.Core.Attributes.TaskAttributeAttribute
+    // method line 732
+    .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 0x12450
+	// 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
+
+	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
+
+	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
+
+	IL_0078:  ldloc.1 
+	IL_0079:  ret 
+    } // end of method ManagedExecutionConverter::ConvertFrom
+
+  } // end of class NAnt.Core.Types.ManagedExecutionConverter
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit ElementNameAttribute
-  	extends [mscorlib]System.Attribute
+  .class public auto ansi beforefieldinit Credential
+  	extends NAnt.Core.DataTypeBase
   {
-    .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.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 63 72 65 64 65 6E 74 69 61 6C 00 00 ) // ...credential..
 
-    .field  private  string _name
+    .field  private  string _domain
+    .field  private  string _password
+    .field  private  string _userName
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 551
+    // method line 733
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x10423
+        // Method begins at RVA 0x124d6
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Credential::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Attributes.ElementNameAttribute::set_Name(string)
+	IL_0008:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_000d:  nop 
 	IL_000e:  ret 
-    } // end of method ElementNameAttribute::.ctor
+    } // end of method Credential::.ctor
 
-    // method line 552
+    // method line 734
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default string get_Domain ()  cil managed 
     {
-        // Method begins at RVA 0x10434
+        // Method begins at RVA 0x124e8
 	// 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.ElementNameAttribute::_name
+	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 ElementNameAttribute::get_Name
+    } // end of method Credential::get_Domain
 
-    // method line 553
+    // method line 735
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_Domain (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x10450
-	// Code size 66 (0x42)
-	.maxstack 3
+        // Method begins at RVA 0x12503
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	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
-
-	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
-
-	.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_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
 
-.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.
+    // method line 736
+    .method public hidebysig specialname 
+           instance default string get_Password ()  cil managed 
+    {
+        // Method begins at RVA 0x12514
+	// 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::_password
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    .field  private  bool _allowEmpty
-    .field  private  string _expression
-    .field  private  string _expressionErrorMessage
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Credential::get_Password
 
-    // method line 554
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 737
+    .method public hidebysig specialname 
+           instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1049e
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1252f
+	// Code size 14 (0xe)
 	.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_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
 
-    // method line 555
+    // method line 738
     .method public hidebysig specialname 
-           instance default bool get_AllowEmpty ()  cil managed 
+           instance default string get_UserName ()  cil managed 
     {
-        // Method begins at RVA 0x104b0
+        // Method begins at RVA 0x12540
 	// 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.Types.Credential::_userName
 	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 Credential::get_UserName
 
-    // method line 556
+    // method line 739
     .method public hidebysig specialname 
-           instance default void set_AllowEmpty (bool 'value')  cil managed 
+           instance default void set_UserName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x104cb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1255b
+	// Code size 14 (0xe)
 	.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
+	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 557
+    // method line 740
     .method public hidebysig specialname 
-           instance default string get_Expression ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x104d8
+        // Method begins at RVA 0x1256c
 	// 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.StringValidatorAttribute::_expression
+	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 StringValidatorAttribute::get_Expression
+    } // end of method Credential::get_IfDefined
 
-    // method line 558
+    // method line 741
     .method public hidebysig specialname 
-           instance default void set_Expression (string 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x104f3
+        // Method begins at RVA 0x12587
 	// 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 bool NAnt.Core.Types.Credential::_ifDefined
 	IL_0008:  ret 
-    } // end of method StringValidatorAttribute::set_Expression
+    } // end of method Credential::set_IfDefined
 
-    // method line 559
+    // method line 742
     .method public hidebysig specialname 
-           instance default string get_ExpressionErrorMessage ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x10500
+        // Method begins at RVA 0x12594
 	// 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.StringValidatorAttribute::_expressionErrorMessage
+	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 StringValidatorAttribute::get_ExpressionErrorMessage
+    } // end of method Credential::get_UnlessDefined
 
-    // method line 560
+    // method line 743
     .method public hidebysig specialname 
-           instance default void set_ExpressionErrorMessage (string 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1051b
+        // Method begins at RVA 0x125af
 	// 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 bool NAnt.Core.Types.Credential::_unlessDefined
 	IL_0008:  ret 
-    } // end of method StringValidatorAttribute::set_ExpressionErrorMessage
+    } // end of method Credential::set_UnlessDefined
 
-    // method line 561
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
+    // method line 744
+    .method public hidebysig 
+           instance default class [System]System.Net.ICredentials GetCredential ()  cil managed 
     {
-        // Method begins at RVA 0x10528
-	// Code size 203 (0xcb)
+        // Method begins at RVA 0x125bc
+	// Code size 60 (0x3c)
 	.maxstack 3
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1,
-		string	V_2)
+		class [System]System.Net.ICredentials	V_0,
+		class [System]System.Net.ICredentials	V_1)
 	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_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_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_000e:  ldarg.0 
+	IL_000f:  call instance bool class NAnt.Core.Types.Credential::get_UnlessDefined()
+	IL_0014:  brtrue IL_0033
 
-	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_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_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_003a:  ldloc.1 
+	IL_003b:  ret 
+    } // end of method Credential::GetCredential
 
-	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
+	.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.
 
-	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
+		.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.
 
-	.property instance bool AllowEmpty ()
+		.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 ()
 	{
-		.get instance default bool NAnt.Core.Attributes.StringValidatorAttribute::get_AllowEmpty () 
-		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_AllowEmpty (bool 'value') 
+		.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 string Expression ()
+	.property instance bool IfDefined ()
 	{
-		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_Expression () 
-		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_Expression (string 'value') 
+		.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 string ExpressionErrorMessage ()
+	.property instance bool UnlessDefined ()
 	{
-		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage () 
-		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_ExpressionErrorMessage (string 'value') 
+		.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.Credential::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Credential::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Attributes.StringValidatorAttribute
+  } // end of class NAnt.Core.Types.Credential
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi sealed beforefieldinit BuildElementCollectionAttribute
-  	extends NAnt.Core.Attributes.BuildElementArrayAttribute
+  .class public auto ansi beforefieldinit RawXml
+  	extends NAnt.Core.Element
   {
-    .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 562
+    // method line 745
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string collectionName, string childName)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1072c
-	// Code size 73 (0x49)
-	.maxstack 3
+        // Method begins at RVA 0x12604
+	// Code size 7 (0x7)
+	.maxstack 8
 	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
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method RawXml::.ctor
 
-    // method line 563
+    // method line 746
     .method public hidebysig specialname 
-           instance default string get_ChildElementName ()  cil managed 
+           instance default class [System.Xml]System.Xml.XmlNode get_Xml ()  cil managed 
     {
-        // Method begins at RVA 0x10784
+        // Method begins at RVA 0x1260c
 	// 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.Attributes.BuildElementCollectionAttribute::_elementName
+	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 BuildElementCollectionAttribute::get_ChildElementName
+    } // end of method RawXml::get_Xml
 
-	.property instance string ChildElementName ()
+    // method line 747
+    .method family virtual hidebysig specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
+    {
+        // Method begins at RVA 0x12628
+	// 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 RawXml::get_CustomXmlProcessing
+
+	.property instance class [System.Xml]System.Xml.XmlNode Xml ()
 	{
-		.get instance default string NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName () 
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Types.RawXml::get_Xml () 
 	}
-  } // end of class NAnt.Core.Attributes.BuildElementCollectionAttribute
+	.property instance bool CustomXmlProcessing ()
+	{
+		.get instance default bool NAnt.Core.Types.RawXml::get_CustomXmlProcessing () 
+	}
+  } // end of class NAnt.Core.Types.RawXml
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi abstract beforefieldinit BuildAttributeAttribute
-  	extends [mscorlib]System.Attribute
+  .class public auto ansi beforefieldinit XmlNamespace
+  	extends NAnt.Core.Element
   {
-    .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.ElementNameAttribute::'.ctor'(string) =  (01 00 09 6E 61 6D 65 73 70 61 63 65 00 00 ) // ...namespace..
 
-    .field  private  string _name
-    .field  private  bool _required
-    .field  private  bool _expandProperties
-    .field  private  bool _processXml
+    .field  private  string _prefix
+    .field  private  string _uri
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 564
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+    // method line 748
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x10319
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x1263e
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
+	IL_0002:  stfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
 	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_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method XmlNamespace::.ctor
 
-    // method line 565
+    // method line 749
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x10338
+        // Method begins at RVA 0x12650
 	// 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_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 BuildAttributeAttribute::get_Name
+    } // end of method XmlNamespace::get_Prefix
 
-    // method line 566
+    // method line 750
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x10354
-	// Code size 66 (0x42)
-	.maxstack 3
+        // Method begins at RVA 0x1266b
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	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
+	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
 
-    // method line 567
+    // method line 751
     .method public hidebysig specialname 
-           instance default bool get_Required ()  cil managed 
+           instance default string get_Uri ()  cil managed 
     {
-        // Method begins at RVA 0x103a4
+        // Method begins at RVA 0x12678
 	// 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.BuildAttributeAttribute::_required
+	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_uri
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildAttributeAttribute::get_Required
+    } // end of method XmlNamespace::get_Uri
 
-    // method line 568
+    // method line 752
     .method public hidebysig specialname 
-           instance default void set_Required (bool 'value')  cil managed 
+           instance default void set_Uri (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x103bf
+        // Method begins at RVA 0x12693
 	// 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::_required
+	IL_0003:  stfld string NAnt.Core.Types.XmlNamespace::_uri
 	IL_0008:  ret 
-    } // end of method BuildAttributeAttribute::set_Required
+    } // end of method XmlNamespace::set_Uri
 
-    // method line 569
+    // method line 753
     .method public hidebysig specialname 
-           instance default bool get_ExpandProperties ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x103cc
+        // Method begins at RVA 0x126a0
 	// 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::_expandProperties
+	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 BuildAttributeAttribute::get_ExpandProperties
+    } // end of method XmlNamespace::get_IfDefined
 
-    // method line 570
+    // method line 754
     .method public hidebysig specialname 
-           instance default void set_ExpandProperties (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x103e7
+        // Method begins at RVA 0x126bb
 	// 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_0003:  stfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
 	IL_0008:  ret 
-    } // end of method BuildAttributeAttribute::set_ExpandProperties
+    } // end of method XmlNamespace::set_IfDefined
 
-    // method line 571
+    // method line 755
     .method public hidebysig specialname 
-           instance default bool get_ProcessXml ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x103f4
+        // Method begins at RVA 0x126c8
 	// 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::_processXml
+	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildAttributeAttribute::get_ProcessXml
+    } // end of method XmlNamespace::get_UnlessDefined
 
-    // method line 572
+    // method line 756
     .method public hidebysig specialname 
-           instance default void set_ProcessXml (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1040f
+        // Method begins at RVA 0x126e3
 	// 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_0003:  stfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
 	IL_0008:  ret 
-    } // end of method BuildAttributeAttribute::set_ProcessXml
+    } // end of method XmlNamespace::set_UnlessDefined
 
-	.property instance string Name ()
+	.property instance string Prefix ()
 	{
-		.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 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') 
 	}
-	.property instance bool Required ()
+	.property instance string Uri ()
 	{
-		.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 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') 
 	}
-	.property instance bool ExpandProperties ()
+	.property instance bool IfDefined ()
 	{
-		.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 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') 
 	}
-	.property instance bool ProcessXml ()
+	.property instance bool UnlessDefined ()
 	{
-		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_ProcessXml () 
-		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_ProcessXml (bool 'value') 
+		.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') 
 	}
-  } // end of class NAnt.Core.Attributes.BuildAttributeAttribute
+  } // end of class NAnt.Core.Types.XmlNamespace
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi sealed beforefieldinit FunctionAttribute
-  	extends [mscorlib]System.Attribute
+  .class public auto ansi serializable beforefieldinit OptionCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .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 [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    .field  private  string _name
 
-    // method line 573
+    // method line 757
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x107a0
-	// Code size 67 (0x43)
-	.maxstack 3
+        // Method begins at RVA 0x126ed
+	// Code size 8 (0x8)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.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_0007:  ret 
+    } // end of method OptionCollection::.ctor
 
-    // method line 574
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 758
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x107f0
+        // Method begins at RVA 0x126f6
 	// 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.FunctionAttribute::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.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
 
-	IL_000d:  ldloc.0 
+    // method line 759
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.Option[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12706
+	// 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 FunctionAttribute::get_Name
+    } // end of method OptionCollection::.ctor
 
-    // method line 575
+    // method line 760
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default class NAnt.Core.Types.Option get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1080b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x12718
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.Option	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.FunctionAttribute::_name
-	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 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_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_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method OptionCollection::get_Item
 
-    // method line 576
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 761
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Option 'value')  cil managed 
     {
-        // Method begins at RVA 0x10815
-	// Code size 8 (0x8)
+        // Method begins at RVA 0x1273e
+	// Code size 15 (0xf)
 	.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
+	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 577
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
+    // method line 762
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Option get_Item (string name)  cil managed 
     {
-        // Method begins at RVA 0x10820
-	// Code size 56 (0x38)
-	.maxstack 3
+        // Method begins at RVA 0x12750
+	// Code size 111 (0x6f)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		class NAnt.Core.Types.Option	V_0,
+		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.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_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_0015:  br IL_0041
 
-	} // 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
+	  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
 
-  } // end of class NAnt.Core.Attributes.BooleanValidatorAttribute
-}
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-.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.
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-    .field  private  string _name
-    .field  private  bool _required
-    .field  private  bool _expandProperties
+	  IL_004c:  leave IL_0065
 
-    // method line 578
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x10874
-	// 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
+	} // 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 579
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+	  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 OptionCollection::get_Item
+
+    // method line 763
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.Option item)  cil managed 
     {
-        // Method begins at RVA 0x1088c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x127dc
+	// 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.Attributes.FrameworkConfigurableAttribute::_name
-	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_000e:  ret 
-    } // end of method FrameworkConfigurableAttribute::get_Name
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method OptionCollection::Add
 
-    // method line 580
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+    // method line 764
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Option[] items)  cil managed 
     {
-        // Method begins at RVA 0x108a8
-	// Code size 66 (0x42)
+        // Method begins at RVA 0x12800
+	// Code size 34 (0x22)
 	.maxstack 3
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	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_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_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
+	IL_0021:  ret 
+    } // end of method OptionCollection::AddRange
 
-    // method line 581
-    .method public hidebysig specialname 
-           instance default bool get_Required ()  cil managed 
+    // method line 765
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.OptionCollection items)  cil managed 
     {
-        // Method begins at RVA 0x108f8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x12830
+	// 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.Core.Attributes.FrameworkConfigurableAttribute::_required
-	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 FrameworkConfigurableAttribute::get_Required
+	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
 
-    // method line 582
-    .method public hidebysig specialname 
-           instance default void set_Required (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x10913
-	// 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::_required
-	IL_0008:  ret 
-    } // end of method FrameworkConfigurableAttribute::set_Required
+	IL_0028:  ret 
+    } // end of method OptionCollection::AddRange
 
-    // method line 583
-    .method public hidebysig specialname 
-           instance default bool get_ExpandProperties ()  cil managed 
+    // method line 766
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Option item)  cil managed 
     {
-        // Method begins at RVA 0x10920
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x12868
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
-	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 FrameworkConfigurableAttribute::get_ExpandProperties
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method OptionCollection::Contains
 
-    // method line 584
-    .method public hidebysig specialname 
-           instance default void set_ExpandProperties (bool 'value')  cil managed 
+    // method line 767
+    .method public hidebysig 
+           instance default bool Contains (string taskName)  cil managed 
     {
-        // Method begins at RVA 0x1093b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x1288c
+	// 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 bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
-	IL_0008:  ret 
-    } // end of method FrameworkConfigurableAttribute::set_ExpandProperties
-
-	.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 ()
-	{
-		.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 NAnt.Core.Attributes.FrameworkConfigurableAttribute
-}
-
-.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
+	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
 
-    // method line 585
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x10610
-	// Code size 22 (0x16)
-	.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_0014:  ldloc.0 
 	IL_0015:  ret 
-    } // end of method BuildElementAttribute::.ctor
+    } // end of method OptionCollection::Contains
 
-    // method line 586
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 768
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Option[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x10628
+        // Method begins at RVA 0x128ae
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+	.maxstack 8
 	IL_0000:  nop 
 	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_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 BuildElementAttribute::get_Name
-
-    // method line 587
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x10644
-	// Code size 66 (0x42)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	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
+    } // end of method OptionCollection::CopyTo
 
-    // method line 588
-    .method public hidebysig specialname 
-           instance default bool get_Required ()  cil managed 
+    // method line 769
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Option item)  cil managed 
     {
-        // Method begins at RVA 0x10694
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x128c0
+	// 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.Core.Attributes.BuildElementAttribute::_required
-	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 BuildElementAttribute::get_Required
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method OptionCollection::IndexOf
 
-    // method line 589
-    .method public hidebysig specialname 
-           instance default void set_Required (bool 'value')  cil managed 
+    // method line 770
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Option item)  cil managed 
     {
-        // Method begins at RVA 0x106af
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x128e1
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_required
-	IL_0008:  ret 
-    } // end of method BuildElementAttribute::set_Required
+	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
 
-    // method line 590
-    .method public hidebysig specialname 
-           instance default bool get_ProcessXml ()  cil managed 
+    // method line 771
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.OptionEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x106bc
+        // Method begins at RVA 0x128f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.OptionEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
+	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
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildElementAttribute::get_ProcessXml
+    } // end of method OptionCollection::GetEnumerator
 
-    // method line 591
-    .method public hidebysig specialname 
-           instance default void set_ProcessXml (bool 'value')  cil managed 
+    // method line 772
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Option item)  cil managed 
     {
-        // Method begins at RVA 0x106d7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1290f
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
-	IL_0008:  ret 
-    } // end of method BuildElementAttribute::set_ProcessXml
+	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 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 ()
+	.property instance class NAnt.Core.Types.Option Item (int32)
 	{
-		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_Required () 
-		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_Required (bool 'value') 
+		.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 bool ProcessXml ()
+	.property instance class NAnt.Core.Types.Option Item (string)
 	{
-		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml () 
-		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_ProcessXml (bool 'value') 
+		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionCollection::get_Item (string name) 
 	}
-  } // end of class NAnt.Core.Attributes.BuildElementAttribute
+  } // end of class NAnt.Core.Types.OptionCollection
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .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
+  .class public auto ansi beforefieldinit OptionEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 592
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string prefix, string category)  cil managed 
+    // method line 773
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x10948
-	// Code size 126 (0x7e)
-	.maxstack 3
+        // Method begins at RVA 0x12920
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	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 "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_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_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
 
-	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 774
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Option get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x12944
+	// 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
 
-	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_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method OptionEnumerator::get_Current
 
-    // method line 593
-    .method public hidebysig specialname 
-           instance default string get_Category ()  cil managed 
+    // method line 775
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x109d4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1296c
+	.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.Attributes.FunctionSetAttribute::_category
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionSetAttribute::get_Category
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method OptionEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 594
-    .method public hidebysig specialname 
-           instance default void set_Category (string 'value')  cil managed 
+    // method line 776
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x109ef
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x1298c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
-	IL_0008:  ret 
-    } // end of method FunctionSetAttribute::set_Category
+	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
 
-    // method line 595
-    .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method OptionEnumerator::MoveNext
+
+    // method line 777
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x109fc
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x129ac
+	.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:  ldfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionSetAttribute::get_Prefix
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method OptionEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 596
-    .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+    // method line 778
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x10a17
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x129cc
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
-	IL_0008:  ret 
-    } // end of method FunctionSetAttribute::set_Prefix
+	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
 
-	.property instance string Category ()
+    // method line 779
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x129da
+	.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 string NAnt.Core.Attributes.FunctionSetAttribute::get_Category () 
-		.set instance default void NAnt.Core.Attributes.FunctionSetAttribute::set_Category (string 'value') 
+		.get instance default object NAnt.Core.Types.OptionEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance string Prefix ()
+	.property instance class NAnt.Core.Types.Option Current ()
 	{
-		.get instance default string NAnt.Core.Attributes.FunctionSetAttribute::get_Prefix () 
-		.set instance default void NAnt.Core.Attributes.FunctionSetAttribute::set_Prefix (string 'value') 
+		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Attributes.FunctionSetAttribute
+  } // end of class NAnt.Core.Types.OptionEnumerator
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi sealed beforefieldinit Int32ValidatorAttribute
-  	extends NAnt.Core.Attributes.ValidatorAttribute
+  .class public auto ansi serializable beforefieldinit FileSet
+  	extends NAnt.Core.DataTypeBase
   {
-    .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.ElementNameAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-    .field  private  int32 _minValue
-    .field  private  int32 _maxValue
-    .field  private  int32 _base
+    .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 597
+    // method line 780
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x10a21
-	// Code size 38 (0x26)
+        // Method begins at RVA 0x129e8
+	// Code size 48 (0x30)
 	.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_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 598
+    // method line 781
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 minValue, int32 maxValue)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
     {
-        // Method begins at RVA 0x10a48
-	// Code size 52 (0x34)
+        // Method begins at RVA 0x12a19
+	// Code size 55 (0x37)
 	.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.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 599
+    // method line 782
     .method public hidebysig specialname 
-           instance default int32 get_MinValue ()  cil managed 
+           instance default bool get_CaseSensitive ()  cil managed 
     {
-        // Method begins at RVA 0x10a80
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x12a54
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
-	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 Int32ValidatorAttribute::get_MinValue
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileSet::get_CaseSensitive
 
-    // method line 600
+    // method line 783
     .method public hidebysig specialname 
-           instance default void set_MinValue (int32 'value')  cil managed 
+           instance default void set_CaseSensitive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x10a9b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x12a74
+	// Code size 14 (0xe)
 	.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_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 601
+    // method line 784
     .method public hidebysig specialname 
-           instance default int32 get_MaxValue ()  cil managed 
+           instance default bool get_FailOnEmpty ()  cil managed 
     {
-        // Method begins at RVA 0x10aa8
+        // Method begins at RVA 0x12a84
 	// 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.Attributes.Int32ValidatorAttribute::_maxValue
+	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 Int32ValidatorAttribute::get_MaxValue
+    } // end of method FileSet::get_FailOnEmpty
 
-    // method line 602
+    // method line 785
     .method public hidebysig specialname 
-           instance default void set_MaxValue (int32 'value')  cil managed 
+           instance default void set_FailOnEmpty (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x10ac3
+        // Method begins at RVA 0x12a9f
 	// 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 bool NAnt.Core.Types.FileSet::_failOnEmpty
 	IL_0008:  ret 
-    } // end of method Int32ValidatorAttribute::set_MaxValue
+    } // end of method FileSet::set_FailOnEmpty
 
-    // method line 603
+    // method line 786
     .method public hidebysig specialname 
-           instance default int32 get_Base ()  cil managed 
+           instance default bool get_DefaultExcludes ()  cil managed 
     {
-        // Method begins at RVA 0x10ad0
+        // Method begins at RVA 0x12aac
 	// 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.Attributes.Int32ValidatorAttribute::_base
+	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 Int32ValidatorAttribute::get_Base
+    } // end of method FileSet::get_DefaultExcludes
 
-    // method line 604
+    // method line 787
     .method public hidebysig specialname 
-           instance default void set_Base (int32 'value')  cil managed 
+           instance default void set_DefaultExcludes (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x10aeb
+        // Method begins at RVA 0x12ac7
 	// 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 bool NAnt.Core.Types.FileSet::_defaultExcludes
 	IL_0008:  ret 
-    } // end of method Int32ValidatorAttribute::set_Base
+    } // end of method FileSet::set_DefaultExcludes
 
-    // method line 605
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
+    // method line 788
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x10af8
-	// Code size 173 (0xad)
-	.maxstack 5
+        // Method begins at RVA 0x12ad4
+	// Code size 127 (0x7f)
+	.maxstack 2
 	.locals init (
-		int32	V_0,
-		class [mscorlib]System.Exception	V_1)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
-	.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_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
+	IL_0007:  brtrue IL_0071
 
-	} // 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_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0013:  brfalse IL_004e
 
-	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_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_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_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
 
-	.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_004e:  ldarg.0 
+	IL_004f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0054:  brfalse IL_0070
 
-.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_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
 
-    .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_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_007d:  ldloc.0 
+	IL_007e:  ret 
+    } // end of method FileSet::get_BaseDirectory
 
-    // method line 606
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+    // method line 789
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x10bc4
+        // Method begins at RVA 0x12b5f
 	// 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_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 FileSetAttribute::.ctor
-
-  } // end of class NAnt.Core.Attributes.FileSetAttribute
-}
+    } // end of method FileSet::set_BaseDirectory
 
-.namespace NAnt.Core.Attributes
-{
-  .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 790
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
+    {
+        // Method begins at RVA 0x12b6c
+	// 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
 
-    .field  private  class [mscorlib]System.Type _elementType
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileSet::get_Includes
 
-    // method line 607
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+    // method line 791
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
     {
-        // Method begins at RVA 0x106e1
-	// 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 BuildElementArrayAttribute::.ctor
+        // Method begins at RVA 0x12b8c
+	// 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_Excludes()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 608
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileSet::get_Excludes
+
+    // method line 792
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_ElementType ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_AsIs ()  cil managed 
     {
-        // Method begins at RVA 0x106ec
+        // Method begins at RVA 0x12bac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::_elementType
+	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 BuildElementArrayAttribute::get_ElementType
+    } // end of method FileSet::get_AsIs
 
-    // method line 609
+    // method line 793
     .method public hidebysig specialname 
-           instance default void set_ElementType (class [mscorlib]System.Type 'value')  cil managed 
+           instance default class NAnt.Core.PathScanner get_PathFiles ()  cil managed 
     {
-        // Method begins at RVA 0x10707
-	// Code size 33 (0x21)
-	.maxstack 8
+        // Method begins at RVA 0x12bc8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.PathScanner	V_0)
 	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
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	.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
-}
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileSet::get_PathFiles
 
-.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 794
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
+    {
+        // Method begins at RVA 0x12be4
+	// Code size 39 (0x27)
+	.maxstack 1
+	.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
 
+	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 610
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x10bce
-	// 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
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_FileNames
 
-    // method line 611
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
+    // method line 795
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
     {
-        // Method begins at RVA 0x10bd8
-	// Code size 56 (0x38)
-	.maxstack 3
+        // Method begins at RVA 0x12c18
+	// Code size 39 (0x27)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		class [System]System.Collections.Specialized.StringCollection	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
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0007:  brtrue IL_0014
 
-	} // 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
+	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
 
-  } // end of class NAnt.Core.Attributes.DateTimeValidatorAttribute
-}
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_DirectoryNames
 
-.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.
+    // method line 796
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
+    {
+        // Method begins at RVA 0x12c4c
+	// Code size 39 (0x27)
+	.maxstack 1
+	.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
+
+	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_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_ScannedDirectories
 
-    // method line 612
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+    // method line 797
+    .method public hidebysig specialname 
+           instance default void set_SetIncludes (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x10c2c
+        // Method begins at RVA 0x12c7f
 	// 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_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 TaskNameAttribute::.ctor
+    } // end of method FileSet::set_SetIncludes
 
-  } // end of class NAnt.Core.Attributes.TaskNameAttribute
-}
+    // method line 798
+    .method public hidebysig specialname 
+           instance default void set_IncludeElements (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12c8c
+	// 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
 
-.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_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_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
+	IL_0021:  brtrue IL_00e0
 
-    // method line 613
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+	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 799
+    .method public hidebysig specialname 
+           instance default void set_SetExcludes (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x10c6d
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x12d87
+	// 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 NAntFunctions::.ctor
+	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_0008:  ret 
+    } // end of method FileSet::set_SetExcludes
 
-    // method line 614
-    .method public hidebysig 
-           instance default string GetBaseDirectory ()  cil managed 
+    // method line 800
+    .method public hidebysig specialname 
+           instance default void set_ExcludeElements (class NAnt.Core.Types.FileSet/Exclude[] 'value')  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..
-
-        // Method begins at RVA 0x10c78
-	// Code size 19 (0x13)
-	.maxstack 1
+        // Method begins at RVA 0x12d94
+	// Code size 104 (0x68)
+	.maxstack 4
 	.locals init (
-		string	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:  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_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_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method NAntFunctions::GetBaseDirectory
+	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 615
-    .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly GetAssembly ()  cil managed 
+	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 801
+    .method public hidebysig specialname 
+           instance default void set_SetIncludesList (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  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 0x12e08
+	// 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_0008:  ret 
+    } // end of method FileSet::set_SetIncludesList
 
-        // Method begins at RVA 0x10c98
-	// Code size 50 (0x32)
-	.maxstack 2
+    // method line 802
+    .method public hidebysig specialname 
+           instance default void set_IncludesFiles (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12e14
+	// Code size 422 (0x1a6)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1)
+		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:  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_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_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
+	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_0030:  ldloc.1 
-	IL_0031:  ret 
-    } // end of method NAntFunctions::GetAssembly
+	IL_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0021:  brtrue IL_0197
 
-    // method line 616
-    .method public hidebysig 
-           instance default string ScanProbingPaths (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_0026:  nop 
+	IL_0027:  ldloc.0 
+	IL_0028:  callvirt instance bool class NAnt.Core.Types.FileSet/IncludesFile::get_AsIs()
+	IL_002d:  brfalse IL_00a5
 
-        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
+	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
 
-        // Method begins at RVA 0x10cd8
-	// Code size 92 (0x5c)
-	.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_0036
+	  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_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_0083:  leave IL_009f
 
-	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
+	} // 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_005a:  ldloc.3 
-	IL_005b:  ret 
-    } // end of method NAntFunctions::ScanProbingPaths
+	  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
 
-    // method line 617
-    .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_00a5:  ldloc.0 
+	IL_00a6:  callvirt instance bool class NAnt.Core.Types.FileSet/IncludesFile::get_FromPath()
+	IL_00ab:  brfalse IL_0125
 
-        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
+	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
 
-        // Method begins at RVA 0x10d40
-	// 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
+	  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_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_0103:  leave IL_011f
 
-	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
+	} // 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_005b:  ldloc.3 
-	IL_005c:  ret 
-    } // end of method NAntFunctions::ScanProbingPaths
+	  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
 
-  } // end of class NAnt.Core.Functions.NAntFunctions
-}
+	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
 
-.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_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_0179:  leave IL_0195
 
-    // method line 618
-    .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 0x10da9
-	// 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
+	} // 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
 
-    // method line 619
-    .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_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 begins at RVA 0x10db4
-	// Code size 25 (0x19)
-	.maxstack 1
+	IL_01a5:  ret 
+    } // end of method FileSet::set_IncludesFiles
+
+    // method line 803
+    .method public hidebysig specialname 
+           instance default void set_ExcludesFiles (class NAnt.Core.Types.FileSet/ExcludesFile[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12ff0
+	// Code size 163 (0xa3)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		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:  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_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_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectFunctions::GetName
+	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
 
-    // method line 620
-    .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_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0021:  brtrue IL_0094
 
-        // Method begins at RVA 0x10ddc
-	// 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_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_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_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_002e:  ldsfld string [mscorlib]System.String::Empty
-	IL_0033:  stloc.0 
-	IL_0034:  br IL_0039
+	  IL_0077:  leave IL_0093
 
-	IL_0039:  ldloc.0 
-	IL_003a:  ret 
-    } // end of method ProjectFunctions::GetBuildFileUri
+	} // 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 621
-    .method public hidebysig 
-           instance default string GetBuildFilePath ()  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..
+	  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 begins at RVA 0x10e24
-	// Code size 25 (0x19)
-	.maxstack 1
+	IL_00a2:  ret 
+    } // end of method FileSet::set_ExcludesFiles
+
+    // method line 804
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_MostRecentLastWriteTimeFile ()  cil managed 
+    {
+        // Method begins at RVA 0x130b0
+	// Code size 210 (0xd2)
+	.maxstack 5
 	.locals init (
-		string	V_0)
+		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:  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_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_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectFunctions::GetBuildFilePath
+	  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
 
-    // method line 622
-    .method public hidebysig 
-           instance default string GetDefaultTarget ()  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..
+	  IL_002a:  ldloc.3 
+	  IL_002b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_0030:  brfalse IL_0039
 
-        // Method begins at RVA 0x10e4c
-	// 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_DefaultTargetName()
-	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	  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_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectFunctions::GetDefaultTarget
+	  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
 
-    // method line 623
-    .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_0065:  ldloc.0 
+	  IL_0066:  brfalse IL_00a0
 
-        // Method begins at RVA 0x10e74
-	// Code size 20 (0x14)
-	.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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectFunctions::GetBaseDirectory
+	  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
 
-  } // end of class NAnt.Core.Functions.ProjectFunctions
-}
+	  IL_00ac:  leave IL_00c7
 
-.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..
+	} // 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_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 624
-    .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 0x10e94
-	// 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_00cf:  ldloc.s 5
+	IL_00d1:  ret 
+    } // end of method FileSet::get_MostRecentLastWriteTimeFile
 
-    // method line 625
-    .method public hidebysig 
-           instance default bool Exists (string name)  cil managed 
+    // method line 805
+    .method public virtual hidebysig newslot 
+           instance default object Clone ()  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 0x10ea0
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x131a0
+	// Code size 23 (0x17)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.FileSet	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:  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
+	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_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method TargetFunctions::Exists
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FileSet::Clone
 
-    // method line 626
-    .method public hidebysig 
-           instance default string GetCurrentTarget ()  cil managed 
+    // method line 806
+    .method family virtual hidebysig 
+           instance default void Initialize ()  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..
-
-        // Method begins at RVA 0x10ecc
-	// Code size 45 (0x2d)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Target	V_0,
-		string	V_1)
+        // Method begins at RVA 0x131c4
+	// Code size 395 (0x18b)
+	.maxstack 2
 	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_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_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_002b:  ldloc.1 
-	IL_002c:  ret 
-    } // end of method TargetFunctions::GetCurrentTarget
+	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 627
-    .method public hidebysig 
-           instance default bool HasExecuted (string name)  cil managed 
+    // method line 807
+    .method public virtual hidebysig 
+           instance default void Reset ()  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                                              ) // .
+        // Method begins at RVA 0x1335b
+	// 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 begins at RVA 0x10f08
-	// Code size 67 (0x43)
+    // method line 808
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x13368
+	// Code size 398 (0x18e)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Target	V_0,
-		bool	V_1)
+		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:  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_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:  brtrue IL_0035
+	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_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_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_0041:  ldloc.1 
-	IL_0042:  ret 
-    } // end of method TargetFunctions::HasExecuted
+	  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
 
-  } // end of class NAnt.Core.Functions.TargetFunctions
-}
+	  IL_00f1:  leave IL_010a
 
-.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..
+	} // 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_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
 
-    // method line 628
-    .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 0x10f57
-	// 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_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
 
-    // method line 629
-    .method public hidebysig 
-           instance default bool Exists (string name)  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_0161:  leave IL_017d
 
-        // Method begins at RVA 0x10f64
-	// Code size 20 (0x14)
-	.maxstack 2
-	.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
+	} // 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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskFunctions::Exists
+	  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
 
-    // method line 630
+	IL_018b:  ldloc.s 7
+	IL_018d:  ret 
+    } // end of method FileSet::ToString
+
+    // method line 809
     .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly GetAssembly (string name)  cil managed 
+           instance default void AddPatternSet (class NAnt.Core.Types.PatternSet patternSet)  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                                              ) // .
+        .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 0x10f84
-	// Code size 61 (0x3d)
-	.maxstack 3
+        // Method begins at RVA 0x13520
+	// 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 810
+    .method public virtual hidebysig newslot 
+           instance default void Scan ()  cil managed 
+    {
+        // Method begins at RVA 0x13548
+	// Code size 369 (0x171)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.TaskBuilder	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1)
+		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 
-	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
+	.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_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_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_003b:  ldloc.1 
-	IL_003c:  ret 
-    } // end of method TaskFunctions::GetAssembly
+	    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
 
-  } // end of class NAnt.Core.Functions.TaskFunctions
-}
+	    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
 
-.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_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
 
-    // method line 631
-    .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 0x10fcd
-	// 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_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
 
-    // method line 632
-    .method public hidebysig 
-           instance default bool Exists (string name)  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_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
 
-        // Method begins at RVA 0x10fd8
-	// 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:  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_00d5:  leave IL_00f1
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method PropertyFunctions::Exists
+	  } // 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
 
-    // method line 633
-    .method public hidebysig 
-           instance default bool IsReadOnly (string name)  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..
+	    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
 
-        // Method begins at RVA 0x11000
-	// Code size 76 (0x4c)
-	.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:  brtrue IL_0033
+	} // 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_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_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_004a:  ldloc.0 
-	IL_004b:  ret 
-    } // end of method PropertyFunctions::IsReadOnly
+	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 634
-    .method public hidebysig 
-           instance default bool IsDynamic (string name)  cil managed 
+    // method line 811
+    .method family hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.FileSet clone)  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 0x136f0
+	// 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
 
-        // Method begins at RVA 0x11058
-	// Code size 76 (0x4c)
-	.maxstack 3
+	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 812
+    .method assembly hidebysig 
+           instance default string Find (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x13784
+	// Code size 133 (0x85)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		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:  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_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_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_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_004a:  ldloc.0 
-	IL_004b:  ret 
-    } // end of method PropertyFunctions::IsDynamic
+	  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
 
-  } // end of class NAnt.Core.Functions.PropertyFunctions
-}
+	  IL_004a:  nop 
+	  IL_004b:  ldloc.2 
+	  IL_004c:  stloc.s 4
+	  IL_004e:  leave IL_0082
 
-.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_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
 
-    // method line 635
-    .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 0x110b0
-	// 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
+	} // 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
 
-    // method line 636
-    .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_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
 
-        // Method begins at RVA 0x110bc
-	// Code size 20 (0x14)
+	IL_0082:  ldloc.s 4
+	IL_0084:  ret 
+    } // end of method FileSet::Find
+
+    // method line 813
+    .method famorassem hidebysig specialname 
+           instance default bool get_IsEverythingIncluded ()  cil managed 
+    {
+        // Method begins at RVA 0x13828
+	// Code size 39 (0x27)
 	.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_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0007:  brtrue IL_0014
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PlatformFunctions::GetName
+	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
 
-    // method line 637
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_IsEverythingIncluded
+
+    // method line 814
     .method public static hidebysig 
-           default bool IsWin32 ()  cil managed 
+           default string FindMoreRecentLastWriteTime (string fileName, valuetype [mscorlib]System.DateTime targetLastWriteTime)  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 0x110dc
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x1385c
+	// Code size 30 (0x1e)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformFunctions::IsWin32
+	IL_001c:  ldloc.1 
+	IL_001d:  ret 
+    } // end of method FileSet::FindMoreRecentLastWriteTime
 
-    // method line 638
+    // method line 815
     .method public static hidebysig 
-           default bool IsWindows ()  cil managed 
+           default string FindMoreRecentLastWriteTime (class [System]System.Collections.Specialized.StringCollection fileNames, valuetype [mscorlib]System.DateTime targetLastWriteTime)  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 0x110f8
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x13888
+	// Code size 198 (0xc6)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		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:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformFunctions::IsWindows
+	  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
 
-    // method line 639
-    .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_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
 
-        // Method begins at RVA 0x11114
-	// 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_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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformFunctions::IsUnix
+	  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
 
-  } // end of class NAnt.Core.Functions.PlatformFunctions
-}
+	  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
 
-.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_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
 
-    // method line 640
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+	} // 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 816
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1112e
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x1396c
+	// Code size 21 (0x15)
 	.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_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
 
-    // method line 641
-    .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
+	.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                                           ) // ..
 
-        // Method begins at RVA 0x1113c
-	// 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
+		.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..
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DnsFunctions::GetHostName
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Functions.DnsFunctions
-}
+		.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..
 
-.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..
+		.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..
 
-    // method line 642
+		.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 817
     .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 0x11156
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13982
+	// Code size 14 (0xe)
 	.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_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 643
-    .method public static hidebysig 
-           default string GetFolderPath (valuetype [mscorlib]System.Environment/SpecialFolder folder)  cil managed 
+    // method line 818
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Pattern ()  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..
-
-        // Method begins at RVA 0x11164
+        // Method begins at RVA 0x13994
 	// 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_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 EnvironmentFunctions::GetFolderPath
+    } // end of method Exclude::get_Pattern
 
-    // method line 644
-    .method public static hidebysig 
-           default string GetMachineName ()  cil managed 
+    // method line 819
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Pattern (string 'value')  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..
-
-        // Method begins at RVA 0x11180
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x139af
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.Environment::get_MachineName()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetMachineName
+	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 645
-    .method public static hidebysig 
-           default class [mscorlib]System.OperatingSystem GetOperatingSystem ()  cil managed 
+    // method line 820
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_IfDefined ()  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 0x1119c
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x139bc
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.OperatingSystem	V_0)
+		bool	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_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetOperatingSystem
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Exclude::get_IfDefined
 
-    // method line 646
-    .method public static hidebysig 
-           default string GetUserName ()  cil managed 
+    // method line 821
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_IfDefined (bool 'value')  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                                           ) // ..
-
-        // Method begins at RVA 0x111b8
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x139d7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	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 EnvironmentFunctions::GetUserName
+	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 647
-    .method public static hidebysig 
-           default string GetVariable (string name)  cil managed 
+    // method line 822
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_UnlessDefined ()  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 0x111d4
-	// Code size 54 (0x36)
-	.maxstack 3
+        // Method begins at RVA 0x139e4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	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_0002:  ldfld bool NAnt.Core.Types.FileSet/Exclude::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method EnvironmentFunctions::GetVariable
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Exclude::get_UnlessDefined
 
-    // method line 648
-    .method public static hidebysig 
-           default bool VariableExists (string name)  cil managed 
+    // method line 823
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_UnlessDefined (bool 'value')  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..
-
-        // Method begins at RVA 0x11218
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x139ff
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EnvironmentFunctions::VariableExists
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Exclude::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Exclude::set_UnlessDefined
 
-    // method line 649
-    .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..
+	.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.
 
-        // Method begins at RVA 0x1123c
-	// 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
+		.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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetVersion
+		.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 bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-    // method line 650
-    .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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x11258
-	// 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
+		.get instance default bool NAnt.Core.Types.FileSet/Exclude::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/Exclude::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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::NewLine
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Functions.EnvironmentFunctions
-}
+		.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
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit DirectoryFunctions
-  	extends NAnt.Core.FunctionSetBase
+  .class nested public auto ansi beforefieldinit Include
+  	extends NAnt.Core.Types.FileSet/Exclude
   {
-    .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..
-
+    .field  private  bool _asIs
+    .field  private  bool _fromPath
 
-    // method line 651
+    // method line 824
     .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 0x11272
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13a09
+	// 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
-
-    // method line 652
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  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 0x11280
-	// 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_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_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method DirectoryFunctions::GetCreationTime
+	IL_0001:  call instance void class NAnt.Core.Types.FileSet/Exclude::'.ctor'()
+	IL_0006:  ret 
+    } // end of method Include::.ctor
 
-    // method line 653
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  cil managed 
+    // method line 825
+    .method public hidebysig specialname 
+           instance default bool get_AsIs ()  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 0x112cc
-	// Code size 62 (0x3e)
-	.maxstack 3
+        // Method begins at RVA 0x13a14
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	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:  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_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_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_asIs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method DirectoryFunctions::GetLastWriteTime
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_AsIs
 
-    // method line 654
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetLastAccessTime (string path)  cil managed 
+    // method line 826
+    .method public hidebysig specialname 
+           instance default void set_AsIs (bool 'value')  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..
-
-        // Method begins at RVA 0x11318
-	// Code size 62 (0x3e)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
+        // Method begins at RVA 0x13a2f
+	// Code size 9 (0x9)
+	.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:  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_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_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method DirectoryFunctions::GetLastAccessTime
+	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 655
-    .method public static hidebysig 
-           default string GetCurrentDirectory ()  cil managed 
+    // method line 827
+    .method public hidebysig specialname 
+           instance default bool get_FromPath ()  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..
-
-        // Method begins at RVA 0x11364
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x13a3c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_fromPath
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DirectoryFunctions::GetCurrentDirectory
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_FromPath
 
-    // method line 656
-    .method public hidebysig 
-           instance default string GetParentDirectory (string path)  cil managed 
+    // method line 828
+    .method public hidebysig specialname 
+           instance default void set_FromPath (bool 'value')  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 0x11380
-	// Code size 56 (0x38)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1,
-		string	V_2)
+        // Method begins at RVA 0x13a57
+	// Code size 9 (0x9)
+	.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:  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_002b:  ldsfld string [mscorlib]System.String::Empty
-	IL_0030:  stloc.2 
-	IL_0031:  br IL_0036
-
-	IL_0036:  ldloc.2 
-	IL_0037:  ret 
-    } // end of method DirectoryFunctions::GetParentDirectory
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Include::_fromPath
+	IL_0008:  ret 
+    } // end of method Include::set_FromPath
 
-    // method line 657
-    .method public hidebysig 
-           instance default string GetDirectoryRoot (string path)  cil managed 
+    // method line 829
+    .method public virtual hidebysig specialname 
+           instance default string get_Pattern ()  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..
-
-        // Method begins at RVA 0x113c4
-	// Code size 33 (0x21)
-	.maxstack 2
+        // Method begins at RVA 0x13a64
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	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:  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_0002:  call instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method DirectoryFunctions::GetDirectoryRoot
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_Pattern
 
-    // method line 658
-    .method public hidebysig 
-           instance default bool Exists (string path)  cil managed 
+    // method line 830
+    .method public virtual hidebysig specialname 
+           instance default void set_Pattern (string 'value')  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 0x113f4
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x13a7f
+	// Code size 9 (0x9)
+	.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:  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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method DirectoryFunctions::Exists
+	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 659
-    .method public hidebysig 
-           instance default string GetName (string path)  cil managed 
+    // method line 831
+    .method public virtual hidebysig specialname 
+           instance default bool get_IfDefined ()  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 0x1141c
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x13a8c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DirectoryFunctions::GetName
-
-  } // end of class NAnt.Core.Functions.DirectoryFunctions
-}
-
-.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..
+	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
 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_IfDefined
 
-    // method line 660
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 832
+    .method public virtual hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1143c
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13aa7
+	// 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 FileVersionInfoFunctions::.ctor
-
-    // method line 661
-    .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 0x11448
-	// 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
+	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 662
-    .method public static hidebysig 
-           default string GetCompanyName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    // method line 833
+    .method public virtual hidebysig specialname 
+           instance default bool get_UnlessDefined ()  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 0x11470
+        // Method begins at RVA 0x13ab4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [System]System.Diagnostics.FileVersionInfo::get_CompanyName()
+	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileVersionInfoFunctions::GetCompanyName
+    } // end of method Include::get_UnlessDefined
 
-    // method line 663
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetFileVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    // method line 834
+    .method public virtual hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  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 0x1148c
-	// Code size 38 (0x26)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Version	V_0)
+        // Method begins at RVA 0x13acf
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_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_0024:  ldloc.0 
-	IL_0025:  ret 
-    } // end of method FileVersionInfoFunctions::GetFileVersion
+	.property instance bool AsIs ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
 
-    // method line 664
-    .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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x114c0
-	// 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
+		.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FileVersionInfoFunctions::GetProductName
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 665
-    .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..
+		.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.
 
-        // Method begins at RVA 0x114dc
-	// 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
+		.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_0024:  ldloc.0 
-	IL_0025:  ret 
-    } // end of method FileVersionInfoFunctions::GetProductVersion
+		.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..
 
-  } // end of class NAnt.Core.Functions.FileVersionInfoFunctions
-}
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-.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..
+		.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 ) // ....
 
-    // method line 666
+		.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 835
     .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 0x1150e
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13ad9
+	// Code size 14 (0xe)
 	.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_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 667
-    .method public static hidebysig 
-           default float64 Parse (string s)  cil managed 
+    // method line 836
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Patterns ()  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 0x1151c
-	// Code size 20 (0x14)
-	.maxstack 2
+        // Method begins at RVA 0x13ae8
+	// Code size 191 (0xbf)
+	.maxstack 3
 	.locals init (
-		float64	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:  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_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:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DoubleConversionFunctions::Parse
+	IL_0012:  nop 
+	IL_0013:  ldloc.0 
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_00bd
 
-    // method line 668
-    .method public static hidebysig 
-           default string ToString (float64 '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..
+	.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
 
-        // Method begins at RVA 0x1153c
-	// 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 float64::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	    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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DoubleConversionFunctions::ToString
+	    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
 
-  } // end of class NAnt.Core.Functions.DoubleConversionFunctions
-}
+	    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
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit VersionFunctions
-  	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 07 56 65 72 73 69   // ...version.Versi
-		6F 6E 00 00                                     ) // on..
+	    IL_0078:  nop 
+	    IL_0079:  leave IL_008b
 
+	  } // end .try 0
+	  finally  { // 0
+	    IL_007e:  ldloc.2 
+	    IL_007f:  brfalse IL_008a
 
-    // method line 669
-    .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 0x1155d
-	// 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 VersionFunctions::.ctor
+	    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
 
-    // method line 670
-    .method public static hidebysig 
-           default int32 GetMajor (class [mscorlib]System.Version version)  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..
+	} // 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 begins at RVA 0x11568
+    // method line 837
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x13bd0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VersionFunctions::GetMajor
+    } // end of method ExcludesFile::get_IfDefined
 
-    // method line 671
-    .method public static hidebysig 
-           default int32 GetMinor (class [mscorlib]System.Version version)  cil managed 
+    // method line 838
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_IfDefined (bool '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 0x13beb
+	// 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 begins at RVA 0x11584
+    // method line 839
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x13bf8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
+	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 VersionFunctions::GetMinor
+    } // end of method ExcludesFile::get_UnlessDefined
 
-    // method line 672
-    .method public static hidebysig 
-           default int32 GetBuild (class [mscorlib]System.Version version)  cil managed 
+    // method line 840
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_UnlessDefined (bool 'value')  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 0x13c13
+	// 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 begins at RVA 0x115a0
+    // method line 841
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_PatternFile ()  cil managed 
+    {
+        // Method begins at RVA 0x13c20
 	// 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:  callvirt instance int32 class [mscorlib]System.Version::get_Build()
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::_patternFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VersionFunctions::GetBuild
+    } // end of method ExcludesFile::get_PatternFile
 
-    // method line 673
-    .method public static hidebysig 
-           default int32 GetRevision (class [mscorlib]System.Version version)  cil managed 
+    // method line 842
+    .method public hidebysig specialname 
+           instance default void set_PatternFile (class [mscorlib]System.IO.FileInfo '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 0x115bc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x13c3b
+	// Code size 9 (0x9)
+	.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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VersionFunctions::GetRevision
+	.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..
 
-  } // end of class NAnt.Core.Functions.VersionFunctions
-}
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-.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..
+		.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..
+
+		.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.
 
-    // method line 674
+		.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 843
     .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 0x115d7
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13c45
+	// 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 VersionConversionFunctions::.ctor
+	IL_0001:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IncludesFile::.ctor
 
-    // method line 675
-    .method public static hidebysig 
-           default class [mscorlib]System.Version Parse (string version)  cil managed 
+    // method line 844
+    .method public hidebysig specialname 
+           instance default bool get_AsIs ()  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 0x115e4
+        // Method begins at RVA 0x13c50
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/IncludesFile::_asIs
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VersionConversionFunctions::Parse
+    } // end of method IncludesFile::get_AsIs
 
-    // method line 676
-    .method public static hidebysig 
-           default string ToString (class [mscorlib]System.Version 'value')  cil managed 
+    // method line 845
+    .method public hidebysig specialname 
+           instance default void set_AsIs (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..
+        // Method begins at RVA 0x13c6b
+	// 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 begins at RVA 0x11600
+    // method line 846
+    .method public hidebysig specialname 
+           instance default bool get_FromPath ()  cil managed 
+    {
+        // Method begins at RVA 0x13c78
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string object::ToString()
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/IncludesFile::_fromPath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VersionConversionFunctions::ToString
-
-  } // end of class NAnt.Core.Functions.VersionConversionFunctions
-}
-
-.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..
-
+    } // end of method IncludesFile::get_FromPath
 
-    // method line 677
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 847
+    .method public hidebysig specialname 
+           instance default void set_FromPath (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1161b
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13c93
+	// 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 FrameworkFunctions::.ctor
+	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
 
-    // method line 678
-    .method public hidebysig 
-           instance default bool Exists (string framework)  cil managed 
+    // method line 848
+    .method public virtual hidebysig specialname 
+           instance default bool get_IfDefined ()  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 0x11628
-	// Code size 42 (0x2a)
-	.maxstack 2
+        // Method begins at RVA 0x13ca0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	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.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_0002:  call instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0028:  ldloc.1 
-	IL_0029:  ret 
-    } // end of method FrameworkFunctions::Exists
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludesFile::get_IfDefined
 
-    // method line 679
-    .method public hidebysig 
-           instance default bool SdkExists (string framework)  cil managed 
+    // method line 849
+    .method public virtual hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  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 0x11660
-	// Code size 29 (0x1d)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		bool	V_1)
+        // Method begins at RVA 0x13cbb
+	// Code size 9 (0x9)
+	.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:  ldnull 
-	IL_0010:  ceq 
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ceq 
-	IL_0015:  stloc.1 
-	IL_0016:  br IL_001b
-
-	IL_001b:  ldloc.1 
-	IL_001c:  ret 
-    } // end of method FrameworkFunctions::SdkExists
+	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 680
-    .method public hidebysig 
-           instance default string GetTargetFramework ()  cil managed 
+    // method line 850
+    .method public virtual hidebysig specialname 
+           instance default bool get_UnlessDefined ()  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 begins at RVA 0x1168c
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x13cc8
+	// Code size 15 (0xf)
 	.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 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_0002:  call instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetTargetFramework
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludesFile::get_UnlessDefined
 
-    // method line 681
-    .method public hidebysig 
-           instance default string GetRuntimeFramework ()  cil managed 
+    // method line 851
+    .method public virtual hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  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 0x116b4
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x13ce3
+	// Code size 9 (0x9)
+	.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_RuntimeFramework()
-	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	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
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetRuntimeFramework
+	.property instance bool AsIs ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
 
-    // method line 682
-    .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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x116dc
-	// 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
+		.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 ()
+	{
+		.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_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetFamily
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 683
-    .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..
+		.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 bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-        // Method begins at RVA 0x11700
-	// 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
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetVersion
+		.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 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 684
-    .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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x11728
-	// 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
+		.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 IncludesFile
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetVersion
+  } // end of class NAnt.Core.Types.FileSet
+}
 
-    // method line 685
-    .method public hidebysig 
-           instance default string GetDescription ()  cil managed 
+.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 852
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  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..
+        // Method begins at RVA 0x13ced
+	// 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 begins at RVA 0x1174c
-	// Code size 25 (0x19)
+    // method line 853
+    .method public hidebysig specialname 
+           instance default string get_ParameterName ()  cil managed 
+    {
+        // Method begins at RVA 0x13d20
+	// Code size 15 (0xf)
 	.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_0002:  ldfld string NAnt.Core.Types.XsltParameter::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetDescription
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XsltParameter::get_ParameterName
 
-    // method line 686
-    .method public hidebysig 
-           instance default string GetDescription (string framework)  cil managed 
+    // method line 854
+    .method public hidebysig specialname 
+           instance default void set_ParameterName (string 'value')  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..
-
-        // Method begins at RVA 0x11774
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
+        // Method begins at RVA 0x13d3b
+	// Code size 9 (0x9)
+	.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 string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetDescription
+	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_name
+	IL_0008:  ret 
+    } // end of method XsltParameter::set_ParameterName
 
-    // method line 687
-    .method public hidebysig 
-           instance default class [mscorlib]System.Version GetClrVersion ()  cil managed 
+    // method line 855
+    .method public hidebysig specialname 
+           instance default string get_NamespaceUri ()  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 0x11798
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x13d48
+	// 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 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_0002:  ldfld string NAnt.Core.Types.XsltParameter::_namespaceUri
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetClrVersion
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XsltParameter::get_NamespaceUri
 
-    // method line 688
-    .method public hidebysig 
-           instance default class [mscorlib]System.Version GetClrVersion (string framework)  cil managed 
+    // method line 856
+    .method public hidebysig specialname 
+           instance default void set_NamespaceUri (string 'value')  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 0x117c0
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class [mscorlib]System.Version	V_1)
+        // Method begins at RVA 0x13d63
+	// Code size 9 (0x9)
+	.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.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetClrVersion
+	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_namespaceUri
+	IL_0008:  ret 
+    } // end of method XsltParameter::set_NamespaceUri
 
-    // method line 689
-    .method public hidebysig 
-           instance default string GetFrameworkDirectory (string framework)  cil managed 
+    // method line 857
+    .method public hidebysig specialname 
+           instance default string get_Value ()  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..
-
-        // Method begins at RVA 0x117e4
-	// Code size 28 (0x1c)
-	.maxstack 2
+        // Method begins at RVA 0x13d70
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
+		string	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:  ldfld string NAnt.Core.Types.XsltParameter::_value
+	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 XsltParameter::get_Value
 
-    // method line 690
-    .method public hidebysig 
-           instance default string GetAssemblyDirectory (string framework)  cil managed 
+    // method line 858
+    .method public hidebysig specialname 
+           instance default void set_Value (string 'value')  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..
-
-        // Method begins at RVA 0x1180c
-	// Code size 28 (0x1c)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
+        // Method begins at RVA 0x13d8b
+	// Code size 9 (0x9)
+	.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_FrameworkAssemblyDirectory()
-	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_001a
-
-	IL_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method FrameworkFunctions::GetAssemblyDirectory
+	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_value
+	IL_0008:  ret 
+    } // end of method XsltParameter::set_Value
 
-    // method line 691
-    .method public hidebysig 
-           instance default string GetSdkDirectory (string framework)  cil managed 
+    // method line 859
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  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 0x11834
-	// Code size 46 (0x2e)
-	.maxstack 2
+        // Method begins at RVA 0x13d98
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1,
-		string	V_2)
+		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_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_0002:  ldfld bool NAnt.Core.Types.XsltParameter::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_002c:  ldloc.2 
-	IL_002d:  ret 
-    } // end of method FrameworkFunctions::GetSdkDirectory
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XsltParameter::get_IfDefined
 
-    // method line 692
-    .method public hidebysig 
-           instance default string GetToolPath (string tool)  cil managed 
+    // method line 860
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  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 0x11870
-	// Code size 57 (0x39)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1)
+        // Method begins at RVA 0x13db3
+	// Code size 9 (0x9)
+	.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_0038:  ret 
-    } // end of method FrameworkFunctions::GetToolPath
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_ifDefined
+	IL_0008:  ret 
+    } // end of method XsltParameter::set_IfDefined
 
-    // method line 693
-    .method public hidebysig 
-           instance default string GetRuntimeEngine (string framework)  cil managed 
+    // method line 861
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  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 0x118b8
-	// Code size 23 (0x17)
-	.maxstack 2
+        // Method begins at RVA 0x13dc0
+	// 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 string class NAnt.Core.FrameworkInfo::get_RuntimeEngine()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0002:  ldfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetRuntimeEngine
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XsltParameter::get_UnlessDefined
 
-    // method line 694
-    .method public hidebysig 
-           instance default string GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
+    // method line 862
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  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 begins at RVA 0x118dc
-	// 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)
+        // Method begins at RVA 0x13ddb
+	// Code size 9 (0x9)
+	.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:  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_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
+	IL_0008:  ret 
+    } // end of method XsltParameter::set_UnlessDefined
 
-	IL_0016:  ldsfld string [mscorlib]System.String::Empty
-	IL_001b:  stloc.1 
-	IL_001c:  br IL_006b
+	.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.
 
-	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
+		.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_002e:  nop 
-	IL_002f:  ldloc.3 
-	IL_0030:  ldc.i4.0 
-	IL_0031:  ble IL_0042
+		.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                                              ) // .
 
-	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
+		.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.
 
-	IL_005f:  ldloc.2 
-	IL_0060:  callvirt instance string object::ToString()
-	IL_0065:  stloc.1 
-	IL_0066:  br IL_006b
+		.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..
 
-	IL_006b:  ldloc.1 
-	IL_006c:  ret 
-    } // end of method FrameworkFunctions::GetFrameworks
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 695
-    .method private hidebysig 
-           instance default class NAnt.Core.FrameworkInfo GetFramework (string framework)  cil managed 
-    {
-        // Method begins at RVA 0x11958
-	// 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
+		.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..
 
-	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
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	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
+		.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
+}
 
-	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
+.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..
 
-	IL_0070:  ldloc.0 
-	IL_0071:  ret 
-    } // end of method FrameworkFunctions::GetFramework
 
-  } // end of class NAnt.Core.Functions.FrameworkFunctions
+    // method line 863
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x13de5
+	// 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 864
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
+    {
+        // Method begins at RVA 0x13dee
+	// 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.Functions
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit AssemblyNameFunctions
-  	extends NAnt.Core.FunctionSetBase
+  .class public auto ansi beforefieldinit Formatter
+  	extends NAnt.Core.Element
   {
-    .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..
+    .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 _property
+    .field  private  string _pattern
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 696
+    // method line 865
     .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 0x119d6
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13df8
+	// Code size 14 (0xe)
 	.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_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 697
-    .method public static hidebysig 
-           default string GetCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 866
+    .method public hidebysig specialname 
+           instance default string get_Property ()  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 0x119e4
+        // Method begins at RVA 0x13e08
 	// 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_CodeBase()
+	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 AssemblyNameFunctions::GetCodeBase
+    } // end of method Formatter::get_Property
 
-    // method line 698
-    .method public static hidebysig 
-           default string GetEscapedCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 867
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  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 0x11a00
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x13e23
+	// Code size 9 (0x9)
+	.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyNameFunctions::GetEscapedCodeBase
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Types.Formatter::_property
+	IL_0008:  ret 
+    } // end of method Formatter::set_Property
 
-    // method line 699
-    .method public static hidebysig 
-           default string GetFullName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 868
+    .method public hidebysig specialname 
+           instance default string get_Pattern ()  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 0x11a1c
+        // Method begins at RVA 0x13e30
 	// 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_FullName()
+	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 AssemblyNameFunctions::GetFullName
+    } // end of method Formatter::get_Pattern
 
-    // method line 700
-    .method public static hidebysig 
-           default string GetName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 869
+    .method public hidebysig specialname 
+           instance default void set_Pattern (string 'value')  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 0x13e4b
+	// Code size 9 (0x9)
+	.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
 
-        // Method begins at RVA 0x11a38
+    // method line 870
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x13e58
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	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 AssemblyNameFunctions::GetName
+    } // end of method Formatter::get_IfDefined
 
-    // method line 701
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 871
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  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 0x13e73
+	// 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_0008:  ret 
+    } // end of method Formatter::set_IfDefined
 
-        // Method begins at RVA 0x11a54
+    // method line 872
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x13e80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		bool	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_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 AssemblyNameFunctions::GetVersion
+    } // end of method Formatter::get_UnlessDefined
 
-    // method line 702
-    .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.AssemblyName GetAssemblyName (string assemblyFile)  cil managed 
+    // method line 873
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  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 0x11a70
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Reflection.AssemblyName	V_0)
+        // Method begins at RVA 0x13e9b
+	// Code size 9 (0x9)
+	.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:  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
-{
-  .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_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.Formatter::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Formatter::set_UnlessDefined
 
+	.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.
 
-    // method line 703
-    .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 0x11a96
-	// 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
+		.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 704
-    .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..
+		.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 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 begins at RVA 0x11aa4
-	// 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
+		.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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method Int64ConversionFunctions::Parse
+		.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 IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-    // method line 705
-    .method public static hidebysig 
-           default string ToString (int64 '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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x11ac4
-	// 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 int64::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+		.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 UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method Int64ConversionFunctions::ToString
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Functions.Int64ConversionFunctions
+		.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.Types.Formatter
 }
 
-.namespace NAnt.Core.Functions
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit StringFunctions
-  	extends NAnt.Core.FunctionSetBase
+  .class public auto ansi serializable beforefieldinit XmlNamespaceCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .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                                           ) // ..
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 706
+    // method line 874
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary propDict)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x11ae5
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x13ea5
+	// 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 StringFunctions::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method XmlNamespaceCollection::.ctor
 
-    // method line 707
-    .method public static hidebysig 
-           default int32 GetLength (string s)  cil managed 
+    // method line 875
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection 'value')  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 0x11af0
+        // Method begins at RVA 0x13eae
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 string::get_Length()
-	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.Types.XmlNamespaceCollection::AddRange(class NAnt.Core.Types.XmlNamespaceCollection)
 	IL_000e:  ret 
-    } // end of method StringFunctions::GetLength
+    } // end of method XmlNamespaceCollection::.ctor
 
-    // method line 708
-    .method public static hidebysig 
-           default string Substring (string str, int32 startIndex, int32 length)  cil managed 
+    // method line 876
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespace[] 'value')  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 0x11b0c
-	// 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.2 
-	IL_0004:  callvirt instance string string::Substring(int32, int32)
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
-
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method StringFunctions::Substring
+        // Method begins at RVA 0x13ebe
+	// 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 709
-    .method public static hidebysig 
-           default bool StartsWith (string s1, string s2)  cil managed 
+    // method line 877
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XmlNamespace get_Item (int32 index)  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..
-
-        // Method begins at RVA 0x11b2c
+        // Method begins at RVA 0x13ed0
 	// Code size 26 (0x1a)
-	.maxstack 3
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.XmlNamespace	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_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_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method StringFunctions::StartsWith
+    } // end of method XmlNamespaceCollection::get_Item
 
-    // method line 710
-    .method public static hidebysig 
-           default bool EndsWith (string s1, string s2)  cil managed 
+    // method line 878
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.XmlNamespace 'value')  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 0x11b54
-	// Code size 26 (0x1a)
-	.maxstack 3
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x13ef6
+	// Code size 15 (0xf)
+	.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:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsSuffix(string, string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method StringFunctions::EndsWith
+	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 711
-    .method public static hidebysig 
-           default string ToLower (string s)  cil managed 
+    // method line 879
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XmlNamespace get_Item (string 'value')  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 0x11b7c
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x13f08
+	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		string	V_0)
+		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:  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_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method StringFunctions::ToLower
+	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 712
-    .method public static hidebysig 
-           default string ToUpper (string s)  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..
+	  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 begins at RVA 0x11b9c
-	// Code size 20 (0x14)
-	.maxstack 2
-	.locals init (
-		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:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method StringFunctions::ToUpper
+	  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 713
-    .method public static hidebysig 
-           default string Replace (string str, string oldValue, string newValue)  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..
+	  IL_004c:  leave IL_0065
 
-        // Method begins at RVA 0x11bbc
-	// 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.2 
-	IL_0004:  callvirt instance string string::Replace(string, string)
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
+	} // 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_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method StringFunctions::Replace
+	  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 line 714
-    .method public static hidebysig 
-           default bool Contains (string source, string 'value')  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..
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method XmlNamespaceCollection::get_Item
 
-        // Method begins at RVA 0x11bdc
-	// Code size 33 (0x21)
-	.maxstack 4
+    // method line 880
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    {
+        // Method begins at RVA 0x13f94
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		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::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:  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_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method StringFunctions::Contains
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XmlNamespaceCollection::Add
 
-    // method line 715
-    .method public static hidebysig 
-           default int32 IndexOf (string source, string 'value')  cil managed 
+    // method line 881
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XmlNamespace[] items)  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 0x11c0c
-	// Code size 27 (0x1b)
-	.maxstack 4
+        // Method begins at RVA 0x13fb8
+	// Code size 34 (0x22)
+	.maxstack 3
 	.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::IndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringFunctions::IndexOf
+	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
 
-    // method line 716
-    .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                                           ) // ..
+	IL_0021:  ret 
+    } // end of method XmlNamespaceCollection::AddRange
 
-        // Method begins at RVA 0x11c34
-	// Code size 27 (0x1b)
-	.maxstack 4
+    // method line 882
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XmlNamespaceCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x13fe8
+	// Code size 41 (0x29)
+	.maxstack 3
 	.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
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringFunctions::LastIndexOf
+	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
 
-    // method line 717
-    .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_0028:  ret 
+    } // end of method XmlNamespaceCollection::AddRange
 
-        // Method begins at RVA 0x11c5c
-	// Code size 23 (0x17)
-	.maxstack 4
+    // method line 883
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    {
+        // Method begins at RVA 0x14020
+	// Code size 21 (0x15)
+	.maxstack 2
 	.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:  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_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_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method StringFunctions::PadLeft
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XmlNamespaceCollection::Contains
 
-    // method line 718
-    .method public static hidebysig 
-           default string PadRight (string s, int32 totalWidth, string paddingChar)  cil managed 
+    // method line 884
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
     {
-        .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 0x11c80
-	// Code size 23 (0x17)
-	.maxstack 4
+        // Method begins at RVA 0x14044
+	// Code size 22 (0x16)
+	.maxstack 2
 	.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:  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_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_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method StringFunctions::PadRight
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method XmlNamespaceCollection::Contains
 
-    // method line 719
-    .method public static hidebysig 
-           default string Trim (string s)  cil managed 
+    // method line 885
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.XmlNamespace[] 'array', int32 index)  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 0x11ca4
+        // Method begins at RVA 0x14066
 	// 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 string::Trim()
-	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 StringFunctions::Trim
+    } // end of method XmlNamespaceCollection::CopyTo
 
-    // method line 720
-    .method public static hidebysig 
-           default string TrimStart (string s)  cil managed 
+    // method line 886
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.XmlNamespace item)  cil managed 
     {
-        .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 0x11cc0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x14078
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string string::TrimStart()
-	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 StringFunctions::TrimStart
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XmlNamespaceCollection::IndexOf
 
-    // method line 721
-    .method public static hidebysig 
-           default string TrimEnd (string s)  cil managed 
+    // method line 887
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.XmlNamespace item)  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 0x11cdc
+        // Method begins at RVA 0x14099
 	// 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 string::TrimEnd()
-	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 StringFunctions::TrimEnd
-
-  } // end of class NAnt.Core.Functions.StringFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit PkgConfigFunctions
-  	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..
-
-
-    // method line 722
-    .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 0x11cf7
-	// 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 PkgConfigFunctions::.ctor
+    } // end of method XmlNamespaceCollection::Insert
 
-    // method line 723
+    // method line 888
     .method public hidebysig 
-           instance default string GetVariable (string package, string name)  cil managed 
+           instance default class NAnt.Core.Types.XmlNamespaceEnumerator GetEnumerator ()  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 0x11d04
-	// Code size 94 (0x5e)
-	.maxstack 7
+        // Method begins at RVA 0x140ac
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.XmlNamespaceEnumerator	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 "--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_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_005c:  ldloc.0 
-	IL_005d:  ret 
-    } // end of method PkgConfigFunctions::GetVariable
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XmlNamespaceCollection::GetEnumerator
 
-    // method line 724
+    // method line 889
     .method public hidebysig 
-           instance default string GetLinkFlags (string package)  cil managed 
+           instance default void Remove (class NAnt.Core.Types.XmlNamespace item)  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..
-
-        // Method begins at RVA 0x11d70
-	// Code size 83 (0x53)
-	.maxstack 5
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x140c7
+	// Code size 14 (0xe)
+	.maxstack 8
 	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_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
 
-	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
+	.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
+}
 
-	IL_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetLinkFlags
+.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 725
-    .method public hidebysig 
-           instance default string GetCompileFlags (string package)  cil managed 
+    // method line 890
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection arguments)  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..
-
-        // Method begins at RVA 0x11dd0
-	// Code size 83 (0x53)
-	.maxstack 5
+        // Method begins at RVA 0x140d8
+	// Code size 22 (0x16)
+	.maxstack 2
 	.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 "--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_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetCompileFlags
+		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 726
-    .method public hidebysig 
-           instance default string GetModVersion (string package)  cil managed 
+    // method line 891
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XmlNamespace get_Current ()  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
-		6F 6E 00 00                                     ) // on..
-
-        // Method begins at RVA 0x11e30
-	// Code size 83 (0x53)
-	.maxstack 5
+        // Method begins at RVA 0x140fc
+	// 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:  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:  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_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetModVersion
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method XmlNamespaceEnumerator::get_Current
 
-    // method line 727
-    .method public hidebysig 
-           instance default bool IsAtLeastVersion (string package, string version)  cil managed 
+    // method line 892
+    .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 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 0x11e90
-	// Code size 54 (0x36)
-	.maxstack 7
+        // Method begins at RVA 0x14124
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		object	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 "--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:  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
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method PkgConfigFunctions::IsAtLeastVersion
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 728
+    // method line 893
     .method public hidebysig 
-           instance default bool IsExactVersion (string package, string version)  cil managed 
+           instance default bool MoveNext ()  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..
-
-        // Method begins at RVA 0x11ed4
-	// Code size 54 (0x36)
-	.maxstack 7
+        // Method begins at RVA 0x14144
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		bool	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:  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_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method PkgConfigFunctions::IsExactVersion
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlNamespaceEnumerator::MoveNext
 
-    // method line 729
-    .method public hidebysig 
-           instance default bool IsMaxVersion (string package, string version)  cil managed 
+    // method line 894
+    .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 0E 69 73 2D 6D 61 78 2D 76 65 72 73 69 6F   // ...is-max-versio
-		6E 00 00                                        ) // n..
-
-        // Method begins at RVA 0x11f18
-	// Code size 54 (0x36)
-	.maxstack 7
+        // Method begins at RVA 0x14164
+	.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:  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:  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_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method PkgConfigFunctions::IsMaxVersion
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 730
+    // method line 895
     .method public hidebysig 
-           instance default bool IsBetweenVersion (string package, string minVersion, string maxVersion)  cil managed 
+           instance default void Reset ()  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..
-
-        // Method begins at RVA 0x11f5c
-	// Code size 78 (0x4e)
-	.maxstack 7
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x14184
+	// Code size 13 (0xd)
+	.maxstack 8
 	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_004c:  ldloc.0 
-	IL_004d:  ret 
-    } // end of method PkgConfigFunctions::IsBetweenVersion
+	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
 
-    // method line 731
-    .method public hidebysig 
-           instance default bool Exists (string package)  cil managed 
+    // method line 896
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  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 0x11fb8
-	// Code size 43 (0x2b)
-	.maxstack 5
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x14192
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
 	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_0029:  ldloc.0 
-	IL_002a:  ret 
-    } // end of method PkgConfigFunctions::Exists
-
-    // method line 732
-    .method private hidebysig 
-           instance default bool RunPkgConfigBool (class NAnt.Core.Types.Argument[] args)  cil managed 
-    {
-        // Method begins at RVA 0x11ff0
-	// 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
-
-	} // 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_003b:  nop 
-	  IL_003c:  rethrow 
-	  IL_003e:  ldc.i4.0 
-	  IL_003f:  stloc.2 
-	  IL_0040:  leave IL_0045
-
-	} // end handler 0
-	IL_0045:  ldloc.2 
-	IL_0046:  ret 
-    } // end of method PkgConfigFunctions::RunPkgConfigBool
-
-    // method line 733
-    .method private hidebysig 
-           instance default string RunPkgConfigString (class NAnt.Core.Types.Argument[] args)  cil managed 
-    {
-        // Method begins at RVA 0x12054
-	// 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
-
-	} // 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_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 734
-    .method private hidebysig 
-           instance default class NAnt.Core.Tasks.ExecTask GetTask (class [mscorlib]System.IO.Stream 'stream')  cil managed 
-    {
-        // Method begins at RVA 0x120f8
-	// 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
-
-	IL_0051:  ldloc.2 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetTask
+	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
 
-  } // end of class NAnt.Core.Functions.PkgConfigFunctions
+	.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
 }
 
-.namespace NAnt.Core.Functions
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit PathFunctions
-  	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..
+  .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 initonly  class [mscorlib]System.Collections.ArrayList _list
 
-    // method line 735
+    // method line 897
     .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 0x12157
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x141a0
+	// Code size 19 (0x13)
 	.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 PathFunctions::.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 736
-    .method public hidebysig 
-           instance default string GetFullPath (string path)  cil managed 
+    // method line 898
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Pattern get_Item (int32 index)  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 0x12164
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x141b4
+	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.Pattern	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
 	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 737
-    .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 0x12188
-	// 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 738
-    .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 0x121a4
-	// 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 739
-    .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 0x121c0
-	// 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_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_0014:  ldloc.1 
-	IL_0015:  ret 
-    } // end of method PathFunctions::GetDirectoryName
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method PatternCollection::get_Item
 
-    // method line 740
-    .method public static hidebysig 
-           default string GetExtension (string path)  cil managed 
+    // method line 899
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Pattern 'value')  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                                           ) // ..
-
-        // Method begins at RVA 0x121e4
+        // Method begins at RVA 0x141da
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	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_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 PathFunctions::GetExtension
+    } // end of method PatternCollection::set_Item
 
-    // method line 741
-    .method public static hidebysig 
-           default string GetFileName (string path)  cil managed 
+    // method line 900
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_List ()  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                                           ) // ..
-
-        // Method begins at RVA 0x12200
+        // Method begins at RVA 0x141ec
 	// 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:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	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 PathFunctions::GetFileName
+    } // end of method PatternCollection::get_List
 
-    // method line 742
-    .method public static hidebysig 
-           default string GetFileNameWithoutExtension (string path)  cil managed 
+    // method line 901
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  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..
-
-        // Method begins at RVA 0x1221c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x14208
+	// Code size 20 (0x14)
 	.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_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 PathFunctions::GetFileNameWithoutExtension
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::get_Count
 
-    // method line 743
-    .method public static hidebysig 
-           default string GetPathRoot (string path)  cil managed 
+    // method line 902
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  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                                           ) // ..
-
-        // Method begins at RVA 0x12238
-	// Code size 22 (0x16)
-	.maxstack 1
-	.locals init (
-		string	V_0,
-		string	V_1)
+        // Method begins at RVA 0x14228
+	.override class [mscorlib]System.Collections.ICollection::CopyTo
+	// Code size 15 (0xf)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	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_0014:  ldloc.1 
-	IL_0015:  ret 
-    } // end of method PathFunctions::GetPathRoot
-
-    // method line 744
-    .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..
-
-        // Method begins at RVA 0x1225c
-	// 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
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PathFunctions::GetTempFileName
-
-    // method line 745
-    .method public static hidebysig 
-           default string GetTempPath ()  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 0x12278
-	// 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
+	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 746
-    .method public static hidebysig 
-           default bool HasExtension (string path)  cil managed 
+    // method line 903
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.ICollection.get_IsSynchronized ()  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                                           ) // ..
-
-        // Method begins at RVA 0x12294
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x14238
+	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.Path::HasExtension(string)
-	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 PathFunctions::HasExtension
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::System.Collections.ICollection.get_IsSynchronized
 
-    // method line 747
-    .method public static hidebysig 
-           default bool IsPathRooted (string path)  cil managed 
+    // method line 904
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.ICollection.get_SyncRoot ()  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..
-
-        // Method begins at RVA 0x122b0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x14258
+	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	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 PathFunctions::IsPathRooted
-
-  } // end of class NAnt.Core.Functions.PathFunctions
-}
-
-.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_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 748
-    .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 0x122cb
-	// 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
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::System.Collections.ICollection.get_SyncRoot
 
-    // method line 749
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.DateTime Now ()  cil managed 
+    // method line 905
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  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 0x122d8
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x14278
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		class [mscorlib]System.Collections.IEnumerator	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_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_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DateTimeFunctions::Now
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 750
-    .method public static hidebysig 
-           default int32 GetYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 906
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IList.get_Item (int32 index)  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..
-
-        // Method begins at RVA 0x122f4
+        // Method begins at RVA 0x14298
+	.override class [mscorlib]System.Collections.IList::get_Item
 	// Code size 16 (0x10)
-	.maxstack 1
+	.maxstack 2
 	.locals init (
-		int32	V_0)
+		object	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Year()
+	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_000e:  ldloc.0 
 	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetYear
+    } // end of method PatternCollection::System.Collections.IList.get_Item
 
-    // method line 751
-    .method public static hidebysig 
-           default int32 GetMonth (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 907
+    .method private final virtual hidebysig newslot specialname 
+           instance default void System.Collections.IList.set_Item (int32 index, object 'value')  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..
-
-        // Method begins at RVA 0x12310
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x142b4
+	.override class [mscorlib]System.Collections.IList::set_Item
+	// Code size 81 (0x51)
+	.maxstack 3
 	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_0001:  ldarg.2 
+	IL_0002:  brtrue IL_0013
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetMonth
+	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 752
-    .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_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 begins at RVA 0x1232c
-	// Code size 16 (0x10)
+    // method line 908
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.IList.get_IsFixedSize ()  cil managed 
+    {
+        // Method begins at RVA 0x14314
+	.override class [mscorlib]System.Collections.IList::get_IsFixedSize
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDay
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method PatternCollection::System.Collections.IList.get_IsFixedSize
 
-    // method line 753
-    .method public static hidebysig 
-           default int32 GetHour (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 909
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.IList.get_IsReadOnly ()  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..
-
-        // Method begins at RVA 0x12348
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x1432c
+	.override class [mscorlib]System.Collections.IList::get_IsReadOnly
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetHour
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method PatternCollection::System.Collections.IList.get_IsReadOnly
 
-    // method line 754
-    .method public static hidebysig 
-           default int32 GetMinute (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 910
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.Add (object 'value')  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..
-
-        // Method begins at RVA 0x12364
-	// Code size 16 (0x10)
-	.maxstack 1
+        // Method begins at RVA 0x14344
+	.override class [mscorlib]System.Collections.IList::Add
+	// Code size 87 (0x57)
+	.maxstack 3
 	.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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetMinute
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 755
-    .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..
+	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
 
-        // Method begins at RVA 0x12380
-	// 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_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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetSecond
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Add
 
-    // method line 756
-    .method public static hidebysig 
-           default int32 GetMillisecond (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 911
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IList.Contains (object 'value')  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..
-
-        // Method begins at RVA 0x1239c
-	// Code size 16 (0x10)
-	.maxstack 1
+        // Method begins at RVA 0x143a8
+	.override class [mscorlib]System.Collections.IList::Contains
+	// Code size 87 (0x57)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		bool	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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetMillisecond
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 757
-    .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_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
 
-        // Method begins at RVA 0x123b8
-	// 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_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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetTicks
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Contains
 
-    // method line 758
-    .method public static hidebysig 
-           default int32 GetDayOfWeek (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 912
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  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..
-
-        // Method begins at RVA 0x123d4
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x1440b
+	// Code size 13 (0xd)
+	.maxstack 8
 	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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDayOfWeek
+	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
 
-    // method line 759
-    .method public static hidebysig 
-           default int32 GetDayOfYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    // method line 913
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.IndexOf (object 'value')  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..
-
-        // Method begins at RVA 0x123f0
-	// Code size 16 (0x10)
-	.maxstack 1
+        // Method begins at RVA 0x1441c
+	.override class [mscorlib]System.Collections.IList::IndexOf
+	// Code size 87 (0x57)
+	.maxstack 3
 	.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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDayOfYear
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 760
-    .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_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
 
-        // Method begins at RVA 0x1240c
-	// 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_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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDaysInMonth
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method PatternCollection::System.Collections.IList.IndexOf
 
-    // method line 761
-    .method public static hidebysig 
-           default bool IsLeapYear (int32 year)  cil managed 
+    // method line 914
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Insert (int32 index, object 'value')  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                                              ) // .
-
-        // Method begins at RVA 0x12428
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x14480
+	.override class [mscorlib]System.Collections.IList::Insert
+	// Code size 81 (0x51)
+	.maxstack 3
 	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DateTimeFunctions::IsLeapYear
-
-  } // end of class NAnt.Core.Functions.DateTimeFunctions
-}
+	IL_0001:  ldarg.2 
+	IL_0002:  brtrue IL_0013
 
-.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_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::Insert(int32, class NAnt.Core.Types.Pattern)
+	IL_0050:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Insert
 
-    // method line 762
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 915
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x12443
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
+        // Method begins at RVA 0x144e0
+	.override class [mscorlib]System.Collections.IList::Remove
+	// Code size 80 (0x50)
+	.maxstack 3
+	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_0008:  nop 
-	IL_0009:  ret 
-    } // end of method DateTimeConversionFunctions::.ctor
+	IL_0002:  brtrue IL_0013
 
-    // method line 763
-    .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_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
 
-        // Method begins at RVA 0x12450
-	// Code size 20 (0x14)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+	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 916
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.RemoveAt (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x1453c
+	.override class [mscorlib]System.Collections.IList::RemoveAt
+	// Code size 14 (0xe)
+	.maxstack 8
 	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DateTimeConversionFunctions::Parse
+	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
 
-    // method line 764
-    .method public static hidebysig 
-           default string ToString (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    // method line 917
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.Pattern item)  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 0x12470
+        // Method begins at RVA 0x1454c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		string	V_0)
+		int32	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 valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	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_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method DateTimeConversionFunctions::ToString
+    } // end of method PatternCollection::Add
 
-    // method line 765
-    .method public static hidebysig 
-           default string ToString (valuetype [mscorlib]System.DateTime 'value', string format)  cil managed 
+    // method line 918
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Pattern[] items)  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..
-
-        // Method begins at RVA 0x12494
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x14570
+	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
-		string	V_0)
+		int32	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_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:  ret 
-    } // end of method DateTimeConversionFunctions::ToString
-
-  } // end of class NAnt.Core.Functions.DateTimeConversionFunctions
-}
-
-.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_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 766
-    .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 0x124b6
-	// 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_0021:  ret 
+    } // end of method PatternCollection::AddRange
 
-    // method line 767
-    .method public static hidebysig 
-           default int32 Parse (string s)  cil managed 
+    // method line 919
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.PatternCollection items)  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 0x124c4
-	// Code size 20 (0x14)
-	.maxstack 2
+        // Method begins at RVA 0x145a0
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
 		int32	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 int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method Int32ConversionFunctions::Parse
+	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
 
-    // method line 768
-    .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_0028:  ret 
+    } // end of method PatternCollection::AddRange
 
-        // Method begins at RVA 0x124e4
+    // method line 920
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Pattern item)  cil managed 
+    {
+        // Method begins at RVA 0x145d8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	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_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_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method Int32ConversionFunctions::ToString
-
-  } // end of class NAnt.Core.Functions.Int32ConversionFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit AssemblyFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 61 73 73 65 6D 62 6C 79 08 41 73 73 65   // ...assembly.Asse
-		6D 62 6C 79 00 00                               ) // mbly..
-
+    } // end of method PatternCollection::Contains
 
-    // method line 769
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 921
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Pattern[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x12505
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x145f9
+	// 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 AssemblyFunctions::.ctor
+	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::CopyTo
 
-    // method line 770
+    // method line 922
     .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly LoadFromFile (string assemblyFile)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Types.Pattern item)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		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 0x12510
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x1460c
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method AssemblyFunctions::LoadFromFile
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PatternCollection::IndexOf
 
-    // method line 771
+    // method line 923
     .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly Load (string assemblyString)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Pattern item)  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 0x12538
+        // Method begins at RVA 0x1462d
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0)
+	.maxstack 8
 	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:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	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 AssemblyFunctions::Load
+    } // end of method PatternCollection::Insert
 
-    // method line 772
-    .method public static hidebysig 
-           default string GetFullName (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    // method line 924
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.PatternEnumerator GetEnumerator ()  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 0x12554
+        // Method begins at RVA 0x14640
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.PatternEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	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
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyFunctions::GetFullName
-
-    // method line 773
-    .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 0x12570
-	// Code size 16 (0x10)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Reflection.AssemblyName	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method AssemblyFunctions::GetName
+    } // end of method PatternCollection::GetEnumerator
 
-    // method line 774
-    .method public static hidebysig 
-           default string GetLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    // method line 925
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Pattern item)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 6C 6F 63 61 74 69 6F 6E 00   // ...get-location.
-		00                                              ) // .
-
-        // Method begins at RVA 0x1258c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x1465b
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyFunctions::GetLocation
+	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
 
-  } // end of class NAnt.Core.Functions.AssemblyFunctions
+	.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 ()
+	{
+		.get instance default int32 NAnt.Core.Types.PatternCollection::get_Count () 
+	}
+  } // end of class NAnt.Core.Types.PatternCollection
 }
 
-.namespace NAnt.Core.Functions
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit MathFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .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..
-
+  .class public auto ansi beforefieldinit PatternEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 775
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 926
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.PatternCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x125a7
-	// Code size 10 (0xa)
-	.maxstack 8
+        // Method begins at RVA 0x1466c
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
 	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 MathFunctions::.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.Core.Types.PatternEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method PatternEnumerator::.ctor
 
-    // method line 776
-    .method public static hidebysig 
-           default float64 Round (float64 'value')  cil managed 
+    // method line 927
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Pattern get_Current ()  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 0x125b4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x14690
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		float64	V_0)
+		class NAnt.Core.Types.Pattern	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call float64 class [mscorlib]System.Math::Round(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MathFunctions::Round
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method PatternEnumerator::get_Current
 
-    // method line 777
-    .method public static hidebysig 
-           default float64 Floor (float64 'value')  cil managed 
+    // method line 928
+    .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 05 66 6C 6F 6F 72 00 00 ) // ...floor..
-
-        // Method begins at RVA 0x125d0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x146b8
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		float64	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call float64 class [mscorlib]System.Math::Floor(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MathFunctions::Floor
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 778
-    .method public static hidebysig 
-           default float64 Ceiling (float64 'value')  cil managed 
+    // method line 929
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  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 0x125ec
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x146d8
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		float64	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call float64 class [mscorlib]System.Math::Ceiling(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MathFunctions::Ceiling
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternEnumerator::MoveNext
 
-    // method line 779
-    .method public static hidebysig 
-           default float64 Abs (float64 'value')  cil managed 
+    // method line 930
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  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 0x12608
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		float64	V_0)
+        // Method begins at RVA 0x146f8
+	// Code size 13 (0xd)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call float64 class [mscorlib]System.Math::Abs(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MathFunctions::Abs
+	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
 
-  } // end of class NAnt.Core.Functions.MathFunctions
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Types.PatternEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.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.Functions
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit OperatingSystemFunctions
-  	extends NAnt.Core.FunctionSetBase
+  .class public auto ansi serializable beforefieldinit EnvironmentVariableCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .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..
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 780
+    // method line 931
     .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 0x12623
-	// 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 OperatingSystemFunctions::.ctor
-
-    // method line 781
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.PlatformID GetPlatform (class [mscorlib]System.OperatingSystem operatingSystem)  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.
-		00                                              ) // .
-
-        // Method begins at RVA 0x12630
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype [mscorlib]System.PlatformID	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method OperatingSystemFunctions::GetPlatform
-
-    // method line 782
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.OperatingSystem operatingSystem)  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 0x1264c
-	// 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.OperatingSystem::get_Version()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method OperatingSystemFunctions::GetVersion
-
-    // method line 783
-    .method public static hidebysig 
-           default string ToString (class [mscorlib]System.OperatingSystem operatingSystem)  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 0x12668
-	// 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
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method OperatingSystemFunctions::ToString
-
-  } // end of class NAnt.Core.Functions.OperatingSystemFunctions
-}
-
-.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 784
-    .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 0x12683
-	// 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 FileFunctions::.ctor
-
-    // method line 785
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  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 0x12690
-	// 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.File::Exists(string)
-	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 "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.File::GetCreationTime(string)
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
-
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method FileFunctions::GetCreationTime
-
-    // method line 786
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  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 0x126dc
-	// 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.File::Exists(string)
-	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 "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.File::GetLastWriteTime(string)
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
-
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method FileFunctions::GetLastWriteTime
-
-    // method line 787
-    .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..
-
-        // Method begins at RVA 0x12728
-	// 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.File::Exists(string)
-	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 "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.File::GetLastAccessTime(string)
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
-
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method FileFunctions::GetLastAccessTime
-
-    // method line 788
-    .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 0x12774
-	// 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.File::Exists(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FileFunctions::Exists
-
-    // method line 789
-    .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 0x1279c
-	// Code size 75 (0x4b)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1,
-		bool	V_2,
-		valuetype [mscorlib]System.DateTime	V_3,
-		string	V_4)
-	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:  ldarg.0 
-	IL_000f:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_001a:  stloc.1 
-	IL_001b:  ldloc.1 
-	IL_001c:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0021:  brtrue IL_002e
-
-	IL_0026:  nop 
-	IL_0027:  ldc.i4.0 
-	IL_0028:  stloc.2 
-	IL_0029:  br IL_0049
-
-	IL_002e:  ldloc.1 
-	IL_002f:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
-	IL_0034:  stloc.3 
-	IL_0035:  ldloc.0 
-	IL_0036:  ldloc.3 
-	IL_0037:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_003c:  stloc.s 4
-	IL_003e:  ldloc.s 4
-	IL_0040:  ldnull 
-	IL_0041:  ceq 
-	IL_0043:  stloc.2 
-	IL_0044:  br IL_0049
-
-	IL_0049:  ldloc.2 
-	IL_004a:  ret 
-    } // end of method FileFunctions::UpToDate
-
-    // method line 790
-    .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 0x127f4
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		int64	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:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  callvirt instance int64 class [mscorlib]System.IO.FileInfo::get_Length()
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_001f
-
-	IL_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method FileFunctions::GetLength
-
-    // method line 791
-    .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 0x12824
-	// Code size 47 (0x2f)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	  IL_0008:  ldarg.1 
-	  IL_0009:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_000e:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
-	  IL_0013:  pop 
-	  IL_0014:  ldc.i4.1 
-	  IL_0015:  stloc.0 
-	  IL_0016:  leave IL_002d
-
-	} // end .try 0
-	catch class [mscorlib]System.IO.FileLoadException { // 0
-	  IL_001b:  pop 
-	  IL_001c:  nop 
-	  IL_001d:  ldc.i4.0 
-	  IL_001e:  stloc.0 
-	  IL_001f:  leave IL_002d
-
-	} // end handler 0
-	catch class [mscorlib]System.BadImageFormatException { // 1
-	  IL_0024:  pop 
-	  IL_0025:  nop 
-	  IL_0026:  ldc.i4.0 
-	  IL_0027:  stloc.0 
-	  IL_0028:  leave IL_002d
-
-	} // end handler 1
-	IL_002d:  ldloc.0 
-	IL_002e:  ret 
-    } // end of method FileFunctions::IsAssembly
-
-  } // end of class NAnt.Core.Functions.FileFunctions
-}
-
-.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 792
-    .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 0x1287c
-	// 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 793
-    .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 0x12888
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BooleanConversionFunctions::Parse
-
-    // method line 794
-    .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..
-
-        // Method begins at RVA 0x128a4
-	// 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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method BooleanConversionFunctions::ToString
-
-  } // end of class NAnt.Core.Functions.BooleanConversionFunctions
-}
-
-.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 795
-    .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 0x128c5
-	// 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
-
-    // method line 796
-    .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..
-
-        // Method begins at RVA 0x128d0
-	// 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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalDays
-
-    // method line 797
-    .method public static hidebysig 
-           default float64 GetTotalHours (valuetype [mscorlib]System.TimeSpan 'value')  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 0x128ec
-	// 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_TotalHours()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalHours
-
-    // method line 798
-    .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..
-
-        // Method begins at RVA 0x12908
-	// 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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalMinutes
-
-    // method line 799
-    .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..
-
-        // Method begins at RVA 0x12924
-	// 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
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalSeconds
-
-    // method line 800
-    .method public static hidebysig 
-           default float64 GetTotalMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  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 0x12940
-	// 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_TotalMilliseconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalMilliseconds
-
-    // method line 801
-    .method public static hidebysig 
-           default int32 GetDays (valuetype [mscorlib]System.TimeSpan 'value')  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 0x1295c
-	// 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.TimeSpan::get_Days()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetDays
-
-    // method line 802
-    .method public static hidebysig 
-           default int32 GetHours (valuetype [mscorlib]System.TimeSpan 'value')  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 0x12978
-	// 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.TimeSpan::get_Hours()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetHours
-
-    // method line 803
-    .method public static hidebysig 
-           default int32 GetMinutes (valuetype [mscorlib]System.TimeSpan 'value')  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 0x12994
-	// 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.TimeSpan::get_Minutes()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetMinutes
-
-    // method line 804
-    .method public static hidebysig 
-           default int32 GetSeconds (valuetype [mscorlib]System.TimeSpan 'value')  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..
-
-        // Method begins at RVA 0x129b0
-	// 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.TimeSpan::get_Seconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetSeconds
-
-    // method line 805
-    .method public static hidebysig 
-           default int32 GetMilliseconds (valuetype [mscorlib]System.TimeSpan '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..
-
-        // Method begins at RVA 0x129cc
-	// 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.TimeSpan::get_Milliseconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetMilliseconds
-
-    // method line 806
-    .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..
-
-        // Method begins at RVA 0x129e8
-	// 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
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTicks
-
-    // method line 807
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromDays (float64 '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 0x12a04
-	// Code size 15 (0xf)
-	.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::FromDays(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromDays
-
-    // method line 808
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromHours (float64 '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 0x12a20
-	// Code size 15 (0xf)
-	.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromHours
-
-    // method line 809
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromMinutes (float64 'value')  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 0x12a3c
-	// Code size 15 (0xf)
-	.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::FromMinutes(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromMinutes
-
-    // method line 810
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromSeconds (float64 'value')  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 0x12a58
-	// Code size 15 (0xf)
-	.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::FromSeconds(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromSeconds
-
-    // method line 811
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromMilliseconds (float64 'value')  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 0x12a74
-	// Code size 15 (0xf)
-	.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::FromMilliseconds(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromMilliseconds
-
-    // method line 812
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromTicks (int64 '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 0x12a90
-	// Code size 15 (0xf)
-	.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::FromTicks(int64)
-	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..
-
-
-    // method line 813
-    .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 0x12aab
-	// 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 814
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan 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 0x12ab8
-	// Code size 15 (0xf)
-	.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::Parse(string)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanConversionFunctions::Parse
-
-    // method line 815
-    .method public static hidebysig 
-           default string ToString (valuetype [mscorlib]System.TimeSpan '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 0x12ad4
-	// Code size 22 (0x16)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	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
-
-  } // end of class NAnt.Core.Functions.TimeSpanConversionFunctions
-}
-
-.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 816
-    .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 0x12af6
-	// 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
-
-    // method line 817
-    .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..
-
-        .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 0x12b04
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		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::ToInt
-
-    // method line 818
-    .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..
-
-        .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 0x12b1c
-	// 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
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ToDouble
-
-    // method line 819
-    .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..
-
-        .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 0x12b34
-	// 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_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ConvertToString
-
-    // method line 820
-    .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..
-
-        .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 0x12b4c
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		valuetype [mscorlib]System.DateTime	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::ToDateTime
-
-    // method line 821
-    .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..
-
-        .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 0x12b64
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	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.Filters
-{
-  .class private auto ansi beforefieldinit PhysicalTextReader
-  	extends NAnt.Core.Filters.Filter
-  {
-
-    // method line 822
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.IO.TextReader textReader)  cil managed 
-    {
-        // Method begins at RVA 0x12d2c
-	// 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
-
-  } // end of class NAnt.Core.Filters.PhysicalTextReader
-}
-
-.namespace NAnt.Core.Filters
-{
-  .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 823
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x12d3c
-	// Code size 8 (0x8)
+        // Method begins at RVA 0x14706
+	// 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
+    } // end of method EnvironmentVariableCollection::.ctor
 
-    // method line 824
+    // method line 932
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x12d45
+        // Method begins at RVA 0x1470f
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -31326,15 +35072,15 @@
 	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_0009:  call instance void class NAnt.Core.Types.EnvironmentVariableCollection::AddRange(class NAnt.Core.Types.EnvironmentVariableCollection)
 	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::.ctor
+    } // end of method EnvironmentVariableCollection::.ctor
 
-    // method line 825
+    // method line 933
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilder[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariable[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x12d55
+        // Method begins at RVA 0x1471f
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -31342,37 +35088,37 @@
 	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_0009:  call instance void class NAnt.Core.Types.EnvironmentVariableCollection::AddRange(class NAnt.Core.Types.EnvironmentVariable[])
 	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::.ctor
+    } // end of method EnvironmentVariableCollection::.ctor
 
-    // method line 826
+    // method line 934
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterBuilder get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x12d68
+        // Method begins at RVA 0x14730
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilder	V_0)
+		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.Filters.FilterBuilder
+	IL_000d:  castclass NAnt.Core.Types.EnvironmentVariable
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method FilterBuilderCollection::get_Item
+    } // end of method EnvironmentVariableCollection::get_Item
 
-    // method line 827
+    // method line 935
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Filters.FilterBuilder 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.EnvironmentVariable 'value')  cil managed 
     {
-        // Method begins at RVA 0x12d8e
+        // Method begins at RVA 0x14756
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31382,19 +35128,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 FilterBuilderCollection::set_Item
+    } // end of method EnvironmentVariableCollection::set_Item
 
-    // method line 828
+    // method line 936
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterBuilder get_Item (string filterName)  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (string name)  cil managed 
     {
-        // Method begins at RVA 0x12da0
+        // Method begins at RVA 0x14768
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilder	V_0,
+		class NAnt.Core.Types.EnvironmentVariable	V_0,
 		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Filters.FilterBuilder	V_2,
+		class NAnt.Core.Types.EnvironmentVariable	V_2,
 		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
@@ -31411,13 +35157,13 @@
 
 	  IL_001a:  ldloc.1 
 	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Filters.FilterBuilder
+	  IL_0020:  castclass NAnt.Core.Types.EnvironmentVariable
 	  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_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 
@@ -31451,13 +35197,13 @@
 
 	IL_006d:  ldloc.2 
 	IL_006e:  ret 
-    } // end of method FilterBuilderCollection::get_Item
+    } // end of method EnvironmentVariableCollection::get_Item
 
-    // method line 829
+    // method line 937
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x12e2c
+        // Method begins at RVA 0x147f4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -31472,13 +35218,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FilterBuilderCollection::Add
+    } // end of method EnvironmentVariableCollection::Add
 
-    // method line 830
+    // method line 938
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.FilterBuilder[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariable[] items)  cil managed 
     {
-        // Method begins at RVA 0x12e50
+        // Method begins at RVA 0x14818
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -31493,7 +35239,7 @@
 	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_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 
@@ -31507,13 +35253,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method FilterBuilderCollection::AddRange
+    } // end of method EnvironmentVariableCollection::AddRange
 
-    // method line 831
+    // method line 939
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.FilterBuilderCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariableCollection items)  cil managed 
     {
-        // Method begins at RVA 0x12e80
+        // Method begins at RVA 0x14848
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -31527,8 +35273,8 @@
 	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_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 
@@ -31541,13 +35287,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method FilterBuilderCollection::AddRange
+    } // end of method EnvironmentVariableCollection::AddRange
 
-    // method line 832
+    // method line 940
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x12eb8
+        // Method begins at RVA 0x14880
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -31562,13 +35308,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FilterBuilderCollection::Contains
+    } // end of method EnvironmentVariableCollection::Contains
 
-    // method line 833
+    // method line 941
     .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
+           instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x12edc
+        // Method begins at RVA 0x148a4
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -31576,7 +35322,7 @@
 	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_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 
@@ -31586,13 +35332,13 @@
 
 	IL_0014:  ldloc.0 
 	IL_0015:  ret 
-    } // end of method FilterBuilderCollection::Contains
+    } // end of method EnvironmentVariableCollection::Contains
 
-    // method line 834
+    // method line 942
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Filters.FilterBuilder[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.Types.EnvironmentVariable[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x12efe
+        // Method begins at RVA 0x148c6
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31602,13 +35348,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 FilterBuilderCollection::CopyTo
+    } // end of method EnvironmentVariableCollection::CopyTo
 
-    // method line 835
+    // method line 943
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x12f10
+        // Method begins at RVA 0x148d8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -31623,13 +35369,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FilterBuilderCollection::IndexOf
+    } // end of method EnvironmentVariableCollection::IndexOf
 
-    // method line 836
+    // method line 944
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x12f31
+        // Method begins at RVA 0x148f9
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31639,32 +35385,32 @@
 	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
+    } // end of method EnvironmentVariableCollection::Insert
 
-    // method line 837
+    // method line 945
     .method public hidebysig 
-           instance default class NAnt.Core.Filters.FilterBuilderEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariableEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x12f44
+        // Method begins at RVA 0x1490c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilderEnumerator	V_0)
+		class NAnt.Core.Types.EnvironmentVariableEnumerator	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:  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 FilterBuilderCollection::GetEnumerator
+    } // end of method EnvironmentVariableCollection::GetEnumerator
 
-    // method line 838
+    // method line 946
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+           instance default void Remove (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x12f5f
+        // Method begins at RVA 0x14927
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31673,32 +35419,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method FilterBuilderCollection::Remove
+    } // end of method EnvironmentVariableCollection::Remove
 
-	.property instance class NAnt.Core.Filters.FilterBuilder Item (int32)
+	.property instance class NAnt.Core.Types.EnvironmentVariable 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') 
+		.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.FilterBuilder Item (string)
+	.property instance class NAnt.Core.Types.EnvironmentVariable Item (string)
 	{
-		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderCollection::get_Item (string filterName) 
+		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableCollection::get_Item (string name) 
 	}
-  } // end of class NAnt.Core.Filters.FilterBuilderCollection
+  } // end of class NAnt.Core.Types.EnvironmentVariableCollection
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit FilterBuilderEnumerator
+  .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 839
+    // method line 947
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x12f70
+        // Method begins at RVA 0x14938
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -31711,36 +35457,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.Filters.FilterBuilderEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method FilterBuilderEnumerator::.ctor
+    } // end of method EnvironmentVariableEnumerator::.ctor
 
-    // method line 840
+    // method line 948
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterBuilder get_Current ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariable get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x12f94
+        // Method begins at RVA 0x1495c
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilder	V_0)
+		class NAnt.Core.Types.EnvironmentVariable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
+	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.Filters.FilterBuilder
+	IL_000c:  castclass NAnt.Core.Types.EnvironmentVariable
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method FilterBuilderEnumerator::get_Current
+    } // end of method EnvironmentVariableEnumerator::get_Current
 
-    // method line 841
+    // method line 949
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x12fbc
+        // Method begins at RVA 0x14984
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -31748,40 +35494,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
+	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_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 842
+    // method line 950
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x12fdc
+        // Method begins at RVA 0x149a4
 	// 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_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_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FilterBuilderEnumerator::MoveNext
+    } // end of method EnvironmentVariableEnumerator::MoveNext
 
-    // method line 843
+    // method line 951
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x12ffc
+        // Method begins at RVA 0x149c4
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -31789,649 +35535,81 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
+	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_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 844
+    // method line 952
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1301c
+        // Method begins at RVA 0x149e4
 	// 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_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 FilterBuilderEnumerator::Reset
+    } // end of method EnvironmentVariableEnumerator::Reset
 
-    // method line 845
+    // method line 953
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1302a
+        // Method begins at RVA 0x149f2
 	.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_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 FilterBuilderEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.Reset
 
 	.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
-}
-
-.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 846
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
-    {
-        // Method begins at RVA 0x130a8
-	// 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.Filters.FilterBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method FilterBuilder::.ctor
-
-    // method line 847
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
-    {
-        // Method begins at RVA 0x130b8
-	// 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
-
-    // method line 848
-    .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
-    {
-        // Method begins at RVA 0x13108
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FilterBuilder::get_ClassName
-
-    // method line 849
-    .method public hidebysig specialname 
-           instance default string get_FilterName ()  cil managed 
-    {
-        // Method begins at RVA 0x13124
-	// 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::_filterName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FilterBuilder::get_FilterName
-
-    // method line 850
-    .method public hidebysig 
-           instance default class NAnt.Core.Filters.Filter CreateFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x13140
-        .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.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_0028:  ldloc.0 
-	IL_0029:  ret 
-    } // end of method FilterBuilder::CreateFilter
-
-	.property instance string ClassName ()
-	{
-		.get instance default string NAnt.Core.Filters.FilterBuilder::get_ClassName () 
-	}
-	.property instance string FilterName ()
-	{
-		.get instance default string NAnt.Core.Filters.FilterBuilder::get_FilterName () 
-	}
-  } // end of class NAnt.Core.Filters.FilterBuilder
-}
-
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi abstract beforefieldinit Filter
-  	extends NAnt.Core.Filters.ChainableReader
-  {
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-
-    // method line 851
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x12ccd
-	// Code size 14 (0xe)
-	.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
-
-    // method line 852
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x12cdc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 Filter::get_IfDefined
-
-    // method line 853
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12cf7
-	// 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_0008:  ret 
-    } // end of method Filter::set_IfDefined
-
-    // method line 854
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x12d04
-	// Code size 15 (0xf)
-	.maxstack 1
-	.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 855
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12d1f
-	// 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::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Filter::set_UnlessDefined
-
-    // method line 856
-    .method public virtual hidebysig newslot 
-           instance default void InitializeFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x12d29
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method Filter::InitializeFilter
-
-	.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.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..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Filters.Filter::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Filters.Filter::set_UnlessDefined (bool 'value') 
+		.get instance default object NAnt.Core.Types.EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-  } // end of class NAnt.Core.Filters.Filter
-}
-
-.namespace NAnt.Core.Filters
-{
-  .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 857
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x12b7a
-	// 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 ChainableReader::.ctor
-
-    // method line 858
-    .method public hidebysig specialname 
-           instance default bool get_Base ()  cil managed 
-    {
-        // Method begins at RVA 0x12b84
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ChainableReader::_baseReader
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ChainableReader::get_Base
-
-    // method line 859
-    .method public virtual hidebysig newslot 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader parentChainedReader)  cil managed 
-    {
-        // Method begins at RVA 0x12ba0
-	// Code size 89 (0x59)
-	.maxstack 3
-	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
-
-    // method line 860
-    .method public virtual hidebysig newslot 
-           instance default void Chain (class [mscorlib]System.IO.TextReader baseReader)  cil managed 
-    {
-        // Method begins at RVA 0x12c08
-	// 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 861
-    .method public virtual hidebysig newslot 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x12c70
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	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
-
-    // method line 862
-    .method public virtual hidebysig newslot 
-           instance default int32 Read ()  cil managed 
-    {
-        // Method begins at RVA 0x12c90
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		int32	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ChainableReader::Read
-
-    // method line 863
-    .method public virtual hidebysig newslot 
-           instance default void Close ()  cil managed 
-    {
-        // Method begins at RVA 0x12cb0
-	// Code size 13 (0xd)
-	.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
-
-    // method line 864
-    .method public final virtual hidebysig newslot 
-           instance default void Dispose ()  cil managed 
-    {
-        // Method begins at RVA 0x12cbe
-	// Code size 14 (0xe)
-	.maxstack 8
-	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 ()
+	.property instance class NAnt.Core.Types.EnvironmentVariable Current ()
 	{
-		.get instance default bool NAnt.Core.Filters.ChainableReader::get_Base () 
+		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current () 
 	}
-  .class nested private auto ansi sealed internalRead
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 865
-    .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 866
-    .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 867
-    .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 868
-    .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 869
-    .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 870
-    .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 871
-    .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 872
-    .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 873
-    .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
-
-    // method line 874
-    .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 875
-    .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 internalClose::BeginInvoke
-
-    // method line 876
-    .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 internalClose::EndInvoke
-
-  } // end of class internalClose
-
-  } // end of class NAnt.Core.Filters.ChainableReader
+  } // end of class NAnt.Core.Types.EnvironmentVariableEnumerator
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi serializable beforefieldinit FilterCollection
+  .class public auto ansi serializable beforefieldinit XsltExtensionObjectCollection
   	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 877
+    // method line 954
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x13176
+        // Method begins at RVA 0x14a00
 	// 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
+    } // end of method XsltExtensionObjectCollection::.ctor
 
-    // method line 878
+    // method line 955
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObjectCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x1317f
+        // Method begins at RVA 0x14a09
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -32439,15 +35617,15 @@
 	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_0009:  call instance void class NAnt.Core.Types.XsltExtensionObjectCollection::AddRange(class NAnt.Core.Types.XsltExtensionObjectCollection)
 	IL_000e:  ret 
-    } // end of method FilterCollection::.ctor
+    } // end of method XsltExtensionObjectCollection::.ctor
 
-    // method line 879
+    // method line 956
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.Filter[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObject[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x1318f
+        // Method begins at RVA 0x14a19
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -32455,37 +35633,37 @@
 	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_0009:  call instance void class NAnt.Core.Types.XsltExtensionObjectCollection::AddRange(class NAnt.Core.Types.XsltExtensionObject[])
 	IL_000e:  ret 
-    } // end of method FilterCollection::.ctor
+    } // end of method XsltExtensionObjectCollection::.ctor
 
-    // method line 880
+    // method line 957
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.Filter get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Types.XsltExtensionObject get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x131a0
+        // Method begins at RVA 0x14a2c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Filters.Filter	V_0)
+		class NAnt.Core.Types.XsltExtensionObject	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.Filter
+	IL_000d:  castclass NAnt.Core.Types.XsltExtensionObject
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method FilterCollection::get_Item
+    } // end of method XsltExtensionObjectCollection::get_Item
 
-    // method line 881
+    // method line 958
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Filters.Filter 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.XsltExtensionObject 'value')  cil managed 
     {
-        // Method begins at RVA 0x131c6
+        // Method begins at RVA 0x14a52
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -32495,13 +35673,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 FilterCollection::set_Item
+    } // end of method XsltExtensionObjectCollection::set_Item
 
-    // method line 882
+    // method line 959
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltExtensionObject get_Item (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14a64
+	// Code size 111 (0x6f)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.XsltExtensionObject	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Types.XsltExtensionObject	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.XsltExtensionObject
+	  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 XsltExtensionObjectCollection::get_Item
+
+    // method line 960
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Filters.Filter item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0x131d8
+        // Method begins at RVA 0x14af0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -32516,13 +35763,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FilterCollection::Add
+    } // end of method XsltExtensionObjectCollection::Add
 
-    // method line 883
+    // method line 961
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.Filter[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Types.XsltExtensionObject[] items)  cil managed 
     {
-        // Method begins at RVA 0x131fc
+        // Method begins at RVA 0x14b14
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -32537,7 +35784,7 @@
 	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_000d:  call instance int32 class NAnt.Core.Types.XsltExtensionObjectCollection::Add(class NAnt.Core.Types.XsltExtensionObject)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -32551,13 +35798,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method FilterCollection::AddRange
+    } // end of method XsltExtensionObjectCollection::AddRange
 
-    // method line 884
+    // method line 962
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.FilterCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Types.XsltExtensionObjectCollection items)  cil managed 
     {
-        // Method begins at RVA 0x1322c
+        // Method begins at RVA 0x14b44
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -32571,8 +35818,8 @@
 	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_000c:  callvirt instance class NAnt.Core.Types.XsltExtensionObject class NAnt.Core.Types.XsltExtensionObjectCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.XsltExtensionObjectCollection::Add(class NAnt.Core.Types.XsltExtensionObject)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -32585,13 +35832,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method FilterCollection::AddRange
+    } // end of method XsltExtensionObjectCollection::AddRange
 
-    // method line 885
+    // method line 963
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Filters.Filter item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0x13264
+        // Method begins at RVA 0x14b7c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -32606,13 +35853,37 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FilterCollection::Contains
+    } // end of method XsltExtensionObjectCollection::Contains
 
-    // method line 886
+    // method line 964
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Filters.Filter[] 'array', int32 index)  cil managed 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14ba0
+	// 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.XsltExtensionObject class NAnt.Core.Types.XsltExtensionObjectCollection::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 XsltExtensionObjectCollection::Contains
+
+    // method line 965
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.XsltExtensionObject[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x13285
+        // Method begins at RVA 0x14bc2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -32622,13 +35893,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 FilterCollection::CopyTo
+    } // end of method XsltExtensionObjectCollection::CopyTo
 
-    // method line 887
+    // method line 966
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Filters.Filter item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0x13298
+        // Method begins at RVA 0x14bd4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -32643,13 +35914,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FilterCollection::IndexOf
+    } // end of method XsltExtensionObjectCollection::IndexOf
 
-    // method line 888
+    // method line 967
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Filters.Filter item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0x132b9
+        // Method begins at RVA 0x14bf5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -32659,32 +35930,32 @@
 	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
+    } // end of method XsltExtensionObjectCollection::Insert
 
-    // method line 889
+    // method line 968
     .method public hidebysig 
-           instance default class NAnt.Core.Filters.FilterEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Types.XsltExtensionObjectEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x132cc
+        // Method begins at RVA 0x14c08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterEnumerator	V_0)
+		class NAnt.Core.Types.XsltExtensionObjectEnumerator	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:  newobj instance void class NAnt.Core.Types.XsltExtensionObjectEnumerator::'.ctor'(class NAnt.Core.Types.XsltExtensionObjectCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FilterCollection::GetEnumerator
+    } // end of method XsltExtensionObjectCollection::GetEnumerator
 
-    // method line 890
+    // method line 969
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Filters.Filter item)  cil managed 
+           instance default void Remove (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0x132e7
+        // Method begins at RVA 0x14c23
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -32693,28 +35964,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method FilterCollection::Remove
+    } // end of method XsltExtensionObjectCollection::Remove
 
-	.property instance class NAnt.Core.Filters.Filter Item (int32)
+	.property instance class NAnt.Core.Types.XsltExtensionObject 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') 
+		.get instance default class NAnt.Core.Types.XsltExtensionObject NAnt.Core.Types.XsltExtensionObjectCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.XsltExtensionObjectCollection::set_Item (int32 index, class NAnt.Core.Types.XsltExtensionObject 'value') 
 	}
-  } // end of class NAnt.Core.Filters.FilterCollection
+	.property instance class NAnt.Core.Types.XsltExtensionObject Item (string)
+	{
+		.get instance default class NAnt.Core.Types.XsltExtensionObject NAnt.Core.Types.XsltExtensionObjectCollection::get_Item (string 'value') 
+	}
+  } // end of class NAnt.Core.Types.XsltExtensionObjectCollection
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit FilterEnumerator
+  .class public auto ansi beforefieldinit XsltExtensionObjectEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 891
+    // method line 970
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObjectCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x132f8
+        // Method begins at RVA 0x14c34
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -32727,36 +36002,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.Filters.FilterEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method FilterEnumerator::.ctor
+    } // end of method XsltExtensionObjectEnumerator::.ctor
 
-    // method line 892
+    // method line 971
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.Filter get_Current ()  cil managed 
+           instance default class NAnt.Core.Types.XsltExtensionObject get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x1331c
+        // Method begins at RVA 0x14c58
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.Filter	V_0)
+		class NAnt.Core.Types.XsltExtensionObject	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Filters.Filter
+	IL_000c:  castclass NAnt.Core.Types.XsltExtensionObject
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method FilterEnumerator::get_Current
+    } // end of method XsltExtensionObjectEnumerator::get_Current
 
-    // method line 893
+    // method line 972
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x13344
+        // Method begins at RVA 0x14c80
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -32764,40 +36039,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_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
+    } // end of method XsltExtensionObjectEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 894
+    // method line 973
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x13364
+        // Method begins at RVA 0x14ca0
 	// 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.FilterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_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 FilterEnumerator::MoveNext
+    } // end of method XsltExtensionObjectEnumerator::MoveNext
 
-    // method line 895
+    // method line 974
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x13384
+        // Method begins at RVA 0x14cc0
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -32805,3387 +36080,3119 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_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 FilterEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method XsltExtensionObjectEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 896
+    // method line 975
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x133a4
+        // Method begins at RVA 0x14ce0
 	// 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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method FilterEnumerator::Reset
+    } // end of method XsltExtensionObjectEnumerator::Reset
 
-    // method line 897
+    // method line 976
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x133b2
+        // Method begins at RVA 0x14cee
 	.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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method FilterEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method XsltExtensionObjectEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Core.Filters.FilterEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.Types.XsltExtensionObjectEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.Filters.Filter Current ()
+	.property instance class NAnt.Core.Types.XsltExtensionObject Current ()
 	{
-		.get instance default class NAnt.Core.Filters.Filter NAnt.Core.Filters.FilterEnumerator::get_Current () 
+		.get instance default class NAnt.Core.Types.XsltExtensionObject NAnt.Core.Types.XsltExtensionObjectEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Filters.FilterEnumerator
+  } // end of class NAnt.Core.Types.XsltExtensionObjectEnumerator
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi serializable beforefieldinit FilterChain
-  	extends NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit Pattern
+  	extends NAnt.Core.Element
   {
-    .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
+    .field  private  string _patternName
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 898
+    // method line 977
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x135d2
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x14cfc
+	// Code size 15 (0xf)
 	.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_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 899
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterCollection get_Filters ()  cil managed 
+    // method line 978
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, string patternName)  cil managed 
+    {
+        // Method begins at RVA 0x14d0c
+	// 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 979
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_PatternName ()  cil managed 
     {
-        // Method begins at RVA 0x135e8
+        // Method begins at RVA 0x14d2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterCollection	V_0)
+		string	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 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 FilterChain::get_Filters
+    } // end of method Pattern::get_PatternName
 
-    // method line 900
+    // method line 980
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PatternName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14d47
+	// 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 981
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x13604
+        // Method begins at RVA 0x14d54
 	// 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.Types.Pattern::_ifDefined
 	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 Pattern::get_IfDefined
 
-    // method line 901
+    // method line 982
     .method public hidebysig specialname 
-           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1361f
+        // Method begins at RVA 0x14d6f
 	// 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.Types.Pattern::_ifDefined
 	IL_0008:  ret 
-    } // end of method FilterChain::set_InputEncoding
+    } // end of method Pattern::set_IfDefined
 
-    // method line 902
-    .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 983
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x1362c
-	// Code size 25 (0x19)
-	.maxstack 4
+        // Method begins at RVA 0x14d7c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain/FilterChainConfigurator	V_0)
+		bool	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.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
+	IL_0002:  ldfld bool NAnt.Core.Types.Pattern::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 903
-    .method assembly hidebysig 
-           instance default class NAnt.Core.Filters.Filter GetBaseFilter (class NAnt.Core.Filters.PhysicalTextReader physicalTextReader)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Pattern::get_UnlessDefined
+
+    // method line 984
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x13654
-	// 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)
+        // Method begins at RVA 0x14d97
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_00a2
-
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance bool class NAnt.Core.Filters.ChainableReader::get_Base()
-	IL_0015:  brtrue IL_0031
-
-	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
-
-	  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_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
+	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 904
-    .method assembly static hidebysig 
-           default bool IsNullOrEmpty (class NAnt.Core.Filters.FilterChain filterChain)  cil managed 
+    // method line 985
+    .method assembly hidebysig specialname 
+           instance default bool get_Enabled ()  cil managed 
     {
-        // Method begins at RVA 0x13714
-	// Code size 41 (0x29)
+        // Method begins at RVA 0x14da4
+	// Code size 32 (0x20)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_000f
+	IL_0002:  call instance bool class NAnt.Core.Types.Pattern::get_IfDefined()
+	IL_0007:  brfalse IL_0017
 
-	IL_0007:  nop 
-	IL_0008:  ldc.i4.1 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_0027
+	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_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_0017:  ldc.i4.0 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method FilterChain::IsNullOrEmpty
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method Pattern::get_Enabled
 
-	.property instance class NAnt.Core.Filters.FilterCollection Filters ()
+	.property instance string PatternName ()
 	{
-		.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
+		.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 class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::get_Filters () 
+		.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 class [mscorlib]System.Text.Encoding InputEncoding ()
+	.property instance bool IfDefined ()
 	{
-		.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.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 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....
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.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') 
+		.get instance default bool NAnt.Core.Types.Pattern::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Pattern::set_IfDefined (bool 'value') 
 	}
-  .class nested public auto ansi beforefieldinit FilterChainConfigurator
-  	extends NAnt.Core.Element/AttributeConfigurator
-  {
-
-    // method line 905
-    .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 0x13749
-	// 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
-
-    // method line 906
-    .method family virtual hidebysig 
-           instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
-    {
-        // Method begins at RVA 0x13758
-	// 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
+	.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.
 
-  } // end of class FilterChainConfigurator
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Filters.FilterChain
+		.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 ()
+	{
+		.get instance default bool NAnt.Core.Types.Pattern::get_Enabled () 
+	}
+  } // end of class NAnt.Core.Types.Pattern
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit TabsToSpaces
-  	extends NAnt.Core.Filters.Filter
+  .class public auto ansi serializable beforefieldinit PathElement
+  	extends NAnt.Core.Element
   {
     .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                                              ) // .
+		01 00 0B 70 61 74 68 65 6C 65 6D 65 6E 74 00 00 ) // ...pathelement..
 
-    .field  private  int32 _tabLength
-    .field  private  int32 _spacesRemaining
-    .field  private  class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate ReadChar
+    .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 907
+    // method line 986
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x13a5c
+        // Method begins at RVA 0x14dd0
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.8 
-	IL_0002:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
+	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.Filters.Filter::'.ctor'()
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
 	IL_000d:  ret 
-    } // end of method TabsToSpaces::.ctor
+    } // end of method PathElement::.ctor
 
-    // method line 908
+    // method line 987
     .method public hidebysig specialname 
-           instance default int32 get_TabLength ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x13a6c
+        // Method begins at RVA 0x14de0
 	// 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.Filters.TabsToSpaces::_tabLength
+	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 TabsToSpaces::get_TabLength
+    } // end of method PathElement::get_File
 
-    // method line 909
+    // method line 988
     .method public hidebysig specialname 
-           instance default void set_TabLength (int32 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x13a87
+        // Method begins at RVA 0x14dfb
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::_file
 	IL_0008:  ret 
-    } // end of method TabsToSpaces::set_TabLength
-
-    // method line 910
-    .method public virtual hidebysig 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
-    {
-        // Method begins at RVA 0x13a91
-	// 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.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 911
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x13aad
-	// 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 912
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
-    {
-        // Method begins at RVA 0x13ac0
-	// 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 913
-    .method private hidebysig 
-           instance default int32 GetNextCharacter (class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate AcquireChar)  cil managed 
-    {
-        // Method begins at RVA 0x13ae4
-	// 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 914
-    .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 915
-    .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 916
-    .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 917
-    .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 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..
-
-    .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 918
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x13b44
-	// 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
-
-    // method line 919
-    .method private hidebysig specialname 
-           instance default bool get_AtEnd ()  cil managed 
-    {
-        // Method begins at RVA 0x13b4c
-	// 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_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method ExpandProperties::get_AtEnd
-
-    // method line 920
-    .method public virtual hidebysig 
-           instance default void InitializeFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x13b6f
-	// 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
+    } // end of method PathElement::set_File
 
-    // method line 921
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
+    // method line 989
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x13b88
-	// Code size 36 (0x24)
+        // Method begins at RVA 0x14e08
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0,
-		int32	V_1)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Peek()
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::_directory
 	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
-
-    // method line 922
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x13bb8
-	// 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_000c:  nop 
-	IL_000d:  ldc.i4.m1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0027
-
-	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
+	IL_0008:  br IL_000d
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method ExpandProperties::Peek
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PathElement::get_Directory
 
-    // method line 923
-    .method private hidebysig 
-           instance default void Advance ()  cil managed 
+    // method line 990
+    .method public hidebysig specialname 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x13bf0
-	// Code size 73 (0x49)
-	.maxstack 3
+        // Method begins at RVA 0x14e23
+	// Code size 9 (0x9)
+	.maxstack 8
 	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 924
-    .method private hidebysig 
-           instance default void ReplenishBuffer ()  cil managed 
-    {
-        // Method begins at RVA 0x13c48
-	// Code size 273 (0x111)
-	.maxstack 5
-	.locals init (
-		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.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_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_0046:  ldloc.0 
-	IL_0047:  brtrue IL_0008
-
-	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
-
-	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
-
-	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
-
-	.property instance bool AtEnd ()
-	{
-		.get instance default bool NAnt.Core.Filters.ExpandProperties::get_AtEnd () 
-	}
-  } // end of class NAnt.Core.Filters.ExpandProperties
-}
-
-.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 925
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x13d65
-	// 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_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::_directory
+	IL_0008:  ret 
+    } // end of method PathElement::set_Directory
 
-    // method line 926
+    // method line 991
     .method public hidebysig specialname 
-           instance default string get_From ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x13d88
+        // Method begins at RVA 0x14e30
 	// 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.Filters.ReplaceString::_from
+	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 ReplaceString::get_From
+    } // end of method PathElement::get_Path
 
-    // method line 927
+    // method line 992
     .method public hidebysig specialname 
-           instance default void set_From (string 'value')  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x13da3
+        // Method begins at RVA 0x14e4b
 	// 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 NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::_path
 	IL_0008:  ret 
-    } // end of method ReplaceString::set_From
+    } // end of method PathElement::set_Path
 
-    // method line 928
+    // method line 993
     .method public hidebysig specialname 
-           instance default string get_To ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x13db0
+        // Method begins at RVA 0x14e58
 	// 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.Filters.ReplaceString::_to
+	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 ReplaceString::get_To
+    } // end of method PathElement::get_IfDefined
 
-    // method line 929
+    // method line 994
     .method public hidebysig specialname 
-           instance default void set_To (string 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x13dcb
+        // Method begins at RVA 0x14e73
 	// 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 bool NAnt.Core.Types.PathElement::_ifDefined
 	IL_0008:  ret 
-    } // end of method ReplaceString::set_To
+    } // end of method PathElement::set_IfDefined
 
-    // method line 930
+    // method line 995
     .method public hidebysig specialname 
-           instance default bool get_IgnoreCase ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x13dd8
+        // Method begins at RVA 0x14e80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	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 ReplaceString::get_IgnoreCase
+    } // end of method PathElement::get_UnlessDefined
 
-    // method line 931
+    // method line 996
     .method public hidebysig specialname 
-           instance default void set_IgnoreCase (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x13df3
+        // Method begins at RVA 0x14e9b
 	// 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 bool NAnt.Core.Types.PathElement::_unlessDefined
 	IL_0008:  ret 
-    } // end of method ReplaceString::set_IgnoreCase
-
-    // method line 932
-    .method public virtual hidebysig 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
-    {
-        // Method begins at RVA 0x13dfd
-	// 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 PathElement::set_UnlessDefined
 
-    // method line 933
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
+    // method line 997
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Parts ()  cil managed 
     {
-        // Method begins at RVA 0x13e1c
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x14ea8
+	// Code size 129 (0x81)
 	.maxstack 2
 	.locals init (
-		int32	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:  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:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_0007:  brfalse IL_002c
 
+	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:  ret 
-    } // end of method ReplaceString::Read
-
-    // method line 934
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x13e3d
-	// 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_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 935
-    .method private hidebysig 
-           instance default bool FindString (int32 startChar, [out] bool& streamEnded, [out] string& nonMatchingChars)  cil managed 
-    {
-        // Method begins at RVA 0x13e50
-	// 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_002c:  ldarg.0 
+	IL_002d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
+	IL_0032:  brfalse IL_0057
 
 	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_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:  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_0050:  ldloc.2 
+	IL_0051:  stloc.1 
+	IL_0052:  br IL_007f
 
-	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_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_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_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_009b:  ldc.i4.1 
-	IL_009c:  stloc.3 
-	IL_009d:  br IL_00a2
+	IL_0074:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0079:  stloc.1 
+	IL_007a:  br IL_007f
 
-	IL_00a2:  ldloc.3 
-	IL_00a3:  ret 
-    } // end of method ReplaceString::FindString
+	IL_007f:  ldloc.1 
+	IL_0080:  ret 
+    } // end of method PathElement::get_Parts
 
-    // method line 936
-    .method private hidebysig 
-           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate AcquireChar)  cil managed 
+    // method line 998
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x13f00
-	// Code size 397 (0x18d)
-	.maxstack 4
-	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2)
+        // Method begins at RVA 0x14f38
+	// Code size 134 (0x86)
+	.maxstack 3
 	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_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_0007:  brtrue IL_0043
 
-	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_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_0031:  nop 
-	IL_0032:  ldarg.0 
-	IL_0033:  ldfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
-	IL_0038:  brfalse IL_0083
+	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_003d:  ldarg.0 
-	IL_003e:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	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:  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 937
-    .method private hidebysig 
-           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
-    {
-        // Method begins at RVA 0x1409c
-	// 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_0044:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_0049:  brtrue IL_0085
 
-	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_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_0023:  nop 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldarg.2 
-	IL_0026:  ceq 
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
+	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_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method ReplaceString::CompareCharacters
+	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
 
-	.property instance string From ()
+	.property instance class [mscorlib]System.IO.FileInfo File ()
 	{
-		.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.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-		.get instance default string NAnt.Core.Filters.ReplaceString::get_From () 
-		.set instance default void NAnt.Core.Filters.ReplaceString::set_From (string 'value') 
+		.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 string To ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
 	{
-		.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.
+		.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.Filters.ReplaceString::get_To () 
-		.set instance default void NAnt.Core.Filters.ReplaceString::set_To (string 'value') 
+		.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 bool IgnoreCase ()
+	.property instance class NAnt.Core.Types.PathSet Path ()
 	{
-		.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 ) // ....
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-		.get instance default bool NAnt.Core.Filters.ReplaceString::get_IgnoreCase () 
-		.set instance default void NAnt.Core.Filters.ReplaceString::set_IgnoreCase (bool 'value') 
+		.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') 
 	}
-  .class nested private auto ansi sealed AcquireCharDelegate
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 938
-    .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 939
-    .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 940
-    .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 941
-    .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
+	.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 AcquireCharDelegate
+		.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..
 
-  } // end of class NAnt.Core.Filters.ReplaceString
+		.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
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit ReplaceTokens
-  	extends NAnt.Core.Filters.Filter
+  .class public auto ansi beforefieldinit XsltExtensionObject
+  	extends NAnt.Core.Element
   {
     .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                                           ) // ..
+		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  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
+    .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 942
+    // method line 999
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x140d8
-	// Code size 48 (0x30)
+        // Method begins at RVA 0x14fca
+	// Code size 26 (0x1a)
 	.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_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 943
+    // method line 1000
     .method public hidebysig specialname 
-           instance default char get_BeginToken ()  cil managed 
+           instance default string get_NamespaceUri ()  cil managed 
     {
-        // Method begins at RVA 0x1410c
+        // Method begins at RVA 0x14fe8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		char	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
+	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 ReplaceTokens::get_BeginToken
+    } // end of method XsltExtensionObject::get_NamespaceUri
 
-    // method line 944
+    // method line 1001
     .method public hidebysig specialname 
-           instance default void set_BeginToken (char 'value')  cil managed 
+           instance default void set_NamespaceUri (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x14127
+        // Method begins at RVA 0x15003
 	// 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:  stfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_BeginToken
+    } // end of method XsltExtensionObject::set_NamespaceUri
 
-    // method line 945
+    // method line 1002
     .method public hidebysig specialname 
-           instance default char get_EndToken ()  cil managed 
+           instance default string get_TypeName ()  cil managed 
     {
-        // Method begins at RVA 0x14134
+        // Method begins at RVA 0x15010
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		char	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld char NAnt.Core.Filters.ReplaceTokens::_endToken
+	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 ReplaceTokens::get_EndToken
+    } // end of method XsltExtensionObject::get_TypeName
 
-    // method line 946
+    // method line 1003
     .method public hidebysig specialname 
-           instance default void set_EndToken (char 'value')  cil managed 
+           instance default void set_TypeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1414f
+        // Method begins at RVA 0x1502b
 	// 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 string NAnt.Core.Types.XsltExtensionObject::_typeName
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_EndToken
+    } // end of method XsltExtensionObject::set_TypeName
 
-    // method line 947
+    // method line 1004
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Token[] get_Tokens ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_AssemblyPath ()  cil managed 
     {
-        // Method begins at RVA 0x1415c
+        // Method begins at RVA 0x15038
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Token[]	V_0)
+		class [mscorlib]System.IO.FileInfo	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 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 ReplaceTokens::get_Tokens
+    } // end of method XsltExtensionObject::get_AssemblyPath
 
-    // method line 948
+    // method line 1005
     .method public hidebysig specialname 
-           instance default void set_Tokens (class NAnt.Core.Types.Token[] 'value')  cil managed 
+           instance default void set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x14177
+        // Method begins at RVA 0x15053
 	// 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 class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::_assemblyPath
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_Tokens
+    } // end of method XsltExtensionObject::set_AssemblyPath
 
-    // method line 949
+    // method line 1006
     .method public hidebysig specialname 
-           instance default bool get_IgnoreCase ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x14184
+        // Method begins at RVA 0x15060
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_ignoreCase
+	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 ReplaceTokens::get_IgnoreCase
+    } // end of method XsltExtensionObject::get_IfDefined
 
-    // method line 950
+    // method line 1007
     .method public hidebysig specialname 
-           instance default void set_IgnoreCase (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1419f
+        // Method begins at RVA 0x1507b
 	// 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 bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_IgnoreCase
-
-    // method line 951
-    .method public virtual hidebysig 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
-    {
-        // Method begins at RVA 0x141a9
-	// 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 XsltExtensionObject::set_IfDefined
 
-    // method line 952
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
+    // method line 1008
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x141c8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x15088
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	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:  ldfld bool NAnt.Core.Types.XsltExtensionObject::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ReplaceTokens::Read
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XsltExtensionObject::get_UnlessDefined
 
-    // method line 953
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
+    // method line 1009
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x141e9
-	// Code size 17 (0x11)
+        // Method begins at RVA 0x150a3
+	// 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 ReplaceTokens::Peek
+	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
 
-    // method line 954
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1010
+    .method public hidebysig 
+           instance default object CreateInstance ()  cil managed 
     {
-        // Method begins at RVA 0x141fc
-	// Code size 190 (0xbe)
+        // Method begins at RVA 0x150b0
+	// Code size 217 (0xd9)
 	.maxstack 4
 	.locals init (
-		class NAnt.Core.Types.Token	V_0,
-		class NAnt.Core.Types.Token[]	V_1,
-		int32	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:  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_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_0020:  ldloc.0 
-	IL_0021:  callvirt instance bool class NAnt.Core.Types.Token::get_UnlessDefined()
-	IL_0026:  brtrue IL_006d
+	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_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_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_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 955
-    .method private hidebysig 
-           instance default string FindTokenContents ([out] bool& tokenNotFound, [out] bool& unknownToken, [out] bool& streamEnded)  cil managed 
-    {
-        // Method begins at RVA 0x142c8
-	// 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_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_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_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_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
 
-	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
+	} // 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_006a:  nop 
-	IL_006b:  ldc.i4.1 
-	IL_006c:  stloc.2 
-	IL_006d:  br IL_00dd
+	IL_00d7:  ldloc.3 
+	IL_00d8:  ret 
+    } // end of method XsltExtensionObject::CreateInstance
 
-	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
+	.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                                              ) // .
 
-	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
+		.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.
 
-	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
+		.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_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 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.
 
-	IL_00dd:  ldloc.2 
-	IL_00de:  brfalse IL_0165
+		.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_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 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..
 
-	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
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	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
+		.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_012f:  ldloc.s 5
-	IL_0131:  brfalse IL_0146
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	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
+		.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
+}
 
-	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
+.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..
 
-	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
+    .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
 
-	IL_017e:  ldloc.s 4
-	IL_0180:  ret 
-    } // end of method ReplaceTokens::FindTokenContents
+    // method line 1011
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x151a8
+	// Code size 15 (0xf)
+	.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
 
-    // method line 956
-    .method private hidebysig 
-           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate AcquireChar)  cil managed 
+    // method line 1012
+    .method public hidebysig specialname 
+           instance default string get_Host ()  cil managed 
     {
-        // Method begins at RVA 0x14458
-	// Code size 386 (0x182)
-	.maxstack 5
+        // Method begins at RVA 0x151b8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2)
+		string	V_0)
 	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_0002:  ldfld string NAnt.Core.Types.Proxy::_host
+	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 Proxy::get_Host
 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
-	IL_0043:  brfalse IL_008e
+    // method line 1013
+    .method public hidebysig specialname 
+           instance default void set_Host (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x151d3
+	// 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_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 1014
+    .method public hidebysig specialname 
+           instance default int32 get_Port ()  cil managed 
+    {
+        // Method begins at RVA 0x151e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	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_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 Proxy::get_Port
 
-	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 1015
+    .method public hidebysig specialname 
+           instance default void set_Port (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x151ff
+	// Code size 9 (0x9)
+	.maxstack 8
+	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_00b1:  nop 
-	IL_00b2:  br IL_00ed
+    // method line 1016
+    .method public hidebysig specialname 
+           instance default bool get_BypassOnLocal ()  cil managed 
+    {
+        // Method begins at RVA 0x1520c
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Proxy::get_BypassOnLocal
 
-	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
+    // method line 1017
+    .method public hidebysig specialname 
+           instance default void set_BypassOnLocal (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15227
+	// 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::_bypassOnLocal
+	IL_0008:  ret 
+    } // end of method Proxy::set_BypassOnLocal
 
-	IL_00e4:  nop 
-	IL_00e5:  ldc.i4.m1 
-	IL_00e6:  stloc.2 
-	IL_00e7:  br IL_0180
+    // method line 1018
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
+    {
+        // Method begins at RVA 0x15234
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.Credential	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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Proxy::get_Credentials
 
-	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
+    // method line 1019
+    .method public hidebysig specialname 
+           instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1524f
+	// 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
 
-	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
+    // method line 1020
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x1525c
+	// 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::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Proxy::get_IfDefined
 
-	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
+    // method line 1021
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15277
+	// 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
 
-	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
+    // method line 1022
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x15284
+	// 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::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0178:  nop 
-	IL_0179:  ldloc.0 
-	IL_017a:  stloc.2 
-	IL_017b:  br IL_0180
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Proxy::get_UnlessDefined
 
-	IL_0180:  ldloc.2 
-	IL_0181:  ret 
-    } // end of method ReplaceTokens::GetNextCharacter
+    // method line 1023
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1529f
+	// 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::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Proxy::set_UnlessDefined
 
-    // method line 957
-    .method private hidebysig 
-           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
+    // method line 1024
+    .method public hidebysig 
+           instance default class [System]System.Net.IWebProxy GetWebProxy ()  cil managed 
     {
-        // Method begins at RVA 0x145e8
-	// Code size 48 (0x30)
+        // Method begins at RVA 0x152ac
+	// Code size 105 (0x69)
 	.maxstack 2
 	.locals init (
-		bool	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:  call instance bool class NAnt.Core.Filters.ReplaceTokens::get_IgnoreCase()
-	IL_0007:  brfalse IL_0023
+	IL_0002:  call instance bool class NAnt.Core.Types.Proxy::get_IfDefined()
+	IL_0007:  brfalse IL_005b
 
-	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_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Types.Proxy::get_UnlessDefined()
+	IL_0012:  brtrue IL_005b
 
-	IL_0023:  nop 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldarg.2 
-	IL_0026:  ceq 
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
+	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_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method ReplaceTokens::CompareCharacters
+	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
 
-	.property instance char BeginToken ()
+	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 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 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 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.Types.Proxy::get_Host () 
+		.set instance default void NAnt.Core.Types.Proxy::set_Host (string 'value') 
 	}
-	.property instance char EndToken ()
+	.property instance int32 Port ()
 	{
-		.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 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.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.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default char NAnt.Core.Filters.ReplaceTokens::get_EndToken () 
-		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_EndToken (char 'value') 
+		.get instance default int32 NAnt.Core.Types.Proxy::get_Port () 
+		.set instance default void NAnt.Core.Types.Proxy::set_Port (int32 'value') 
 	}
-	.property instance class NAnt.Core.Types.Token[] Tokens ()
+	.property instance bool BypassOnLocal ()
 	{
-		.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.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.
 
-		.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') 
+		.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 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 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 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 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.Filters.ReplaceTokens::get_IgnoreCase () 
-		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_IgnoreCase (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Proxy::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Proxy::set_IfDefined (bool 'value') 
 	}
-  .class nested private auto ansi sealed AcquireCharDelegate
-  	extends [mscorlib]System.MulticastDelegate
+	.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 serializable beforefieldinit EnvironmentVariable
+  	extends NAnt.Core.Element
   {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 65 6E 76 00 00 ) // ...env..
 
-    // method line 958
+    .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 1025
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
+           instance default void '.ctor' (string name, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::.ctor
+        // Method begins at RVA 0x15321
+	// 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 959
-    .method public virtual hidebysig newslot 
-           instance default int32 Invoke ()  runtime managed 
+    // method line 1026
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::Invoke
+        // Method begins at RVA 0x1533f
+	// 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 line 960
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
+    // method line 1027
+    .method public hidebysig specialname 
+           instance default string get_VariableName ()  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::BeginInvoke
+        // Method begins at RVA 0x15350
+	// 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
 
-    // method line 961
-    .method public virtual hidebysig newslot 
-           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::get_VariableName
+
+    // method line 1028
+    .method public hidebysig specialname 
+           instance default void set_VariableName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::EndInvoke
+        // Method begins at RVA 0x1536b
+	// 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
 
-  } // end of class AcquireCharDelegate
+    // method line 1029
+    .method public hidebysig specialname 
+           instance default string get_LiteralValue ()  cil managed 
+    {
+        // Method begins at RVA 0x15378
+	// 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 NAnt.Core.Filters.ReplaceTokens
-}
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::get_LiteralValue
 
-.namespace NAnt.Core.Extensibility
-{
-  .class interface public auto ansi abstract IPluginConsumer
-  {
+    // method line 1030
+    .method public hidebysig specialname 
+           instance default void set_LiteralValue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15393
+	// 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 line 962
-    .method public virtual hidebysig newslot abstract 
-           instance default void ConsumePlugin (class NAnt.Core.Extensibility.IPlugin 'type')  cil managed 
+    // method line 1031
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IPluginConsumer::ConsumePlugin
+        // Method begins at RVA 0x153a4
+	// 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
 
-  } // end of class NAnt.Core.Extensibility.IPluginConsumer
-}
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::get_File
 
-.namespace NAnt.Core.Extensibility
-{
-  .class private auto ansi beforefieldinit FunctionArgument
-  	extends [mscorlib]System.Object
-  {
-    .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 1032
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x153bf
+	// 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 line 963
-    .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 
+    // method line 1033
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x14624
-	// Code size 45 (0x2d)
+        // Method begins at RVA 0x153d8
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::get_Directory
+
+    // method line 1034
+    .method public hidebysig specialname 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x153f3
+	// 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:  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_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
 
-    // method line 964
+    // method line 1035
     .method public hidebysig specialname 
-           instance default int32 get_Index ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x14654
+        // Method begins at RVA 0x1540c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
+	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 FunctionArgument::get_Index
+    } // end of method EnvironmentVariable::get_Path
 
-    // method line 965
+    // method line 1036
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15427
+	// 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 line 1037
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
     {
-        // Method begins at RVA 0x14670
+        // Method begins at RVA 0x15440
 	// 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.Extensibility.FunctionArgument::_name
+	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 FunctionArgument::get_Name
+    } // end of method EnvironmentVariable::get_PathSet
 
-    // method line 966
+    // method line 1038
     .method public hidebysig specialname 
-           instance default object get_Value ()  cil managed 
+           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x1468c
+        // Method begins at RVA 0x1545b
+	// Code size 50 (0x32)
+	.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
+
+    // method line 1039
+    .method public hidebysig specialname 
+           instance default string get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x15490
 	// 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.Extensibility.FunctionArgument::_value
+	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 FunctionArgument::get_Value
+    } // end of method EnvironmentVariable::get_Value
 
-    // method line 967
+    // method line 1040
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_BeforeArgument ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x146a8
+        // Method begins at RVA 0x154ac
 	// 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.Extensibility.FunctionArgument::_beforeArgument
+	IL_0002:  ldfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FunctionArgument::get_BeforeArgument
+    } // end of method EnvironmentVariable::get_IfDefined
 
-    // method line 968
+    // method line 1041
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_AfterArgument ()  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x154c7
+	// 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_0008:  ret 
+    } // end of method EnvironmentVariable::set_IfDefined
+
+    // method line 1042
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x146c4
+        // Method begins at RVA 0x154d4
 	// 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.Extensibility.FunctionArgument::_afterArgument
+	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 FunctionArgument::get_AfterArgument
+    } // end of method EnvironmentVariable::get_UnlessDefined
 
-	.property instance int32 Index ()
+    // method line 1043
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x154ef
+	// 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::_unlessDefined
+	IL_0008:  ret 
+    } // end of method EnvironmentVariable::set_UnlessDefined
+
+	.property instance string VariableName ()
 	{
-		.get instance default int32 NAnt.Core.Extensibility.FunctionArgument::get_Index () 
+		.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.EnvironmentVariable::get_VariableName () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_VariableName (string 'value') 
 	}
-	.property instance string Name ()
+	.property instance string LiteralValue ()
 	{
-		.get instance default string NAnt.Core.Extensibility.FunctionArgument::get_Name () 
+		.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.EnvironmentVariable::get_LiteralValue () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_LiteralValue (string 'value') 
 	}
-	.property instance object Value ()
+	.property instance class [mscorlib]System.IO.FileInfo File ()
 	{
-		.get instance default object NAnt.Core.Extensibility.FunctionArgument::get_Value () 
+		.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.EnvironmentVariable::get_File () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_File (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position BeforeArgument ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
 	{
-		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::get_BeforeArgument () 
+		.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.EnvironmentVariable::get_Directory () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position AfterArgument ()
+	.property instance class NAnt.Core.Types.PathSet Path ()
 	{
-		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::get_AfterArgument () 
+		.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.EnvironmentVariable::get_Path () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_Path (class NAnt.Core.Types.PathSet 'value') 
 	}
-  } // end of class NAnt.Core.Extensibility.FunctionArgument
+	.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.EnvironmentVariable::get_PathSet () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_PathSet (class NAnt.Core.Types.PathSet 'value') 
+	}
+	.property instance string Value ()
+	{
+		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_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.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..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.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.Extensibility
+.namespace NAnt.Core.Types
 {
-  .class private auto ansi beforefieldinit ExtensionAssembly
-  	extends [mscorlib]System.Object
+  .class public auto ansi serializable beforefieldinit EnvironmentSet
+  	extends NAnt.Core.Element
   {
-    .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
+    .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 969
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    .field  private  class NAnt.Core.Types.OptionCollection _options
+    .field  private  class NAnt.Core.Types.EnvironmentVariableCollection _environmentVariables
+
+    // method line 1044
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x146df
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x154f9
+	// 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 class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
+	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 1045
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
+    {
+        // Method begins at RVA 0x15518
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.OptionCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	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 ExtensionAssembly::.ctor
+    } // end of method EnvironmentSet::get_Options
 
-    // method line 970
+    // method line 1046
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+           instance default void set_Options (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15533
+	// 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_0008:  ret 
+    } // end of method EnvironmentSet::set_Options
+
+    // method line 1047
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
     {
-        // Method begins at RVA 0x146f0
+        // Method begins at RVA 0x15540
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0)
+		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
+	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 ExtensionAssembly::get_Assembly
+    } // end of method EnvironmentSet::get_EnvironmentVariables
 
-    // method line 971
-    .method assembly hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationSection ()  cil managed 
+    // method line 1048
+    .method public hidebysig specialname 
+           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x1470c
-	// Code size 115 (0x73)
-	.maxstack 2
+        // Method begins at RVA 0x1555b
+	// 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_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 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 1049
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15565
+	// 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
+
+    // method line 1050
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x15583
+	// 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 1051
+    .method public hidebysig specialname 
+           instance default string get_OptionName ()  cil managed 
+    {
+        // Method begins at RVA 0x15594
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Extensibility.ExtensionAssembly::_configurationInit
-	IL_0007:  brfalse IL_0018
+	IL_0002:  ldfld string NAnt.Core.Types.Option::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Option::get_OptionName
 
-	.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 1052
+    .method public hidebysig specialname 
+           instance default void set_OptionName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x155af
+	// 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_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
+    // method line 1053
+    .method public hidebysig specialname 
+           instance default string get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x155bc
+	// 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
 
-	  } // 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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Option::get_Value
 
-	} // 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 1054
+    .method public hidebysig specialname 
+           instance default void set_Value (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x155d7
+	// 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
 
-    // method line 972
-    .method public static hidebysig 
-           default class NAnt.Core.Extensibility.ExtensionAssembly Create (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    // method line 1055
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x147a8
-	// Code size 84 (0x54)
-	.maxstack 3
+        // Method begins at RVA 0x155e4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_1,
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_2)
+		bool	V_0)
 	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_0002:  ldfld bool NAnt.Core.Types.Option::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Option::get_IfDefined
 
-	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
+    // method line 1056
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x155ff
+	// 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_0052:  ldloc.2 
-	IL_0053:  ret 
-    } // end of method ExtensionAssembly::Create
+    // method line 1057
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x1560c
+	// 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::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 973
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Option::get_UnlessDefined
+
+    // method line 1058
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x14808
-	// Code size 11 (0xb)
+        // Method begins at RVA 0x15627
+	// Code size 9 (0x9)
 	.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_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
 
-	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
+	.property instance string OptionName ()
 	{
-		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::get_Assembly () 
+		.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.Option::get_OptionName () 
+		.set instance default void NAnt.Core.Types.Option::set_OptionName (string 'value') 
 	}
-	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationSection ()
+	.property instance string Value ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::get_ConfigurationSection () 
+		.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.Option::get_Value () 
+		.set instance default void NAnt.Core.Types.Option::set_Value (string 'value') 
 	}
-  } // end of class NAnt.Core.Extensibility.ExtensionAssembly
+	.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.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..
+
+		.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') 
+	}
+  } // end of class NAnt.Core.Types.Option
 }
 
-.namespace NAnt.Core.Extensibility
+.namespace NAnt.Core.Configuration
 {
-  .class public auto ansi abstract beforefieldinit ExtensionBuilder
-  	extends [mscorlib]System.Object
+  .class private auto ansi serializable beforefieldinit Runtime
+  	extends NAnt.Core.Element
   {
-    .field  private initonly  class NAnt.Core.Extensibility.ExtensionAssembly _extensionAssembly
+    .field  private  class NAnt.Core.Configuration.ManagedExecutionModes _modes
+    .field  private  class NAnt.Core.Configuration.DirList _probingPaths
 
-    // method line 974
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly)  cil managed 
+    // method line 1059
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x13038
-	// Code size 33 (0x21)
+        // Method begins at RVA 0x15631
+	// 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:  brtrue IL_0019
+	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_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
+    // method line 1060
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.DirList get_ProbingPaths ()  cil managed 
+    {
+        // Method begins at RVA 0x15650
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Configuration.DirList	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
 
-    // method line 975
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Runtime::get_ProbingPaths
+
+    // method line 1061
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.ManagedExecutionModes get_Modes ()  cil managed 
     {
-        // Method begins at RVA 0x1305a
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1566c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Configuration.ManagedExecutionModes	V_0)
+	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Runtime::get_Modes
+
+	.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 1062
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x15687
+	// 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:  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_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 976
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.Extensibility.ExtensionAssembly get_ExtensionAssembly ()  cil managed 
+    // method line 1063
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.RuntimeEngine get_Engine ()  cil managed 
     {
-        // Method begins at RVA 0x1306c
+        // Method begins at RVA 0x1569c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_0)
+		class NAnt.Core.Configuration.RuntimeEngine	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::_extensionAssembly
+	IL_0002:  ldfld class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::_engine
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExtensionBuilder::get_ExtensionAssembly
+    } // end of method ManagedExecutionMode::get_Engine
 
-    // method line 977
-    .method famorassem hidebysig specialname 
-           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+    // method line 1064
+    .method public hidebysig specialname 
+           instance default void set_Engine (class NAnt.Core.Configuration.RuntimeEngine 'value')  cil managed 
     {
-        // Method begins at RVA 0x13088
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x156b7
+	// 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
+
+    // method line 1065
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.EnvironmentSet get_Environment ()  cil managed 
+    {
+        // Method begins at RVA 0x156c4
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0)
+		class NAnt.Core.Types.EnvironmentSet	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_0002:  ldfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::_environmentSet
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ExtensionBuilder::get_Assembly
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedExecutionMode::get_Environment
 
-	.property instance class NAnt.Core.Extensibility.ExtensionAssembly ExtensionAssembly ()
+	.property instance class NAnt.Core.Configuration.RuntimeEngine Engine ()
 	{
-		.get instance default class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::get_ExtensionAssembly () 
+		.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 [mscorlib]System.Reflection.Assembly Assembly ()
+	.property instance class NAnt.Core.Types.EnvironmentSet Environment ()
 	{
-		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly () 
+		.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.Extensibility.ExtensionBuilder
+  } // end of class NAnt.Core.Configuration.ManagedExecutionMode
 }
 
-.namespace NAnt.Core.Extensibility
+.namespace NAnt.Core.Configuration
 {
-  .class interface public auto ansi abstract IPlugin
+  .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
 
-  } // end of class NAnt.Core.Extensibility.IPlugin
+    // method line 1066
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x156df
+	// 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
+
+    // method line 1067
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Program ()  cil managed 
+    {
+        // Method begins at RVA 0x156f4
+	// 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 1068
+    .method public hidebysig specialname 
+           instance default void set_Program (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1570f
+	// 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
+
+    // method line 1069
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
+    {
+        // Method begins at RVA 0x1571c
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RuntimeEngine::get_Arguments
+
+    // method line 1070
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x15738
+	// Code size 73 (0x49)
+	.maxstack 3
+	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
+
+	.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.Extensibility
+.namespace NAnt.Core.Configuration
 {
-  .class public auto ansi sealed beforefieldinit PluginConsumerAttribute
-  	extends [mscorlib]System.Attribute
+  .class private auto ansi serializable beforefieldinit ManagedExecutionModes
+  	extends NAnt.Core.Element
   {
-    .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
+    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _autoMode
+    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _strictMode
 
-    // method line 978
+    // method line 1071
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Type 'type')  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14814
-	// Code size 39 (0x27)
+        // Method begins at RVA 0x1578d
+	// 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.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_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ManagedExecutionModes::.ctor
 
-	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 1072
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Auto ()  cil managed 
+    {
+        // Method begins at RVA 0x15798
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Configuration.ManagedExecutionMode	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
 
-    // method line 979
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedExecutionModes::get_Auto
+
+    // method line 1073
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
+           instance default void set_Auto (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
+    {
+        // Method begins at RVA 0x157b3
+	// 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
+
+    // method line 1074
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Strict ()  cil managed 
     {
-        // Method begins at RVA 0x1483c
+        // Method begins at RVA 0x157c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::_type
+	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 PluginConsumerAttribute::get_PluginType
+    } // end of method ManagedExecutionModes::get_Strict
 
-	.property instance class [mscorlib]System.Type PluginType ()
+    // method line 1075
+    .method public hidebysig specialname 
+           instance default void set_Strict (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
+    {
+        // Method begins at RVA 0x157db
+	// 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
+
+    // method line 1076
+    .method public hidebysig 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode GetExecutionMode (valuetype NAnt.Core.Types.ManagedExecution 'managed')  cil managed 
+    {
+        // Method begins at RVA 0x157e8
+	// Code size 86 (0x56)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Configuration.ManagedExecutionMode	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 ()
 	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::get_PluginType () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 61 75 74 6F 00 00 ) // ...auto..
+
+		.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') 
 	}
-  } // end of class NAnt.Core.Extensibility.PluginConsumerAttribute
+	.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..
+
+		.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
 }
 
-.namespace NAnt.Core.Extensibility
+.namespace NAnt.Core.Configuration
 {
-  .class private auto ansi beforefieldinit PluginBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  .class private auto ansi serializable beforefieldinit ConditionalElement
+  	extends NAnt.Core.Element
   {
-    .field  private initonly  class [mscorlib]System.Type _pluginType
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 980
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type pluginType)  cil managed 
+    // method line 1077
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14857
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x1584a
+	// Code size 14 (0xe)
 	.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_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 1078
+    .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 0x1585c
+	// Code size 25 (0x19)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator	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.2 
-	IL_000a:  stfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::_pluginType
-	IL_000f:  ret 
-    } // end of method PluginBuilder::.ctor
+	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
 
-    // method line 981
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
+    // method line 1079
+    .method family hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x14868
+        // Method begins at RVA 0x15884
 	// 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.Type NAnt.Core.Extensibility.PluginBuilder::_pluginType
+	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 PluginBuilder::get_PluginType
+    } // end of method ConditionalElement::get_IfDefined
 
-    // method line 982
-    .method public hidebysig 
-           instance default class NAnt.Core.Extensibility.IPlugin CreatePlugin ()  cil managed 
+    // method line 1080
+    .method family hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x14884
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x1589f
+	// 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 1081
+    .method family hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x158ac
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Extensibility.IPlugin	V_0)
+		bool	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_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method PluginBuilder::CreatePlugin
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConditionalElement::get_UnlessDefined
 
-	.property instance class [mscorlib]System.Type PluginType ()
+    // method line 1082
+    .method family hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x158c7
+	// 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 1083
+    .method assembly hidebysig specialname 
+           instance default bool get_Enabled ()  cil managed 
+    {
+        // Method begins at RVA 0x158d4
+	// Code size 32 (0x20)
+	.maxstack 2
+	.locals init (
+		bool	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_0017:  ldc.i4.0 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
+
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method ConditionalElement::get_Enabled
+
+	.property instance bool IfDefined ()
 	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::get_PluginType () 
+		.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') 
 	}
-  } // end of class NAnt.Core.Extensibility.PluginBuilder
+	.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 1084
+    .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 0x15900
+	// 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
+
+	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_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
+
+	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 1085
+    .method family virtual hidebysig 
+           instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0x159a0
+	// Code size 34 (0x22)
+	.maxstack 2
+	.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_0013
+
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0020
+
+	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
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method ConditionalConfigurator::InitializeAttribute
+
+    // method line 1086
+    .method family virtual hidebysig 
+           instance default void InitializeOrderedChildElements ()  cil managed 
+    {
+        // Method begins at RVA 0x159ce
+	// Code size 24 (0x18)
+	.maxstack 8
+	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
+
+  } // end of class ConditionalConfigurator
+
+  } // end of class NAnt.Core.Configuration.ConditionalElement
 }
 
-.namespace NAnt.Core.Extensibility
+.namespace NAnt.Core.Configuration
 {
-  .class private auto ansi beforefieldinit PluginScanner
-  	extends [mscorlib]System.Object
+  .class private auto ansi serializable beforefieldinit DirectoryName
+  	extends NAnt.Core.Configuration.ConditionalElement
   {
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _pluginBuilders
+    .field  private  string _name
 
-    // method line 983
+    // method line 1087
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x148a9
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x159e7
+	// Code size 7 (0x7)
 	.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_0001:  call instance void class NAnt.Core.Configuration.ConditionalElement::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DirectoryName::.ctor
 
-    // method line 984
-    .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 line 1088
+    .method public hidebysig specialname 
+           instance default string get_DirName ()  cil managed 
     {
-        // Method begins at RVA 0x148bc
-	// Code size 116 (0x74)
-	.maxstack 7
+        // Method begins at RVA 0x159f0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		bool	V_1,
-		class NAnt.Core.Extensibility.PluginBuilder	V_2)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	IL_0007:  brfalse IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Configuration.DirectoryName::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0072
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DirectoryName::get_DirName
 
-	.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
+    // method line 1089
+    .method public hidebysig specialname 
+           instance default void set_DirName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15a0b
+	// Code size 9 (0x9)
+	.maxstack 8
+	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
 
-	  IL_002b:  nop 
-	  IL_002c:  ldc.i4.0 
-	  IL_002d:  stloc.0 
-	  IL_002e:  leave IL_0072
+	.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.
 
-	  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
+		.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
+}
 
-	} // 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
+.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
 
-    // method line 985
-    .method public hidebysig 
-           instance default void RegisterPlugins (class NAnt.Core.Extensibility.IPluginConsumer consumer)  cil managed 
+    // method line 1090
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1494c
-	// Code size 209 (0xd1)
-	.maxstack 3
+        // Method begins at RVA 0x15a15
+	// 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
+
+    // method line 1091
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    {
+        // Method begins at RVA 0x15a20
+	// Code size 49 (0x31)
+	.maxstack 1
 	.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)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
+	IL_0007:  brtrue IL_0023
 
-	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_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:  ldloc.0 
-	IL_002b:  ldlen 
-	IL_002c:  conv.i4 
-	IL_002d:  brtrue IL_0038
+	IL_002a:  br IL_002f
 
-	IL_0032:  nop 
-	IL_0033:  br IL_00d0
+	IL_002f:  ldloc.0 
+	IL_0030:  ret 
+    } // end of method DirList::get_Directory
 
-	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
+    // method line 1092
+    .method public hidebysig specialname 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15a5d
+	// 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
 
-	  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
+    // method line 1093
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.DirectoryName[] get_DirectoryNames ()  cil managed 
+    {
+        // Method begins at RVA 0x15a68
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Configuration.DirectoryName[]	V_0)
+	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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DirList::get_DirectoryNames
 
-	  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
+    // method line 1094
+    .method public hidebysig specialname 
+           instance default void set_DirectoryNames (class NAnt.Core.Configuration.DirectoryName[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x15a83
+	// 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_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
+    // method line 1095
+    .method public hidebysig 
+           instance default string[] GetDirectories ()  cil managed 
+    {
+        // Method begins at RVA 0x15a90
+	// 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
 
-	  IL_00a9:  nop 
-	  IL_00aa:  ldloc.2 
-	  IL_00ab:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00b0:  brtrue IL_004a
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method DirList::GetDirectories
 
-	  IL_00b5:  leave IL_00d0
+    // method line 1096
+    .method assembly hidebysig 
+           instance default string[] GetDirectories (string baseDir)  cil managed 
+    {
+        // Method begins at RVA 0x15ab8
+	// 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
 
-	} // 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_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_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_001d:  nop 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  newarr [mscorlib]System.String
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_0072
 
-  } // end of class NAnt.Core.Extensibility.PluginScanner
+	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_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
+
+	IL_006b:  ldloc.1 
+	IL_006c:  stloc.0 
+	IL_006d:  br IL_0072
+
+	IL_0072:  ldloc.0 
+	IL_0073:  ret 
+    } // end of method DirList::GetDirectories
+
+	.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.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..
+
+		.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
 }
 
 .namespace NAnt.Core.Util
@@ -36198,11 +39205,11 @@
     .field  private  class [mscorlib]System.Type _argumentSpecification
     .field  private  bool _supportsResponseFile
 
-    // method line 986
+    // method line 1097
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Type argumentSpecification, bool supportsResponseFile)  cil managed 
     {
-        // Method begins at RVA 0x14a3c
+        // Method begins at RVA 0x15b38
 	// Code size 211 (0xd3)
 	.maxstack 3
 	.locals init (
@@ -36305,11 +39312,11 @@
 	IL_00d2:  ret 
     } // end of method CommandLineParser::.ctor
 
-    // method line 987
+    // method line 1098
     .method public virtual hidebysig newslot specialname 
            instance default string get_LogoBanner ()  cil managed 
     {
-        // Method begins at RVA 0x14b1c
+        // Method begins at RVA 0x15c18
 	// Code size 634 (0x27a)
 	.maxstack 8
 	.locals init (
@@ -36604,11 +39611,11 @@
 	IL_0279:  ret 
     } // end of method CommandLineParser::get_LogoBanner
 
-    // method line 988
+    // method line 1099
     .method public virtual hidebysig newslot specialname 
            instance default string get_Usage ()  cil managed 
     {
-        // Method begins at RVA 0x14da4
+        // Method begins at RVA 0x15ea0
 	// Code size 805 (0x325)
 	.maxstack 5
 	.locals init (
@@ -36904,11 +39911,11 @@
 	IL_0324:  ret 
     } // end of method CommandLineParser::get_Usage
 
-    // method line 989
+    // method line 1100
     .method public hidebysig specialname 
            instance default bool get_NoArgs ()  cil managed 
     {
-        // Method begins at RVA 0x150f4
+        // Method begins at RVA 0x161f0
 	// Code size 121 (0x79)
 	.maxstack 2
 	.locals init (
@@ -36976,11 +39983,11 @@
 	IL_0078:  ret 
     } // end of method CommandLineParser::get_NoArgs
 
-    // method line 990
+    // method line 1101
     .method public hidebysig 
            instance default void Parse (string[] args, object destination)  cil managed 
     {
-        // Method begins at RVA 0x1518c
+        // Method begins at RVA 0x16288
 	// Code size 156 (0x9c)
 	.maxstack 2
 	.locals init (
@@ -37056,11 +40063,11 @@
 	IL_009b:  ret 
     } // end of method CommandLineParser::Parse
 
-    // method line 991
+    // method line 1102
     .method private hidebysig 
            instance default string[] ParseArguments (string sourceString, char[] delimiters)  cil managed 
     {
-        // Method begins at RVA 0x15244
+        // Method begins at RVA 0x16340
 	// Code size 208 (0xd0)
 	.maxstack 3
 	.locals init (
@@ -37173,11 +40180,11 @@
 	IL_00cf:  ret 
     } // end of method CommandLineParser::ParseArguments
 
-    // method line 992
+    // method line 1103
     .method private static hidebysig 
            default bool IsDelimiter (char c, char[] delimiters)  cil managed 
     {
-        // Method begins at RVA 0x15320
+        // Method begins at RVA 0x1641c
 	// Code size 54 (0x36)
 	.maxstack 2
 	.locals init (
@@ -37226,11 +40233,11 @@
 	IL_0035:  ret 
     } // end of method CommandLineParser::IsDelimiter
 
-    // method line 993
+    // method line 1104
     .method private hidebysig 
            instance default void ProcessResponseFile (string file)  cil managed 
     {
-        // Method begins at RVA 0x15364
+        // Method begins at RVA 0x16460
 	// Code size 148 (0x94)
 	.maxstack 4
 	.locals init (
@@ -37313,11 +40320,11 @@
 	IL_0093:  ret 
     } // end of method CommandLineParser::ProcessResponseFile
 
-    // method line 994
+    // method line 1105
     .method private hidebysig 
            instance default void ParseArgumentList (string[] args)  cil managed 
     {
-        // Method begins at RVA 0x15414
+        // Method begins at RVA 0x16510
 	// Code size 675 (0x2a3)
 	.maxstack 4
 	.locals init (
@@ -37608,11 +40615,11 @@
 	IL_02a2:  ret 
     } // end of method CommandLineParser::ParseArgumentList
 
-    // method line 995
+    // method line 1106
     .method private static hidebysig 
            default class NAnt.Core.Util.CommandLineArgumentAttribute GetCommandLineAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
-        // Method begins at RVA 0x156c4
+        // Method begins at RVA 0x167c0
 	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
@@ -37669,1896 +40676,1006 @@
 
 .namespace NAnt.Core.Util
 {
-  .class public auto ansi sealed beforefieldinit StringUtils
+  .class public auto ansi sealed beforefieldinit ReflectionUtils
   	extends [mscorlib]System.Object
   {
 
-    // method line 996
+    // method line 1107
     .method private hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1570e
+        // Method begins at RVA 0x1680a
 	// 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
+    } // end of method ReflectionUtils::.ctor
 
-    // method line 997
+    // method line 1108
     .method public static hidebysig 
-           default bool EndsWith (string 'value', char c)  cil managed 
+           default class [mscorlib]System.Type GetTypeFromString (string typeName, bool throwOnError)  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...
-
-        // Method begins at RVA 0x15718
-	// Code size 63 (0x3f)
-	.maxstack 3
+        // Method begins at RVA 0x16814
+	// Code size 242 (0xf2)
+	.maxstack 4
 	.locals init (
-		int32	V_0,
-		bool	V_1)
+		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:  brtrue IL_0012
+	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_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_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_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_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_002e:  nop 
-	IL_002f:  ldc.i4.1 
-	IL_0030:  stloc.1 
-	IL_0031:  br IL_003d
+	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_0036:  ldc.i4.0 
-	IL_0037:  stloc.1 
-	IL_0038:  br IL_003d
+	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_003d:  ldloc.1 
-	IL_003e:  ret 
-    } // end of method StringUtils::EndsWith
+	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
 
-    // method line 998
-    .method public static hidebysig 
-           default bool IsNullOrEmpty (string 'value')  cil managed 
+	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 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 1109
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  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...
+        // Method begins at RVA 0x169b5
+	// 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
 
-        // Method begins at RVA 0x15764
-	// Code size 27 (0x1b)
+  } // end of class NAnt.Core.Util.DefaultCommandLineArgumentAttribute
+}
+
+.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
+
+    // method line 1110
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x169bf
+	// 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 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 1111
+    .method family virtual hidebysig 
+           instance default void Finalize ()  cil managed 
+    {
+        // Method begins at RVA 0x169e0
+	// 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
+
+    // method line 1112
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x16a14
+	// 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:  brfalse IL_0012
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.Util.GacCache::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method GacCache::get_Project
 
-	IL_0012:  ldc.i4.1 
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+    // method line 1113
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.AppDomain get_Domain ()  cil managed 
+    {
+        // Method begins at RVA 0x16a30
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.AppDomain	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringUtils::IsNullOrEmpty
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method GacCache::get_Domain
 
-    // method line 999
-    .method public static hidebysig 
-           default string ConvertEmptyToNull (string 'value')  cil managed 
+    // method line 1114
+    .method private hidebysig specialname 
+           instance default class NAnt.Core.Util.GacCache/GacResolver get_Resolver ()  cil managed 
     {
-        // Method begins at RVA 0x1578c
-	// Code size 28 (0x1c)
-	.maxstack 1
+        // Method begins at RVA 0x16a4c
+	// Code size 80 (0x50)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Util.GacCache/GacResolver	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brtrue IL_0013
+	IL_0002:  ldfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
+	IL_0007:  brtrue IL_0042
 
-	IL_000c:  ldarg.0 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_001a
+	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_0013:  ldnull 
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
+	IL_004e:  ldloc.0 
+	IL_004f:  ret 
+    } // end of method GacCache::get_Resolver
 
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method StringUtils::ConvertEmptyToNull
+    // method line 1115
+    .method public final virtual hidebysig newslot 
+           instance default void Dispose ()  cil managed 
+    {
+        // Method begins at RVA 0x16aa8
+	// Code size 15 (0xf)
+	.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
 
-    // method line 1000
-    .method public static hidebysig 
-           default string ConvertNullToEmpty (string 'value')  cil managed 
+    // method line 1116
+    .method private hidebysig 
+           instance default void Dispose (bool disposing)  cil managed 
     {
-        // Method begins at RVA 0x157b4
-	// Code size 27 (0x1b)
-	.maxstack 1
+        // Method begins at RVA 0x16ab8
+	// Code size 33 (0x21)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_disposed
+	IL_0007:  brtrue IL_0020
+
+	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 1117
+    .method public hidebysig 
+           instance default void RecreateDomain ()  cil managed 
+    {
+        // Method begins at RVA 0x16adc
+	// 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:  brtrue IL_0012
+	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
+	IL_0007:  brtrue IL_001c
 
-	IL_0007:  ldsfld string [mscorlib]System.String::Empty
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0019
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0012:  brfalse IL_001c
 
-	IL_0012:  ldarg.0 
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0017:  br IL_0071
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringUtils::ConvertNullToEmpty
+	IL_001c:  ldarg.0 
+	IL_001d:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0022:  brfalse IL_0032
 
-    // method line 1001
-    .method public static hidebysig 
-           default string Join (string separator, class [System]System.Collections.Specialized.StringCollection 'value')  cil managed 
+	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 1118
+    .method public hidebysig 
+           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
     {
-        // Method begins at RVA 0x157dc
-	// Code size 66 (0x42)
-	.maxstack 3
+        // Method begins at RVA 0x16b5c
+	// Code size 160 (0xa0)
+	.maxstack 4
 	.locals init (
-		string[]	V_0,
+		bool	V_0,
 		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0012
-
-	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_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_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_002b:  nop 
+	IL_002c:  ldc.i4.0 
+	IL_002d:  stloc.0 
+	IL_002e:  br IL_009e
 
+	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:  ret 
-    } // end of method StringUtils::Join
+	IL_0041:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_0046:  brfalse IL_0063
 
-    // method line 1002
-    .method public static hidebysig 
-           default class [System]System.Collections.Specialized.StringCollection Clone (class [System]System.Collections.Specialized.StringCollection stringCollection)  cil managed 
+	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_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
+
+	IL_009e:  ldloc.0 
+	IL_009f:  ret 
+    } // end of method GacCache::IsAssemblyInGac
+
+	.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
+  {
+
+    // method line 1119
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1582c
-	// Code size 43 (0x2b)
-	.maxstack 3
+        // Method begins at RVA 0x16c08
+	// 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 GacResolver::.ctor
+
+    // method line 1120
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
+    {
+        // Method begins at RVA 0x16c10
+	// Code size 47 (0x2f)
+	.maxstack 2
 	.locals init (
-		string[]	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2)
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
 	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_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
+	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
 	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_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_0029:  ldloc.2 
-	IL_002a:  ret 
-    } // end of method StringUtils::Clone
+	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
 
-  } // end of class NAnt.Core.Util.StringUtils
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method GacResolver::InitializeLifetimeService
+
+    // method line 1121
+    .method public hidebysig 
+           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
+    {
+        // Method begins at RVA 0x16c4c
+	// Code size 82 (0x52)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Reflection.AssemblyName	V_0,
+		bool	V_1,
+		class [mscorlib]System.Reflection.Assembly	V_2)
+	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_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
+
+	} // 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
+
+	} // end handler 0
+	IL_0050:  ldloc.1 
+	IL_0051:  ret 
+    } // end of method GacResolver::IsAssemblyInGac
+
+  } // end of class GacResolver
+
+  } // end of class NAnt.Core.Util.GacCache
 }
 
 .namespace NAnt.Core.Util
 {
-  .class public auto ansi abstract sealed beforefieldinit FileUtils
+  .class public auto ansi sealed serializable beforefieldinit AssemblyResolver
   	extends [mscorlib]System.Object
   {
-    .field private static literal  int32 _bufferSize = int32(0x00002000)
+    .field  private  class [mscorlib]System.Collections.Hashtable _assemblyCache
+    .field  private  class NAnt.Core.Task _task
 
-    // method line 1003
-    .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 1122
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x15864
-	// Code size 329 (0x149)
-	.maxstack 4
+        // Method begins at RVA 0x16cbc
+	// 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 1123
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x16cd0
+	// 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 line 1124
+    .method public hidebysig 
+           instance default void Attach ()  cil managed 
+    {
+        // Method begins at RVA 0x16ce0
+	// Code size 46 (0x2e)
+	.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
+
+    // method line 1125
+    .method public hidebysig 
+           instance default void Detach ()  cil managed 
+    {
+        // Method begins at RVA 0x16d0f
+	// Code size 57 (0x39)
+	.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
+
+    // method line 1126
+    .method private hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly AssemblyResolve (object sender, class [mscorlib]System.ResolveEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x16d4c
+	// Code size 502 (0x1f6)
+	.maxstack 7
 	.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.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:  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_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_002e:  ldarg.3 
-	IL_002f:  brtrue IL_004a
+	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_0034:  ldarg.s 4
-	IL_0036:  brtrue IL_004a
+	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
 
-	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_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_004a:  nop 
-	IL_004b:  ldarg.3 
-	IL_004c:  brfalse IL_0057
+	IL_0079:  nop 
+	IL_007a:  br IL_00c3
 
-	IL_0051:  ldarg.3 
-	IL_0052:  br IL_005c
+	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_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_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_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_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_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_00d4:  ldloc.0 
+	IL_00d5:  brfalse IL_0134
 
-	    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_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_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_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_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_012e:  nop 
+	IL_012f:  br IL_01cc
 
-	    IL_00db:  nop 
-	    IL_00dc:  br IL_011f
+	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_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_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_0106:  nop 
-	    IL_0107:  leave IL_011e
+	  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_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_01a2:  nop 
+	  IL_01a3:  ldloc.s 7
+	  IL_01a5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_01aa:  brtrue IL_014d
 
-	    IL_011e:  nop 
-	    IL_011f:  nop 
-	    IL_0120:  leave IL_0134
+	  IL_01af:  leave IL_01cb
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0125:  ldloc.s 4
-	    IL_0127:  brfalse IL_0133
+	} // 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_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
+	  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
 
-	} // end .try 1
-	finally  { // 1
-	  IL_013a:  ldloc.2 
-	  IL_013b:  brfalse IL_0146
+	IL_01f3:  ldloc.s 5
+	IL_01f5:  ret 
+    } // end of method AssemblyResolver::AssemblyResolve
 
-	  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 1127
+    .method private hidebysig 
+           instance default void AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x16f60
+	// Code size 66 (0x42)
+	.maxstack 7
+	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
 
-    // method line 1004
-    .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 1128
+    .method private hidebysig 
+           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
-        // Method begins at RVA 0x159d8
-	// Code size 88 (0x58)
-	.maxstack 5
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+        // Method begins at RVA 0x16fae
+	// Code size 29 (0x1d)
+	.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_0002:  ldfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
+	IL_0007:  brfalse IL_001c
 
 	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_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_002f:  ldarg.s 4
-	IL_0031:  brtrue IL_0044
+  } // end of class NAnt.Core.Util.AssemblyResolver
+}
 
-	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
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit DateTimeProvider
+  	extends [mscorlib]System.Object
+  {
 
-	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 1129
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x16fcc
+	// 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 line 1005
-    .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 1130
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.DateTime get_Now ()  cil managed 
     {
-        // Method begins at RVA 0x15a3c
-	// Code size 180 (0xb4)
-	.maxstack 5
+        // Method begins at RVA 0x16fd4
+	// Code size 14 (0xe)
+	.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)
+		valuetype [mscorlib]System.DateTime	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_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 1006
-    .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 0x15afc
-	// Code size 308 (0x134)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.IOException	V_2)
-	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_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_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 1007
-    .method assembly static hidebysig 
-           default string GetTempDirectoryName ()  cil managed 
-    {
-        // Method begins at RVA 0x15c58
-	// 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 1008
-    .method public static hidebysig 
-           default string ReadFile (string fileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding)  cil managed 
-    {
-        // Method begins at RVA 0x15c7c
-	// Code size 166 (0xa6)
-	.maxstack 3
-	.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)
-	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_00a3:  ldloc.s 6
-	IL_00a5:  ret 
-    } // end of method FileUtils::ReadFile
-
-    // method line 1009
-    .method public static hidebysig 
-           default class [mscorlib]System.IO.DirectoryInfo GetTempDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x15d40
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1)
-	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_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_0020:  ldloc.1 
-	IL_0021:  ret 
-    } // end of method FileUtils::GetTempDirectory
-
-    // method line 1010
-    .method public static hidebysig 
-           default string CombinePaths (string path1, string path2)  cil managed 
-    {
-        // Method begins at RVA 0x15d70
-	// Code size 664 (0x298)
-	.maxstack 4
-	.locals init (
-		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:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  brfalse IL_0019
-
-	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_0019:  ldarg.0 
-	IL_001a:  brtrue IL_002b
-
-	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_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_0048:  nop 
-	IL_0049:  ldarg.1 
-	IL_004a:  stloc.0 
-	IL_004b:  br IL_0296
-
-	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_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_0090:  ldloc.s 6
-	IL_0092:  ldstr "."
-	IL_0097:  call bool string::op_Equality(string, string)
-	IL_009c:  brfalse IL_00a7
-
-	IL_00a1:  nop 
-	IL_00a2:  br IL_0120
-
-	IL_00a7:  ldloc.s 6
-	IL_00a9:  ldstr ".."
-	IL_00ae:  call bool string::op_Equality(string, string)
-	IL_00b3:  brfalse IL_0113
-
-	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_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_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_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_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_0130:  ldarg.0 
-	IL_0131:  callvirt instance int32 string::get_Length()
-	IL_0136:  ldc.i4.0 
-	IL_0137:  ble IL_0153
-
-	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_0153:  ldc.i4.0 
-	IL_0154:  stloc.s 7
-	IL_0156:  ldloc.s 7
-	IL_0158:  brfalse IL_017b
-
-	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_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_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_01c0:  ldloc.s 9
-	IL_01c2:  ldc.i4.2 
-	IL_01c3:  bge IL_01ce
-
-	IL_01c8:  nop 
-	IL_01c9:  br IL_01f1
-
-	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_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_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
-
-	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_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 1011
-    .method public static hidebysig 
-           default string GetFullPath (string path)  cil managed 
-    {
-        // Method begins at RVA 0x16014
-	// 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_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_001d:  ldarg.0 
-	IL_001e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0023:  brfalse IL_0035
-
-	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_0035:  ldarg.0 
-	IL_0036:  callvirt instance int32 string::get_Length()
-	IL_003b:  brfalse IL_0061
-
-	IL_0040:  ldarg.0 
-	IL_0041:  callvirt instance string string::Trim()
-	IL_0046:  callvirt instance int32 string::get_Length()
-	IL_004b:  brfalse IL_0061
-
-	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
-
-	IL_0085:  ldloc.0 
-	IL_0086:  ret 
-    } // end of method FileUtils::GetFullPath
-
-    // method line 1012
-    .method public static hidebysig 
-           default string GetHomeDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x160a8
-	// 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
-
-	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_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 1013
-    .method public static hidebysig 
-           default string ResolveFile (string[] directories, string fileName, bool recursive)  cil managed 
-    {
-        // Method begins at RVA 0x160e4
-	// Code size 113 (0x71)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0012
-
-	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_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_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 1014
-    .method private static hidebysig 
-           default string ScanDirectory (string directory, string fileName, bool recursive)  cil managed 
-    {
-        // Method begins at RVA 0x16164
-	// Code size 121 (0x79)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string[]	V_2,
-		string	V_3,
-		string[]	V_4,
-		int32	V_5)
-	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_0014:  ldloc.0 
-	IL_0015:  stloc.1 
-	IL_0016:  br IL_0077
-
-	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.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
-
-    // method line 1015
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x161e9
-	// 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 1016
-    .method public static hidebysig 
-           default void RegisterSharedAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x161f2
-	// 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
-
-    // method line 1017
-    .method public static hidebysig 
-           default string GetString (string name)  cil managed noinlining 
-    {
-        // Method begins at RVA 0x1620c
-	// 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_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method ResourceUtils::GetString
-
-    // method line 1018
-    .method public static hidebysig 
-           default string GetString (string name, class [mscorlib]System.Globalization.CultureInfo culture)  cil managed noinlining 
-    {
-        // Method begins at RVA 0x16230
-	// 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_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method ResourceUtils::GetString
-
-    // method line 1019
-    .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 0x16254
-	// 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_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
-
-	IL_0045:  ldsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
-	IL_004a:  brfalse IL_0062
-
-	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_0062:  ldloc.2 
-	IL_0063:  stloc.3 
-	IL_0064:  br IL_0069
-
-	IL_0069:  ldloc.3 
-	IL_006a:  ret 
-    } // end of method ResourceUtils::GetString
-
-    // method line 1020
-    .method private static hidebysig 
-           default void RegisterAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x162cc
-	// 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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_003b:  ldloc.1 
-	  IL_003c:  brfalse.s IL_0044
-
-	  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 1021
-    .method private static hidebysig 
-           default string GetResourceName (string assemblyName)  cil managed 
-    {
-        // Method begins at RVA 0x16330
-	// Code size 65 (0x41)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1)
-	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_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_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_003f:  ldloc.1 
-	IL_0040:  ret 
-    } // end of method ResourceUtils::GetResourceName
-
-    // method line 1022
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1637d
-	// 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
-
-  } // end of class NAnt.Core.Util.ResourceUtils
-}
-
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed beforefieldinit ReflectionUtils
-  	extends [mscorlib]System.Object
-  {
-
-    // method line 1023
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16389
-	// 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 1024
-    .method public static hidebysig 
-           default class [mscorlib]System.Type GetTypeFromString (string typeName, bool throwOnError)  cil managed 
-    {
-        // Method begins at RVA 0x16394
-	// 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_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_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 beforefieldinit DateTimeProvider
-  	extends [mscorlib]System.Object
-  {
-
-    // method line 1025
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16492
-	// 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 line 1026
-    .method public virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Now ()  cil managed 
-    {
-        // Method begins at RVA 0x1649c
-	// 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_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
 	IL_000c:  ldloc.0 
 	IL_000d:  ret 
@@ -39573,781 +41690,15 @@
 
 .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 1027
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
-    {
-        // Method begins at RVA 0x16559
-	// 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 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 1028
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
-    {
-        // Method begins at RVA 0x164b6
-	// 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 line 1029
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Util.CommandLineArgumentTypes get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x164c8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.Util.CommandLineArgumentTypes	V_0)
-	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_Type
-
-    // method line 1030
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x164e4
-	// 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::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_Name
-
-    // method line 1031
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x164ff
-	// 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 line 1032
-    .method public hidebysig specialname 
-           instance default string get_ShortName ()  cil managed 
-    {
-        // Method begins at RVA 0x1650c
-	// 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::_shortName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_ShortName
-
-    // method line 1033
-    .method public hidebysig specialname 
-           instance default void set_ShortName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x16527
-	// 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_0008:  ret 
-    } // end of method CommandLineArgumentAttribute::set_ShortName
-
-    // method line 1034
-    .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
-    {
-        // Method begins at RVA 0x16534
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_Description
-
-    // method line 1035
-    .method public hidebysig specialname 
-           instance default void set_Description (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1654f
-	// 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::_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 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..
-
-
-    // method line 1036
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16563
-	// 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
-
-    // method line 1037
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1656c
-	// 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.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgumentCollection)
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::.ctor
-
-    // method line 1038
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgument[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1657c
-	// 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.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgument[])
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::.ctor
-
-    // method line 1039
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Util.CommandLineArgument get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x1658c
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	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
-
-    // method line 1040
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Util.CommandLineArgument 'value')  cil managed 
-    {
-        // Method begins at RVA 0x165b2
-	// 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 CommandLineArgumentCollection::set_Item
-
-    // method line 1041
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Util.CommandLineArgument get_Item (string name)  cil managed 
-    {
-        // Method begins at RVA 0x165c4
-	// 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:  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
-
-	} // 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_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
-
-	IL_00d3:  ldloc.2 
-	IL_00d4:  ret 
-    } // end of method CommandLineArgumentCollection::get_Item
-
-    // method line 1042
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
-    {
-        // Method begins at RVA 0x166c4
-	// 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 CommandLineArgumentCollection::Add
-
-    // method line 1043
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Util.CommandLineArgument[] items)  cil managed 
-    {
-        // Method begins at RVA 0x166e8
-	// 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_0021:  ret 
-    } // end of method CommandLineArgumentCollection::AddRange
-
-    // method line 1044
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Util.CommandLineArgumentCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x16718
-	// 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.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_0028:  ret 
-    } // end of method CommandLineArgumentCollection::AddRange
-
-    // method line 1045
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
-    {
-        // Method begins at RVA 0x16750
-	// 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 CommandLineArgumentCollection::Contains
-
-    // method line 1046
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Util.CommandLineArgument[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x16771
-	// 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 line 1047
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
-    {
-        // Method begins at RVA 0x16784
-	// 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 CommandLineArgumentCollection::IndexOf
-
-    // method line 1048
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Util.CommandLineArgument item)  cil managed 
-    {
-        // Method begins at RVA 0x167a5
-	// 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
-
-    // method line 1049
-    .method public hidebysig 
-           instance default class NAnt.Core.Util.CommandLineArgumentEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x167b8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Util.CommandLineArgumentEnumerator	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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::GetEnumerator
-
-    // method line 1050
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
-    {
-        // Method begins at RVA 0x167d3
-	// 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 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
-}
-
-.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 line 1051
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x167e4
-	// 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.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method CommandLineArgumentEnumerator::.ctor
-
-    // method line 1052
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Util.CommandLineArgument get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x16808
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	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_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method CommandLineArgumentEnumerator::get_Current
-
-    // method line 1053
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x16830
-	.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.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 CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 1054
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x16850
-	// 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.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 CommandLineArgumentEnumerator::MoveNext
-
-    // method line 1055
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x16870
-	.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.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 CommandLineArgumentEnumerator::System.Collections.IEnumerator.MoveNext
-
-    // method line 1056
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x16890
-	// 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 1057
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1689e
-	.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.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
-
-	.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
-}
-
-.namespace NAnt.Core.Util
-{
   .class public auto ansi sealed serializable beforefieldinit CommandLineArgumentException
   	extends [mscorlib]System.ArgumentException
   {
 
-    // method line 1058
+    // method line 1131
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x168ac
+        // Method begins at RVA 0x16fee
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -40356,11 +41707,11 @@
 	IL_0007:  ret 
     } // end of method CommandLineArgumentException::.ctor
 
-    // method line 1059
+    // method line 1132
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string message)  cil managed 
     {
-        // Method begins at RVA 0x168b5
+        // Method begins at RVA 0x16ff7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -40370,11 +41721,11 @@
 	IL_0008:  ret 
     } // end of method CommandLineArgumentException::.ctor
 
-    // method line 1060
+    // method line 1133
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
     {
-        // Method begins at RVA 0x168bf
+        // Method begins at RVA 0x17001
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -40385,11 +41736,11 @@
 	IL_0009:  ret 
     } // end of method CommandLineArgumentException::.ctor
 
-    // method line 1061
+    // method line 1134
     .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 0x168ca
+        // Method begins at RVA 0x1700c
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -40405,802 +41756,6 @@
 
 .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 sealed serializable beforefieldinit AssemblyResolver
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Collections.Hashtable _assemblyCache
-    .field  private  class NAnt.Core.Task _task
-
-    // method line 1062
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x168d5
-	// 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 1063
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
-    {
-        // Method begins at RVA 0x168e9
-	// 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 line 1064
-    .method public hidebysig 
-           instance default void Attach ()  cil managed 
-    {
-        // Method begins at RVA 0x168f9
-	// Code size 46 (0x2e)
-	.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
-
-    // method line 1065
-    .method public hidebysig 
-           instance default void Detach ()  cil managed 
-    {
-        // Method begins at RVA 0x16928
-	// Code size 57 (0x39)
-	.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
-
-    // method line 1066
-    .method private hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly AssemblyResolve (object sender, class [mscorlib]System.ResolveEventArgs args)  cil managed 
-    {
-        // Method begins at RVA 0x16964
-	// Code size 502 (0x1f6)
-	.maxstack 7
-	.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)
-	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_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_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
-
-	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_0079:  nop 
-	IL_007a:  br IL_00c3
-
-	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_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_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_00d4:  ldloc.0 
-	IL_00d5:  brfalse IL_0134
-
-	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_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_012e:  nop 
-	IL_012f:  br IL_01cc
-
-	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_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_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_01a2:  nop 
-	  IL_01a3:  ldloc.s 7
-	  IL_01a5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_01aa:  brtrue IL_014d
-
-	  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
-
-	  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_01f3:  ldloc.s 5
-	IL_01f5:  ret 
-    } // end of method AssemblyResolver::AssemblyResolve
-
-    // method line 1067
-    .method private hidebysig 
-           instance default void AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
-    {
-        // Method begins at RVA 0x16b78
-	// Code size 66 (0x42)
-	.maxstack 7
-	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
-
-    // method line 1068
-    .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 ) // ....
-
-        // Method begins at RVA 0x16bc6
-	// 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_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.Util.AssemblyResolver
-}
-
-.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
-
-    // method line 1069
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x16be4
-	// 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 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 1070
-    .method family virtual hidebysig 
-           instance default void Finalize ()  cil managed 
-    {
-        // Method begins at RVA 0x16c08
-	// 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
-
-    // method line 1071
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x16c3c
-	// 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 1072
-    .method private hidebysig specialname 
-           instance default class [mscorlib]System.AppDomain get_Domain ()  cil managed 
-    {
-        // Method begins at RVA 0x16c58
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.AppDomain	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 GacCache::get_Domain
-
-    // method line 1073
-    .method private hidebysig specialname 
-           instance default class NAnt.Core.Util.GacCache/GacResolver get_Resolver ()  cil managed 
-    {
-        // Method begins at RVA 0x16c74
-	// 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
-
-    // method line 1074
-    .method public final virtual hidebysig newslot 
-           instance default void Dispose ()  cil managed 
-    {
-        // Method begins at RVA 0x16cd0
-	// Code size 15 (0xf)
-	.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
-
-    // method line 1075
-    .method private hidebysig 
-           instance default void Dispose (bool disposing)  cil managed 
-    {
-        // Method begins at RVA 0x16ce0
-	// Code size 33 (0x21)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_disposed
-	IL_0007:  brtrue IL_0020
-
-	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 1076
-    .method public hidebysig 
-           instance default void RecreateDomain ()  cil managed 
-    {
-        // Method begins at RVA 0x16d04
-	// 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 1077
-    .method public hidebysig 
-           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
-    {
-        // Method begins at RVA 0x16d84
-	// 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_002b:  nop 
-	IL_002c:  ldc.i4.0 
-	IL_002d:  stloc.0 
-	IL_002e:  br IL_009e
-
-	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
-
-	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_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
-
-	IL_009e:  ldloc.0 
-	IL_009f:  ret 
-    } // end of method GacCache::IsAssemblyInGac
-
-	.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
-  {
-
-    // method line 1078
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16e30
-	// 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 GacResolver::.ctor
-
-    // method line 1079
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
-    {
-        // Method begins at RVA 0x16e38
-	// 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 GacResolver::InitializeLifetimeService
-
-    // method line 1080
-    .method public hidebysig 
-           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
-    {
-        // Method begins at RVA 0x16e74
-	// Code size 82 (0x52)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Reflection.AssemblyName	V_0,
-		bool	V_1,
-		class [mscorlib]System.Reflection.Assembly	V_2)
-	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_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
-
-	} // 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
-
-	} // end handler 0
-	IL_0050:  ldloc.1 
-	IL_0051:  ret 
-    } // end of method GacResolver::IsAssemblyInGac
-
-  } // end of class GacResolver
-
-  } // end of class NAnt.Core.Util.GacCache
-}
-
-.namespace NAnt.Core.Util
-{
   .class public auto ansi beforefieldinit CommandLineArgument
   	extends [mscorlib]System.Object
   {
@@ -41213,11 +41768,11 @@
     .field  private  class [mscorlib]System.Collections.ArrayList _collectionValues
     .field  private  class [System]System.Collections.Specialized.NameValueCollection _valuePairs
 
-    // method line 1081
+    // method line 1135
     .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 0x16ee4
+        // Method begins at RVA 0x17018
 	// Code size 258 (0x102)
 	.maxstack 3
 	IL_0000:  ldarg.0 
@@ -41322,11 +41877,11 @@
 	IL_0101:  ret 
     } // end of method CommandLineArgument::.ctor
 
-    // method line 1082
+    // method line 1136
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Reflection.PropertyInfo get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x16ff4
+        // Method begins at RVA 0x17128
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -41341,11 +41896,11 @@
 	IL_000e:  ret 
     } // end of method CommandLineArgument::get_Property
 
-    // method line 1083
+    // method line 1137
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Type get_ValueType ()  cil managed 
     {
-        // Method begins at RVA 0x17010
+        // Method begins at RVA 0x17144
 	// Code size 48 (0x30)
 	.maxstack 1
 	.locals init (
@@ -41372,11 +41927,11 @@
 	IL_002f:  ret 
     } // end of method CommandLineArgument::get_ValueType
 
-    // method line 1084
+    // method line 1138
     .method public hidebysig specialname 
            instance default string get_LongName ()  cil managed 
     {
-        // Method begins at RVA 0x1704c
+        // Method begins at RVA 0x17180
 	// Code size 66 (0x42)
 	.maxstack 1
 	.locals init (
@@ -41409,11 +41964,11 @@
 	IL_0041:  ret 
     } // end of method CommandLineArgument::get_LongName
 
-    // method line 1085
+    // method line 1139
     .method public hidebysig specialname 
            instance default string get_ShortName ()  cil managed 
     {
-        // Method begins at RVA 0x1709c
+        // Method begins at RVA 0x171d0
 	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
@@ -41439,11 +41994,11 @@
 	IL_0027:  ret 
     } // end of method CommandLineArgument::get_ShortName
 
-    // method line 1086
+    // method line 1140
     .method public hidebysig specialname 
            instance default string get_Description ()  cil managed 
     {
-        // Method begins at RVA 0x170d0
+        // Method begins at RVA 0x17204
 	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
@@ -41469,11 +42024,11 @@
 	IL_0027:  ret 
     } // end of method CommandLineArgument::get_Description
 
-    // method line 1087
+    // method line 1141
     .method public hidebysig specialname 
            instance default bool get_IsRequired ()  cil managed 
     {
-        // Method begins at RVA 0x17104
+        // Method begins at RVA 0x17238
 	// Code size 23 (0x17)
 	.maxstack 3
 	.locals init (
@@ -41494,11 +42049,11 @@
 	IL_0016:  ret 
     } // end of method CommandLineArgument::get_IsRequired
 
-    // method line 1088
+    // method line 1142
     .method public hidebysig specialname 
            instance default bool get_SeenValue ()  cil managed 
     {
-        // Method begins at RVA 0x17128
+        // Method begins at RVA 0x1725c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -41513,11 +42068,11 @@
 	IL_000e:  ret 
     } // end of method CommandLineArgument::get_SeenValue
 
-    // method line 1089
+    // method line 1143
     .method public hidebysig specialname 
            instance default bool get_AllowMultiple ()  cil managed 
     {
-        // Method begins at RVA 0x17144
+        // Method begins at RVA 0x17278
 	// Code size 59 (0x3b)
 	.maxstack 3
 	.locals init (
@@ -41553,11 +42108,11 @@
 	IL_003a:  ret 
     } // end of method CommandLineArgument::get_AllowMultiple
 
-    // method line 1090
+    // method line 1144
     .method public hidebysig specialname 
            instance default bool get_Unique ()  cil managed 
     {
-        // Method begins at RVA 0x1718c
+        // Method begins at RVA 0x172c0
 	// Code size 23 (0x17)
 	.maxstack 3
 	.locals init (
@@ -41578,11 +42133,11 @@
 	IL_0016:  ret 
     } // end of method CommandLineArgument::get_Unique
 
-    // method line 1091
+    // method line 1145
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Type get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x171b0
+        // Method begins at RVA 0x172e4
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -41598,11 +42153,11 @@
 	IL_0013:  ret 
     } // end of method CommandLineArgument::get_Type
 
-    // method line 1092
+    // method line 1146
     .method public hidebysig specialname 
            instance default bool get_IsCollection ()  cil managed 
     {
-        // Method begins at RVA 0x171d0
+        // Method begins at RVA 0x17304
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -41618,11 +42173,11 @@
 	IL_0013:  ret 
     } // end of method CommandLineArgument::get_IsCollection
 
-    // method line 1093
+    // method line 1147
     .method public hidebysig specialname 
            instance default bool get_IsNameValueCollection ()  cil managed 
     {
-        // Method begins at RVA 0x171f0
+        // Method begins at RVA 0x17324
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -41638,11 +42193,11 @@
 	IL_0013:  ret 
     } // end of method CommandLineArgument::get_IsNameValueCollection
 
-    // method line 1094
+    // method line 1148
     .method public hidebysig specialname 
            instance default bool get_IsArray ()  cil managed 
     {
-        // Method begins at RVA 0x17210
+        // Method begins at RVA 0x17344
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -41658,11 +42213,11 @@
 	IL_0013:  ret 
     } // end of method CommandLineArgument::get_IsArray
 
-    // method line 1095
+    // method line 1149
     .method public hidebysig specialname 
            instance default bool get_IsDefault ()  cil managed 
     {
-        // Method begins at RVA 0x17230
+        // Method begins at RVA 0x17364
 	// Code size 37 (0x25)
 	.maxstack 2
 	.locals init (
@@ -41687,11 +42242,11 @@
 	IL_0024:  ret 
     } // end of method CommandLineArgument::get_IsDefault
 
-    // method line 1096
+    // method line 1150
     .method public hidebysig specialname 
            instance default bool get_IsExclusive ()  cil managed 
     {
-        // Method begins at RVA 0x17264
+        // Method begins at RVA 0x17398
 	// Code size 23 (0x17)
 	.maxstack 3
 	.locals init (
@@ -41712,11 +42267,11 @@
 	IL_0016:  ret 
     } // end of method CommandLineArgument::get_IsExclusive
 
-    // method line 1097
+    // method line 1151
     .method public hidebysig 
            instance default void Finish (object destination)  cil managed 
     {
-        // Method begins at RVA 0x17288
+        // Method begins at RVA 0x173bc
         .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
 	// Code size 1197 (0x4ad)
 	.maxstack 9
@@ -42221,11 +42776,11 @@
 	IL_04ac:  ret 
     } // end of method CommandLineArgument::Finish
 
-    // method line 1098
+    // method line 1152
     .method public hidebysig 
            instance default void SetValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17778
+        // Method begins at RVA 0x178ac
 	// Code size 211 (0xd3)
 	.maxstack 4
 	.locals init (
@@ -42312,11 +42867,11 @@
 	IL_00d2:  ret 
     } // end of method CommandLineArgument::SetValue
 
-    // method line 1099
+    // method line 1153
     .method private hidebysig 
            instance default object ParseValue (class [mscorlib]System.Type 'type', string stringData)  cil managed 
     {
-        // Method begins at RVA 0x17858
+        // Method begins at RVA 0x1798c
 	// Code size 810 (0x32a)
 	.maxstack 9
 	.locals init (
@@ -42657,11 +43212,11 @@
 	IL_0329:  ret 
     } // end of method CommandLineArgument::ParseValue
 
-    // method line 1100
+    // method line 1154
     .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 begins at RVA 0x17bf4
+        // Method begins at RVA 0x17d28
 	// Code size 54 (0x36)
 	.maxstack 1
 	.locals init (
@@ -42695,11 +43250,11 @@
 	IL_0035:  ret 
     } // end of method CommandLineArgument::GetArgumentType
 
-    // method line 1101
+    // method line 1155
     .method private static hidebysig 
            default class [mscorlib]System.Type GetElementType (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
-        // Method begins at RVA 0x17c38
+        // Method begins at RVA 0x17d6c
 	// Code size 322 (0x142)
 	.maxstack 3
 	.locals init (
@@ -42835,11 +43390,11 @@
 	IL_0141:  ret 
     } // end of method CommandLineArgument::GetElementType
 
-    // method line 1102
+    // method line 1156
     .method private static hidebysig 
            default bool IsNameValueCollectionType (class [mscorlib]System.Type 'type')  cil managed 
     {
-        // Method begins at RVA 0x17d88
+        // Method begins at RVA 0x17ebc
 	// Code size 25 (0x19)
 	.maxstack 2
 	.locals init (
@@ -42856,11 +43411,11 @@
 	IL_0018:  ret 
     } // end of method CommandLineArgument::IsNameValueCollectionType
 
-    // method line 1103
+    // method line 1157
     .method private static hidebysig 
            default bool IsCollectionType (class [mscorlib]System.Type 'type')  cil managed 
     {
-        // Method begins at RVA 0x17db0
+        // Method begins at RVA 0x17ee4
 	// Code size 42 (0x2a)
 	.maxstack 2
 	.locals init (
@@ -42886,11 +43441,11 @@
 	IL_0029:  ret 
     } // end of method CommandLineArgument::IsCollectionType
 
-    // method line 1104
+    // method line 1158
     .method private static hidebysig 
            default bool IsArrayType (class [mscorlib]System.Type 'type')  cil managed 
     {
-        // Method begins at RVA 0x17de8
+        // Method begins at RVA 0x17f1c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -42970,150 +43525,451 @@
 
 .namespace NAnt.Core.Util
 {
-  .class public auto ansi beforefieldinit StopWatchStack
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit CommandLineArgumentAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .field  private initonly  class NAnt.Core.Util.DateTimeProvider _dtProvider
-    .field  private initonly  class [mscorlib]System.Collections.Stack _stack
+    .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 1105
+    .field  private  valuetype NAnt.Core.Util.CommandLineArgumentTypes _argumentType
+    .field  private  string _name
+    .field  private  string _shortName
+    .field  private  string _description
+
+    // method line 1159
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
+           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
     {
-        // Method begins at RVA 0x17e03
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x16912
+	// Code size 15 (0xf)
 	.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
+	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 line 1106
-    .method public hidebysig 
-           instance default void PushStart ()  cil managed 
+    // method line 1160
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Util.CommandLineArgumentTypes get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x17e1e
-	// Code size 24 (0x18)
+        // Method begins at RVA 0x16924
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.Util.CommandLineArgumentTypes	V_0)
+	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentAttribute::get_Type
+
+    // method line 1161
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x16940
+	// 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::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentAttribute::get_Name
+
+    // method line 1162
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1695b
+	// 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 string NAnt.Core.Util.CommandLineArgumentAttribute::_name
+	IL_0008:  ret 
+    } // end of method CommandLineArgumentAttribute::set_Name
 
-    // method line 1107
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.TimeSpan PopStop ()  cil managed 
+    // method line 1163
+    .method public hidebysig specialname 
+           instance default string get_ShortName ()  cil managed 
     {
-        // Method begins at RVA 0x17e38
-	// Code size 30 (0x1e)
+        // Method begins at RVA 0x16968
+	// 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:  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_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_shortName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method StopWatchStack::PopStop
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentAttribute::get_ShortName
 
-  .class nested private auto ansi beforefieldinit StopWatch
+    // method line 1164
+    .method public hidebysig specialname 
+           instance default void set_ShortName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x16983
+	// 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_0008:  ret 
+    } // end of method CommandLineArgumentAttribute::set_ShortName
+
+    // method line 1165
+    .method public hidebysig specialname 
+           instance default string get_Description ()  cil managed 
+    {
+        // Method begins at RVA 0x16990
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentAttribute::get_Description
+
+    // method line 1166
+    .method public hidebysig specialname 
+           instance default void set_Description (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x169ab
+	// 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::_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 ResourceUtils
   	extends [mscorlib]System.Object
   {
-    .field  private initonly  class NAnt.Core.Util.DateTimeProvider _dtProvider
-    .field  private initonly  valuetype [mscorlib]System.DateTime _start
+    .field  private static  class [mscorlib]System.Resources.ResourceManager _sharedResourceManager
+    .field  private static initonly  class [mscorlib]System.Collections.Hashtable _resourceManagerDictionary
 
-    // method line 1108
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
+    // method line 1167
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17e62
-	// Code size 27 (0x1b)
+        // Method begins at RVA 0x17f37
+	// 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 1168
+    .method public static hidebysig 
+           default void RegisterSharedAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    {
+        // Method begins at RVA 0x17f40
+	// 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
+
+    // method line 1169
+    .method public static hidebysig 
+           default string GetString (string name)  cil managed noinlining 
+    {
+        // Method begins at RVA 0x17f5c
+	// 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_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method ResourceUtils::GetString
+
+    // method line 1170
+    .method public static hidebysig 
+           default string GetString (string name, class [mscorlib]System.Globalization.CultureInfo culture)  cil managed noinlining 
+    {
+        // Method begins at RVA 0x17f80
+	// 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:  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_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
 
-    // method line 1109
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.TimeSpan Elapsed ()  cil managed 
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method ResourceUtils::GetString
+
+    // method line 1171
+    .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 0x17e80
-	// Code size 31 (0x1f)
-	.maxstack 2
+        // Method begins at RVA 0x17fa4
+	// Code size 107 (0x6b)
+	.maxstack 3
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	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:  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_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:  ldloc.0 
-	IL_001e:  ret 
-    } // end of method StopWatch::Elapsed
+	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
 
-  } // end of class StopWatch
+	IL_0045:  ldsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
+	IL_004a:  brfalse IL_0062
 
-  } // end of class NAnt.Core.Util.StopWatchStack
+	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_0062:  ldloc.2 
+	IL_0063:  stloc.3 
+	IL_0064:  br IL_0069
+
+	IL_0069:  ldloc.3 
+	IL_006a:  ret 
+    } // end of method ResourceUtils::GetString
+
+    // method line 1172
+    .method private static hidebysig 
+           default void RegisterAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    {
+        // Method begins at RVA 0x1801c
+	// 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
+
+	} // end .try 0
+	finally  { // 0
+	  IL_003b:  ldloc.1 
+	  IL_003c:  brfalse.s IL_0044
+
+	  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 1173
+    .method private static hidebysig 
+           default string GetResourceName (string assemblyName)  cil managed 
+    {
+        // Method begins at RVA 0x18080
+	// Code size 65 (0x41)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1)
+	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_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_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_003f:  ldloc.1 
+	IL_0040:  ret 
+    } // end of method ResourceUtils::GetResourceName
+
+    // method line 1174
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x180cd
+	// 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
+
+  } // end of class NAnt.Core.Util.ResourceUtils
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Util
 {
-  .class public auto ansi serializable beforefieldinit XmlNamespaceCollection
+  .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..
 
 
-    // method line 1110
+    // method line 1175
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17eab
+        // Method begins at RVA 0x180d9
 	// 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
+    } // end of method CommandLineArgumentCollection::.ctor
 
-    // method line 1111
+    // method line 1176
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x17eb4
+        // Method begins at RVA 0x180e2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -43121,15 +43977,15 @@
 	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_0009:  call instance void class NAnt.Core.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgumentCollection)
 	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::.ctor
+    } // end of method CommandLineArgumentCollection::.ctor
 
-    // method line 1112
+    // method line 1177
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespace[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgument[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x17ec4
+        // Method begins at RVA 0x180f2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -43137,37 +43993,37 @@
 	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_0009:  call instance void class NAnt.Core.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgument[])
 	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::.ctor
+    } // end of method CommandLineArgumentCollection::.ctor
 
-    // method line 1113
+    // method line 1178
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespace get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Util.CommandLineArgument get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x17ed4
+        // Method begins at RVA 0x18104
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.XmlNamespace	V_0)
+		class NAnt.Core.Util.CommandLineArgument	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_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 XmlNamespaceCollection::get_Item
+    } // end of method CommandLineArgumentCollection::get_Item
 
-    // method line 1114
+    // method line 1179
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.XmlNamespace 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Util.CommandLineArgument 'value')  cil managed 
     {
-        // Method begins at RVA 0x17efa
+        // Method begins at RVA 0x1812a
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -43177,23 +44033,26 @@
 	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
+    } // end of method CommandLineArgumentCollection::set_Item
 
-    // method line 1115
+    // method line 1180
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespace get_Item (string 'value')  cil managed 
+           instance default class NAnt.Core.Util.CommandLineArgument get_Item (string name)  cil managed 
     {
-        // Method begins at RVA 0x17f0c
-	// Code size 111 (0x6f)
+        // Method begins at RVA 0x1813c
+	// Code size 213 (0xd5)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.XmlNamespace	V_0,
+		class NAnt.Core.Util.CommandLineArgument	V_0,
 		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.XmlNamespace	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		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:  brfalse IL_0066
+	IL_0002:  brfalse IL_00cc
 
 	IL_0007:  nop 
 	IL_0008:  nop 
@@ -43206,19 +44065,19 @@
 
 	  IL_001a:  ldloc.1 
 	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.XmlNamespace
+	  IL_0020:  castclass NAnt.Core.Util.CommandLineArgument
 	  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_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_006d
+	  IL_003b:  leave IL_00d3
 
 	  IL_0040:  nop 
 	  IL_0041:  ldloc.1 
@@ -43240,19 +44099,62 @@
 	  IL_0064:  endfinally 
 	} // end handler 0
 	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
+	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_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method XmlNamespaceCollection::get_Item
+	  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
 
-    // method line 1116
+	  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
+
+	} // 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_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
+
+	IL_00d3:  ldloc.2 
+	IL_00d4:  ret 
+    } // end of method CommandLineArgumentCollection::get_Item
+
+    // method line 1181
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        // Method begins at RVA 0x17f98
+        // Method begins at RVA 0x1823c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -43267,13 +44169,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XmlNamespaceCollection::Add
+    } // end of method CommandLineArgumentCollection::Add
 
-    // method line 1117
+    // method line 1182
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XmlNamespace[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Util.CommandLineArgument[] items)  cil managed 
     {
-        // Method begins at RVA 0x17fbc
+        // Method begins at RVA 0x18260
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -43288,7 +44190,7 @@
 	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_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 
@@ -43302,13 +44204,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method XmlNamespaceCollection::AddRange
+    } // end of method CommandLineArgumentCollection::AddRange
 
-    // method line 1118
+    // method line 1183
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XmlNamespaceCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Util.CommandLineArgumentCollection items)  cil managed 
     {
-        // Method begins at RVA 0x17fec
+        // Method begins at RVA 0x18290
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -43322,8 +44224,8 @@
 	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_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 
@@ -43336,13 +44238,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method XmlNamespaceCollection::AddRange
+    } // end of method CommandLineArgumentCollection::AddRange
 
-    // method line 1119
+    // method line 1184
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        // Method begins at RVA 0x18024
+        // Method begins at RVA 0x182c8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -43357,37 +44259,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XmlNamespaceCollection::Contains
-
-    // method line 1120
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18048
-	// 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
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method XmlNamespaceCollection::Contains
+    } // end of method CommandLineArgumentCollection::Contains
 
-    // method line 1121
+    // method line 1185
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.XmlNamespace[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.Util.CommandLineArgument[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1806a
+        // Method begins at RVA 0x182e9
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -43397,13 +44275,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 XmlNamespaceCollection::CopyTo
+    } // end of method CommandLineArgumentCollection::CopyTo
 
-    // method line 1122
+    // method line 1186
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        // Method begins at RVA 0x1807c
+        // Method begins at RVA 0x182fc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -43418,13 +44296,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XmlNamespaceCollection::IndexOf
+    } // end of method CommandLineArgumentCollection::IndexOf
 
-    // method line 1123
+    // method line 1187
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.XmlNamespace item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        // Method begins at RVA 0x1809d
+        // Method begins at RVA 0x1831d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -43434,32 +44312,32 @@
 	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
+    } // end of method CommandLineArgumentCollection::Insert
 
-    // method line 1124
+    // method line 1188
     .method public hidebysig 
-           instance default class NAnt.Core.Types.XmlNamespaceEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Util.CommandLineArgumentEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x180b0
+        // Method begins at RVA 0x18330
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespaceEnumerator	V_0)
+		class NAnt.Core.Util.CommandLineArgumentEnumerator	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:  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 XmlNamespaceCollection::GetEnumerator
+    } // end of method CommandLineArgumentCollection::GetEnumerator
 
-    // method line 1125
+    // method line 1189
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+           instance default void Remove (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        // Method begins at RVA 0x180cb
+        // Method begins at RVA 0x1834b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -43468,32 +44346,32 @@
 	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 CommandLineArgumentCollection::Remove
 
-	.property instance class NAnt.Core.Types.XmlNamespace Item (int32)
+	.property instance class NAnt.Core.Util.CommandLineArgument 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') 
+		.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.Types.XmlNamespace Item (string)
+	.property instance class NAnt.Core.Util.CommandLineArgument Item (string)
 	{
-		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceCollection::get_Item (string 'value') 
+		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentCollection::get_Item (string name) 
 	}
-  } // end of class NAnt.Core.Types.XmlNamespaceCollection
+  } // end of class NAnt.Core.Util.CommandLineArgumentCollection
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Util
 {
-  .class public auto ansi beforefieldinit XmlNamespaceEnumerator
+  .class public auto ansi beforefieldinit CommandLineArgumentEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 1126
+    // method line 1190
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x180dc
+        // Method begins at RVA 0x1835c
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -43506,36 +44384,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.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method XmlNamespaceEnumerator::.ctor
+    } // end of method CommandLineArgumentEnumerator::.ctor
 
-    // method line 1127
+    // method line 1191
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespace get_Current ()  cil managed 
+           instance default class NAnt.Core.Util.CommandLineArgument get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x18100
+        // Method begins at RVA 0x18380
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespace	V_0)
+		class NAnt.Core.Util.CommandLineArgument	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	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.Types.XmlNamespace
+	IL_000c:  castclass NAnt.Core.Util.CommandLineArgument
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method XmlNamespaceEnumerator::get_Current
+    } // end of method CommandLineArgumentEnumerator::get_Current
 
-    // method line 1128
+    // method line 1192
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x18128
+        // Method begins at RVA 0x183a8
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -43543,40 +44421,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	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 XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 1129
+    // method line 1193
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x18148
+        // Method begins at RVA 0x183c8
 	// 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_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 XmlNamespaceEnumerator::MoveNext
+    } // end of method CommandLineArgumentEnumerator::MoveNext
 
-    // method line 1130
+    // method line 1194
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x18168
+        // Method begins at RVA 0x183e8
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -43584,1774 +44462,2544 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	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 XmlNamespaceEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 1131
+    // method line 1195
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x18188
+        // Method begins at RVA 0x18408
 	// 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_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 XmlNamespaceEnumerator::Reset
+    } // end of method CommandLineArgumentEnumerator::Reset
 
-    // method line 1132
+    // method line 1196
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x18196
+        // Method begins at RVA 0x18416
 	.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_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 XmlNamespaceEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Core.Types.XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.Util.CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.Types.XmlNamespace Current ()
+	.property instance class NAnt.Core.Util.CommandLineArgument Current ()
 	{
-		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceEnumerator::get_Current () 
+		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Types.XmlNamespaceEnumerator
+  } // end of class NAnt.Core.Util.CommandLineArgumentEnumerator
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Util
 {
-  .class public auto ansi beforefieldinit XsltExtensionObject
-  	extends NAnt.Core.Element
+  .class public auto ansi sealed beforefieldinit StringUtils
+  	extends [mscorlib]System.Object
   {
-    .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  string _namespaceUri
-    .field  private  string _typeName
-    .field  private  class [mscorlib]System.IO.FileInfo _assemblyPath
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 1133
-    .method public hidebysig specialname rtspecialname 
+    // method line 1197
+    .method private hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x181a4
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x18424
+	// Code size 8 (0x8)
 	.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
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method StringUtils::.ctor
 
-    // method line 1134
-    .method public hidebysig specialname 
-           instance default string get_NamespaceUri ()  cil managed 
+    // method line 1198
+    .method public static hidebysig 
+           default bool EndsWith (string 'value', char c)  cil managed 
     {
-        // Method begins at RVA 0x181c0
-	// Code size 15 (0xf)
-	.maxstack 1
+        .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 0x18430
+	// Code size 63 (0x3f)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		int32	V_0,
+		bool	V_1)
 	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_0002:  brtrue IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_NamespaceUri
+	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 1135
-    .method public hidebysig specialname 
-           instance default void set_NamespaceUri (string 'value')  cil managed 
+	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 1199
+    .method public static hidebysig 
+           default bool IsNullOrEmpty (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x181db
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1847c
+	// Code size 27 (0x1b)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	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
+	IL_0002:  brfalse IL_0012
 
-    // method line 1136
-    .method public hidebysig specialname 
-           instance default string get_TypeName ()  cil managed 
+	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_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 1200
+    .method public static hidebysig 
+           default string ConvertEmptyToNull (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x181e8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x184a4
+	// Code size 28 (0x1c)
 	.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_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_TypeName
+	IL_000c:  ldarg.0 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_001a
 
-    // method line 1137
-    .method public hidebysig specialname 
-           instance default void set_TypeName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18203
-	// 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
+	IL_0013:  ldnull 
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_001a
 
-    // method line 1138
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AssemblyPath ()  cil managed 
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method StringUtils::ConvertEmptyToNull
+
+    // method line 1201
+    .method public static hidebysig 
+           default string ConvertNullToEmpty (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x18210
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x184cc
+	// Code size 27 (0x1b)
 	.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.XsltExtensionObject::_assemblyPath
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  brtrue IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_AssemblyPath
+	IL_0007:  ldsfld string [mscorlib]System.String::Empty
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0019
 
-    // method line 1139
-    .method public hidebysig specialname 
-           instance default void set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+	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 1202
+    .method public static hidebysig 
+           default string Join (string separator, class [System]System.Collections.Specialized.StringCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x1822b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x184f4
+	// Code size 66 (0x42)
+	.maxstack 3
+	.locals init (
+		string[]	V_0,
+		string	V_1)
 	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
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0012
 
-    // method line 1140
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	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 1203
+    .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 0x18238
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x18544
+	// Code size 43 (0x2b)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		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:  ldfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_IfDefined
+	IL_0029:  ldloc.2 
+	IL_002a:  ret 
+    } // end of method StringUtils::Clone
 
-    // method line 1141
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+  } // end of class NAnt.Core.Util.StringUtils
+}
+
+.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 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 1204
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
     {
-        // Method begins at RVA 0x18253
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1857b
+	// 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 1205
+    .method public hidebysig 
+           instance default void PushStart ()  cil managed 
+    {
+        // Method begins at RVA 0x18596
+	// Code size 24 (0x18)
 	.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
+	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 1142
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 1206
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.TimeSpan PopStop ()  cil managed 
     {
-        // Method begins at RVA 0x18260
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x185b0
+	// Code size 30 (0x1e)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.TimeSpan	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:  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 XsltExtensionObject::get_UnlessDefined
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method StopWatchStack::PopStop
 
-    // method line 1143
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool '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 1207
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
     {
-        // Method begins at RVA 0x1827b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x185da
+	// Code size 27 (0x1b)
 	.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_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 line 1144
+    // method line 1208
     .method public hidebysig 
-           instance default object CreateInstance ()  cil managed 
+           instance default valuetype [mscorlib]System.TimeSpan Elapsed ()  cil managed 
     {
-        // Method begins at RVA 0x18288
-	// Code size 217 (0xd9)
-	.maxstack 4
+        // Method begins at RVA 0x185f8
+	// Code size 31 (0x1f)
+	.maxstack 2
 	.locals init (
-		object	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1,
-		class [mscorlib]System.Exception	V_2,
-		object	V_3)
+		valuetype [mscorlib]System.TimeSpan	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_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_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_001d:  ldloc.0 
+	IL_001e:  ret 
+    } // end of method StopWatch::Elapsed
 
-	  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 of class StopWatch
 
-	} // 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
+  } // end of class NAnt.Core.Util.StopWatchStack
+}
 
-	IL_00d7:  ldloc.3 
-	IL_00d8:  ret 
-    } // end of method XsltExtensionObject::CreateInstance
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi abstract sealed beforefieldinit FileUtils
+  	extends [mscorlib]System.Object
+  {
+    .field private static literal  int32 _bufferSize = int32(0x00002000)
 
-	.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                                              ) // .
+    // method line 1209
+    .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 0x18624
+	// Code size 329 (0x149)
+	.maxstack 4
+	.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)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-		.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.
+	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
 
-		.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_002e:  ldarg.3 
+	IL_002f:  brtrue IL_004a
 
-		.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.
+	IL_0034:  ldarg.s 4
+	IL_0036:  brtrue IL_004a
 
-		.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_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
 
-		.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..
+	IL_004a:  nop 
+	IL_004b:  ldarg.3 
+	IL_004c:  brfalse IL_0057
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0051:  ldarg.3 
+	IL_0052:  br IL_005c
 
-		.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_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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  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
 
-		.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
-}
+	    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
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit Credential
-  	extends NAnt.Core.DataTypeBase
-  {
-    .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..
+	    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
 
-    .field  private  string _domain
-    .field  private  string _password
-    .field  private  string _userName
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+	    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 1145
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+	    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_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 1210
+    .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 0x18380
-	// Code size 15 (0xf)
-	.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 begins at RVA 0x18798
+	// Code size 88 (0x58)
+	.maxstack 5
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-    // method line 1146
-    .method public hidebysig specialname 
-           instance default string get_Domain ()  cil managed 
+	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
+
+    // method line 1211
+    .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 0x18390
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x187fc
+	// Code size 180 (0xb4)
+	.maxstack 5
 	.locals init (
-		string	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 string NAnt.Core.Types.Credential::_domain
-	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 Credential::get_Domain
+	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 1147
-    .method public hidebysig specialname 
-           instance default void set_Domain (string 'value')  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 1212
+    .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 0x183ab
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x188bc
+	// Code size 308 (0x134)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.IOException	V_2)
 	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
+	IL_0002:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-    // method line 1148
-    .method public hidebysig specialname 
-           instance default string get_Password ()  cil managed 
+	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_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_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 1213
+    .method assembly static hidebysig 
+           default string GetTempDirectoryName ()  cil managed 
     {
-        // Method begins at RVA 0x183bc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x18a18
+	// Code size 24 (0x18)
+	.maxstack 2
 	.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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_Password
+	IL_0016:  ldloc.0 
+	IL_0017:  ret 
+    } // end of method FileUtils::GetTempDirectoryName
 
-    // method line 1149
-    .method public hidebysig specialname 
-           instance default void set_Password (string 'value')  cil managed 
+    // method line 1214
+    .method public static hidebysig 
+           default string ReadFile (string fileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding)  cil managed 
     {
-        // Method begins at RVA 0x183d7
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x18a3c
+	// Code size 166 (0xa6)
+	.maxstack 3
+	.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)
 	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_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.2 
+	IL_0004:  brfalse IL_000f
 
-    // method line 1150
-    .method public hidebysig specialname 
-           instance default string get_UserName ()  cil managed 
+	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_00a3:  ldloc.s 6
+	IL_00a5:  ret 
+    } // end of method FileUtils::ReadFile
+
+    // method line 1215
+    .method public static hidebysig 
+           default class [mscorlib]System.IO.DirectoryInfo GetTempDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x183e8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x18b00
+	// Code size 34 (0x22)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		string	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1)
 	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
-
+	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 Credential::get_UserName
+	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 1151
-    .method public hidebysig specialname 
-           instance default void set_UserName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18403
-	// 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
+	IL_0020:  ldloc.1 
+	IL_0021:  ret 
+    } // end of method FileUtils::GetTempDirectory
 
-    // method line 1152
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 1216
+    .method public static hidebysig 
+           default string CombinePaths (string path1, string path2)  cil managed 
     {
-        // Method begins at RVA 0x18414
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x18b30
+	// Code size 664 (0x298)
+	.maxstack 4
 	.locals init (
-		bool	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 bool NAnt.Core.Types.Credential::_ifDefined
-	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 Credential::get_IfDefined
+	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 1153
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+	IL_0019:  ldarg.0 
+	IL_001a:  brtrue IL_002b
+
+	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_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_0048:  nop 
+	IL_0049:  ldarg.1 
+	IL_004a:  stloc.0 
+	IL_004b:  br IL_0296
+
+	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_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_0090:  ldloc.s 6
+	IL_0092:  ldstr "."
+	IL_0097:  call bool string::op_Equality(string, string)
+	IL_009c:  brfalse IL_00a7
+
+	IL_00a1:  nop 
+	IL_00a2:  br IL_0120
+
+	IL_00a7:  ldloc.s 6
+	IL_00a9:  ldstr ".."
+	IL_00ae:  call bool string::op_Equality(string, string)
+	IL_00b3:  brfalse IL_0113
+
+	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_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_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_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_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_0130:  ldarg.0 
+	IL_0131:  callvirt instance int32 string::get_Length()
+	IL_0136:  ldc.i4.0 
+	IL_0137:  ble IL_0153
+
+	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_0153:  ldc.i4.0 
+	IL_0154:  stloc.s 7
+	IL_0156:  ldloc.s 7
+	IL_0158:  brfalse IL_017b
+
+	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_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_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_01c0:  ldloc.s 9
+	IL_01c2:  ldc.i4.2 
+	IL_01c3:  bge IL_01ce
+
+	IL_01c8:  nop 
+	IL_01c9:  br IL_01f1
+
+	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_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_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
+
+	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_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 1217
+    .method public static hidebysig 
+           default string GetFullPath (string path)  cil managed 
     {
-        // Method begins at RVA 0x1842f
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x18dd4
+	// Code size 135 (0x87)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		string	V_1)
 	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
+	IL_0002:  brtrue IL_0013
 
-    // method line 1154
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	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_001d:  ldarg.0 
+	IL_001e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0023:  brfalse IL_0035
+
+	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_0035:  ldarg.0 
+	IL_0036:  callvirt instance int32 string::get_Length()
+	IL_003b:  brfalse IL_0061
+
+	IL_0040:  ldarg.0 
+	IL_0041:  callvirt instance string string::Trim()
+	IL_0046:  callvirt instance int32 string::get_Length()
+	IL_004b:  brfalse IL_0061
+
+	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
+
+	IL_0085:  ldloc.0 
+	IL_0086:  ret 
+    } // end of method FileUtils::GetFullPath
+
+    // method line 1218
+    .method public static hidebysig 
+           default string GetHomeDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1843c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x18e68
+	// Code size 47 (0x2f)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	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:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  brfalse IL_001c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_UnlessDefined
+	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 1155
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+	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 1219
+    .method public static hidebysig 
+           default string ResolveFile (string[] directories, string fileName, bool recursive)  cil managed 
     {
-        // Method begins at RVA 0x18457
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x18ea4
+	// Code size 113 (0x71)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3,
+		string	V_4)
 	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
+	IL_0002:  brtrue IL_0012
 
-    // method line 1156
-    .method public hidebysig 
-           instance default class [System]System.Net.ICredentials GetCredential ()  cil managed 
+	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_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_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 1220
+    .method private static hidebysig 
+           default string ScanDirectory (string directory, string fileName, bool recursive)  cil managed 
     {
-        // Method begins at RVA 0x18464
-	// Code size 60 (0x3c)
+        // Method begins at RVA 0x18f24
+	// Code size 121 (0x79)
 	.maxstack 3
 	.locals init (
-		class [System]System.Net.ICredentials	V_0,
-		class [System]System.Net.ICredentials	V_1)
+		string	V_0,
+		string	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:  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_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_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_0014:  ldloc.0 
+	IL_0015:  stloc.1 
+	IL_0016:  br IL_0077
 
-	IL_003a:  ldloc.1 
-	IL_003b:  ret 
-    } // end of method Credential::GetCredential
+	IL_001b:  ldarg.2 
+	IL_001c:  brtrue IL_0028
 
-	.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.
+	IL_0021:  ldnull 
+	IL_0022:  stloc.1 
+	IL_0023:  br IL_0077
 
-		.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.
+	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
 
-		.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.
+	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 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..
+	IL_0057:  ldloc.0 
+	IL_0058:  stloc.1 
+	IL_0059:  br IL_0077
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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 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_0070:  ldnull 
+	IL_0071:  stloc.1 
+	IL_0072:  br IL_0077
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0077:  ldloc.1 
+	IL_0078:  ret 
+    } // end of method FileUtils::ScanDirectory
 
-		.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.Util.FileUtils
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit Token
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit FilterBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
   {
-    .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
+    .field  private initonly  string _className
+    .field  private initonly  string _filterName
 
-    // method line 1157
+    // method line 1221
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
     {
-        // Method begins at RVA 0x184ac
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x19018
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	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 1158
-    .method public hidebysig specialname 
-           instance default string get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0x184bc
-	// 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_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 Token::get_Key
+    } // end of method FilterBuilder::.ctor
 
-    // method line 1159
-    .method public hidebysig specialname 
-           instance default void set_Key (string 'value')  cil managed 
+    // method line 1222
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
     {
-        // Method begins at RVA 0x184d7
-	// 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 begins at RVA 0x19028
+	// 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
 
-    // method line 1160
+    // method line 1223
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default string get_ClassName ()  cil managed 
     {
-        // Method begins at RVA 0x184e4
+        // Method begins at RVA 0x19078
 	// 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_0002:  ldfld string NAnt.Core.Filters.FilterBuilder::_className
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Token::get_Value
-
-    // method line 1161
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x184ff
-	// 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 FilterBuilder::get_ClassName
 
-    // method line 1162
+    // method line 1224
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default string get_FilterName ()  cil managed 
     {
-        // Method begins at RVA 0x1850c
+        // Method begins at RVA 0x19094
 	// 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.Token::_ifDefined
+	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 Token::get_IfDefined
+    } // end of method FilterBuilder::get_FilterName
 
-    // method line 1163
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1225
+    .method public hidebysig 
+           instance default class NAnt.Core.Filters.Filter CreateFilter ()  cil managed 
     {
-        // Method begins at RVA 0x18527
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x190b0
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 42 (0x2a)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Token::_ifDefined
-	IL_0008:  ret 
-    } // end of method Token::set_IfDefined
-
-    // method line 1164
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x18534
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Token::get_UnlessDefined
-
-    // method line 1165
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1854f
-	// Code size 9 (0x9)
-	.maxstack 8
+		class NAnt.Core.Filters.Filter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Token::_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.
+	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
 
-		.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_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method FilterBuilder::CreateFilter
 
-		.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 ()
+	.property instance string ClassName ()
 	{
-		.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.Token::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Token::set_IfDefined (bool 'value') 
+		.get instance default string NAnt.Core.Filters.FilterBuilder::get_ClassName () 
 	}
-	.property instance bool UnlessDefined ()
+	.property instance string FilterName ()
 	{
-		.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') 
+		.get instance default string NAnt.Core.Filters.FilterBuilder::get_FilterName () 
 	}
-  } // end of class NAnt.Core.Types.Token
+  } // end of class NAnt.Core.Filters.FilterBuilder
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .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 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 initonly  class [mscorlib]System.Collections.ArrayList _list
+    .field  private  class [mscorlib]System.Text.Encoding _inputEncoding
+    .field  private  class NAnt.Core.Filters.FilterCollection _filters
 
-    // method line 1166
+    // method line 1226
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18559
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x190e6
+	// 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:  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 1167
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Pattern get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x18570
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Types.Pattern	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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method PatternCollection::get_Item
+	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 1168
+    // method line 1227
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Pattern 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18596
-	// 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::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method PatternCollection::set_Item
-
-    // method line 1169
-    .method private hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterCollection get_Filters ()  cil managed 
     {
-        // Method begins at RVA 0x185a8
+        // Method begins at RVA 0x190fc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		class NAnt.Core.Filters.FilterCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::_list
+	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 PatternCollection::get_List
+    } // end of method FilterChain::get_Filters
 
-    // method line 1170
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+    // method line 1228
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
     {
-        // Method begins at RVA 0x185c4
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19118
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class [mscorlib]System.Text.Encoding	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:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::_inputEncoding
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternCollection::get_Count
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FilterChain::get_InputEncoding
 
-    // method line 1171
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    // method line 1229
+    .method public hidebysig specialname 
+           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
     {
-        // Method begins at RVA 0x185e4
-	.override class [mscorlib]System.Collections.ICollection::CopyTo
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x19133
+	// 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:  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_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::_inputEncoding
+	IL_0008:  ret 
+    } // end of method FilterChain::set_InputEncoding
 
-    // method line 1172
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
+    // method line 1230
+    .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 0x185f4
-	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x19140
+	// 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:  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_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:  ret 
-    } // end of method PatternCollection::System.Collections.ICollection.get_IsSynchronized
+	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
+	IL_0018:  ret 
+    } // end of method FilterChain::InitializeXml
 
-    // method line 1173
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
+    // method line 1231
+    .method assembly hidebysig 
+           instance default class NAnt.Core.Filters.Filter GetBaseFilter (class NAnt.Core.Filters.PhysicalTextReader physicalTextReader)  cil managed 
     {
-        // Method begins at RVA 0x18614
-	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x19168
+	// Code size 164 (0xa4)
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		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:  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
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000f
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternCollection::System.Collections.ICollection.get_SyncRoot
+	IL_0007:  nop 
+	IL_0008:  ldnull 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_00a2
 
-    // method line 1174
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x18634
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	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_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance bool class NAnt.Core.Filters.ChainableReader::get_Base()
+	IL_0015:  brtrue IL_0031
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternCollection::System.Collections.IEnumerable.GetEnumerator
+	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
 
-    // method line 1175
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x18654
-	.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 instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternCollection::get_Item(int32)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	  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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method PatternCollection::System.Collections.IList.get_Item
+	  IL_0058:  ldloc.2 
+	  IL_0059:  callvirt instance bool class NAnt.Core.Filters.Filter::get_UnlessDefined()
+	  IL_005e:  brtrue IL_0074
 
-    // method line 1176
-    .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 0x18670
-	.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_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_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_0080:  leave IL_009b
 
-	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
+	} // 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
 
-    // method line 1177
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.IList.get_IsFixedSize ()  cil managed 
-    {
-        // Method begins at RVA 0x186d0
-	.override class [mscorlib]System.Collections.IList::get_IsFixedSize
-	// 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_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_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method PatternCollection::System.Collections.IList.get_IsFixedSize
+	IL_00a2:  ldloc.0 
+	IL_00a3:  ret 
+    } // end of method FilterChain::GetBaseFilter
 
-    // method line 1178
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.IList.get_IsReadOnly ()  cil managed 
+    // method line 1232
+    .method assembly static hidebysig 
+           default bool IsNullOrEmpty (class NAnt.Core.Filters.FilterChain filterChain)  cil managed 
     {
-        // Method begins at RVA 0x186e8
-	.override class [mscorlib]System.Collections.IList::get_IsReadOnly
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x19228
+	// Code size 41 (0x29)
+	.maxstack 2
 	.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 PatternCollection::System.Collections.IList.get_IsReadOnly
-
-    // method line 1179
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18700
-	.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_0001:  ldarg.0 
+	IL_0002:  brtrue IL_000f
 
 	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_0008:  ldc.i4.1 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0027
 
-	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_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_0055:  ldloc.0 
-	IL_0056:  ret 
-    } // end of method PatternCollection::System.Collections.IList.Add
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method FilterChain::IsNullOrEmpty
 
-    // method line 1180
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18764
-	.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
+	.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_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
+		.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_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
+		.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_0055:  ldloc.0 
-	IL_0056:  ret 
-    } // end of method PatternCollection::System.Collections.IList.Contains
+		.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
+  {
 
-    // method line 1181
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+    // method line 1233
+    .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 0x187c7
+        // Method begins at RVA 0x1925d
 	// 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_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 PatternCollection::Clear
+    } // end of method FilterChainConfigurator::.ctor
 
-    // method line 1182
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
+    // method line 1234
+    .method family virtual hidebysig 
+           instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
-        // Method begins at RVA 0x187d8
-	.override class [mscorlib]System.Collections.IList::IndexOf
-	// Code size 87 (0x57)
-	.maxstack 3
+        // Method begins at RVA 0x1926c
+	// Code size 732 (0x2dc)
+	.maxstack 8
 	.locals init (
-		int32	V_0)
+		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:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	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_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_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_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_0042:  nop 
 	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_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_0055:  ldloc.0 
-	IL_0056:  ret 
-    } // end of method PatternCollection::System.Collections.IList.IndexOf
+	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
 
-    // method line 1183
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1883c
-	.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_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_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_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_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_00b4:  nop 
+	  IL_00b5:  leave IL_00e6
 
-    // method line 1184
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1889c
-	.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
+	  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_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_00f2:  leave IL_010e
 
-	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
+	} // 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
 
-    // method line 1185
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.RemoveAt (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x188f8
-	.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_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
 
-    // method line 1186
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Pattern item)  cil managed 
-    {
-        // Method begins at RVA 0x18908
-	// 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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PatternCollection::Add
+	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
 
-    // method line 1187
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Pattern[] items)  cil managed 
-    {
-        // Method begins at RVA 0x1892c
-	// 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_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_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_0178:  nop 
+	IL_0179:  ldloc.s 11
+	IL_017b:  stloc.s 9
+	IL_017d:  br IL_0195
 
-	IL_0021:  ret 
-    } // end of method PatternCollection::AddRange
+	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
 
-    // method line 1188
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.PatternCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x1895c
-	// 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_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_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_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_0028:  ret 
-    } // end of method PatternCollection::AddRange
+	IL_020f:  nop 
+	IL_0210:  ldarg.1 
+	IL_0211:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_0216:  brtrue IL_0248
 
-    // method line 1189
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Pattern item)  cil managed 
-    {
-        // Method begins at RVA 0x18994
-	// 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.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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PatternCollection::Contains
+	  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
 
-    // method line 1190
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Pattern[] 'array', int32 index)  cil managed 
+	  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.Filters
+{
+  .class private auto ansi beforefieldinit PhysicalTextReader
+  	extends NAnt.Core.Filters.Filter
+  {
+
+    // method line 1235
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.IO.TextReader textReader)  cil managed 
     {
-        // Method begins at RVA 0x189b5
+        // Method begins at RVA 0x19720
 	// 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::CopyTo(class [mscorlib]System.Array, int32)
+	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 PatternCollection::CopyTo
+    } // end of method PhysicalTextReader::.ctor
 
-    // method line 1191
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Pattern item)  cil managed 
-    {
-        // Method begins at RVA 0x189c8
-	// 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
+  } // end of class NAnt.Core.Filters.PhysicalTextReader
+}
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PatternCollection::IndexOf
+.namespace NAnt.Core.Filters
+{
+  .class public auto ansi abstract beforefieldinit Filter
+  	extends NAnt.Core.Filters.ChainableReader
+  {
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 1192
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Pattern item)  cil managed 
+    // method line 1236
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x189e9
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x196c1
+	// 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:  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:  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
 
-    // method line 1193
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.PatternEnumerator GetEnumerator ()  cil managed 
+    // method line 1237
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x189fc
+        // Method begins at RVA 0x196d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PatternEnumerator	V_0)
+		bool	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 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 PatternCollection::GetEnumerator
+    } // end of method Filter::get_IfDefined
 
-    // method line 1194
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Pattern item)  cil managed 
+    // method line 1238
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x18a17
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x196eb
+	// 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
-
-	.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 ()
-	{
-		.get instance default int32 NAnt.Core.Types.PatternCollection::get_Count () 
-	}
-  } // end of class NAnt.Core.Types.PatternCollection
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit PatternEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 1195
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.PatternCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x18a28
-	// 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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Filters.Filter::_ifDefined
+	IL_0008:  ret 
+    } // end of method Filter::set_IfDefined
 
-    // method line 1196
+    // method line 1239
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Pattern get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x18a4c
-	// 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
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method PatternEnumerator::get_Current
-
-    // method line 1197
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x18a74
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x196f8
+	// 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.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 bool NAnt.Core.Filters.Filter::_unlessDefined
+	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 Filter::get_UnlessDefined
 
-    // method line 1198
-    .method public final virtual hidebysig newslot 
-           instance default bool MoveNext ()  cil managed 
+    // method line 1240
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x18a94
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x19713
+	// 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 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 PatternEnumerator::MoveNext
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Filters.Filter::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Filter::set_UnlessDefined
 
-    // method line 1199
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
+    // method line 1241
+    .method public virtual hidebysig newslot 
+           instance default void InitializeFilter ()  cil managed 
     {
-        // Method begins at RVA 0x18ab4
-	// Code size 13 (0xd)
+        // Method begins at RVA 0x1971d
+	// Code size 2 (0x2)
 	.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_0001:  ret 
+    } // end of method Filter::InitializeFilter
 
-	.property instance object System.Collections.IEnumerator.Current ()
+	.property instance bool IfDefined ()
 	{
-		.get instance default object NAnt.Core.Types.PatternEnumerator::System.Collections.IEnumerator.get_Current () 
+		.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.Filters.Filter::get_IfDefined () 
+		.set instance default void NAnt.Core.Filters.Filter::set_IfDefined (bool 'value') 
 	}
-	.property instance class NAnt.Core.Types.Pattern Current ()
+	.property instance bool UnlessDefined ()
 	{
-		.get instance default class NAnt.Core.Types.Pattern NAnt.Core.Types.PatternEnumerator::get_Current () 
+		.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.Filters.Filter::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Filters.Filter::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Types.PatternEnumerator
+  } // end of class NAnt.Core.Filters.Filter
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit XsltExtensionObjectCollection
+  .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 1200
+    // method line 1242
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18ac2
+        // Method begins at RVA 0x19730
 	// 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 XsltExtensionObjectCollection::.ctor
+    } // end of method FilterBuilderCollection::.ctor
 
-    // method line 1201
+    // method line 1243
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObjectCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x18acb
+        // Method begins at RVA 0x19739
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -45359,15 +47007,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.XsltExtensionObjectCollection::AddRange(class NAnt.Core.Types.XsltExtensionObjectCollection)
+	IL_0009:  call instance void class NAnt.Core.Filters.FilterBuilderCollection::AddRange(class NAnt.Core.Filters.FilterBuilderCollection)
 	IL_000e:  ret 
-    } // end of method XsltExtensionObjectCollection::.ctor
+    } // end of method FilterBuilderCollection::.ctor
 
-    // method line 1202
+    // method line 1244
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObject[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilder[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x18adb
+        // Method begins at RVA 0x19749
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -45375,37 +47023,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.XsltExtensionObjectCollection::AddRange(class NAnt.Core.Types.XsltExtensionObject[])
+	IL_0009:  call instance void class NAnt.Core.Filters.FilterBuilderCollection::AddRange(class NAnt.Core.Filters.FilterBuilder[])
 	IL_000e:  ret 
-    } // end of method XsltExtensionObjectCollection::.ctor
+    } // end of method FilterBuilderCollection::.ctor
 
-    // method line 1203
+    // method line 1245
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltExtensionObject get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilder get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x18aec
+        // Method begins at RVA 0x1975c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.XsltExtensionObject	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.XsltExtensionObject
+	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 XsltExtensionObjectCollection::get_Item
+    } // end of method FilterBuilderCollection::get_Item
 
-    // method line 1204
+    // method line 1246
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.XsltExtensionObject 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Filters.FilterBuilder 'value')  cil managed 
     {
-        // Method begins at RVA 0x18b12
+        // Method begins at RVA 0x19782
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -45415,19 +47063,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 XsltExtensionObjectCollection::set_Item
+    } // end of method FilterBuilderCollection::set_Item
 
-    // method line 1205
+    // method line 1247
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltExtensionObject get_Item (string 'value')  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilder get_Item (string filterName)  cil managed 
     {
-        // Method begins at RVA 0x18b24
+        // Method begins at RVA 0x19794
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.XsltExtensionObject	V_0,
+		class NAnt.Core.Filters.FilterBuilder	V_0,
 		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.XsltExtensionObject	V_2,
+		class NAnt.Core.Filters.FilterBuilder	V_2,
 		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
@@ -45444,13 +47092,13 @@
 
 	  IL_001a:  ldloc.1 
 	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.XsltExtensionObject
+	  IL_0020:  castclass NAnt.Core.Filters.FilterBuilder
 	  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_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 
@@ -45484,13 +47132,13 @@
 
 	IL_006d:  ldloc.2 
 	IL_006e:  ret 
-    } // end of method XsltExtensionObjectCollection::get_Item
+    } // end of method FilterBuilderCollection::get_Item
 
-    // method line 1206
+    // method line 1248
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x18bb0
+        // Method begins at RVA 0x19820
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -45505,13 +47153,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XsltExtensionObjectCollection::Add
+    } // end of method FilterBuilderCollection::Add
 
-    // method line 1207
+    // method line 1249
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XsltExtensionObject[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.FilterBuilder[] items)  cil managed 
     {
-        // Method begins at RVA 0x18bd4
+        // Method begins at RVA 0x19844
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -45526,7 +47174,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.XsltExtensionObjectCollection::Add(class NAnt.Core.Types.XsltExtensionObject)
+	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 
@@ -45540,13 +47188,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method XsltExtensionObjectCollection::AddRange
+    } // end of method FilterBuilderCollection::AddRange
 
-    // method line 1208
+    // method line 1250
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XsltExtensionObjectCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.FilterBuilderCollection items)  cil managed 
     {
-        // Method begins at RVA 0x18c04
+        // Method begins at RVA 0x19874
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -45560,8 +47208,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.XsltExtensionObject class NAnt.Core.Types.XsltExtensionObjectCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.XsltExtensionObjectCollection::Add(class NAnt.Core.Types.XsltExtensionObject)
+	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 
@@ -45574,13 +47222,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method XsltExtensionObjectCollection::AddRange
+    } // end of method FilterBuilderCollection::AddRange
 
-    // method line 1209
+    // method line 1251
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x18c3c
+        // Method begins at RVA 0x198ac
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -45595,13 +47243,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XsltExtensionObjectCollection::Contains
+    } // end of method FilterBuilderCollection::Contains
 
-    // method line 1210
+    // method line 1252
     .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
+           instance default bool Contains (string taskName)  cil managed 
     {
-        // Method begins at RVA 0x18c60
+        // Method begins at RVA 0x198d0
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -45609,7 +47257,7 @@
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.XsltExtensionObject class NAnt.Core.Types.XsltExtensionObjectCollection::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 
@@ -45619,13 +47267,13 @@
 
 	IL_0014:  ldloc.0 
 	IL_0015:  ret 
-    } // end of method XsltExtensionObjectCollection::Contains
+    } // end of method FilterBuilderCollection::Contains
 
-    // method line 1211
+    // method line 1253
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.XsltExtensionObject[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.Filters.FilterBuilder[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x18c82
+        // Method begins at RVA 0x198f2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -45635,13 +47283,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 XsltExtensionObjectCollection::CopyTo
+    } // end of method FilterBuilderCollection::CopyTo
 
-    // method line 1212
+    // method line 1254
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x18c94
+        // Method begins at RVA 0x19904
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -45656,13 +47304,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XsltExtensionObjectCollection::IndexOf
+    } // end of method FilterBuilderCollection::IndexOf
 
-    // method line 1213
+    // method line 1255
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x18cb5
+        // Method begins at RVA 0x19925
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -45672,32 +47320,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method XsltExtensionObjectCollection::Insert
+    } // end of method FilterBuilderCollection::Insert
 
-    // method line 1214
+    // method line 1256
     .method public hidebysig 
-           instance default class NAnt.Core.Types.XsltExtensionObjectEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilderEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x18cc8
+        // Method begins at RVA 0x19938
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XsltExtensionObjectEnumerator	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.XsltExtensionObjectEnumerator::'.ctor'(class NAnt.Core.Types.XsltExtensionObjectCollection)
+	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 XsltExtensionObjectCollection::GetEnumerator
+    } // end of method FilterBuilderCollection::GetEnumerator
 
-    // method line 1215
+    // method line 1257
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
+           instance default void Remove (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x18ce3
+        // Method begins at RVA 0x19953
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -45706,32 +47354,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method XsltExtensionObjectCollection::Remove
+    } // end of method FilterBuilderCollection::Remove
 
-	.property instance class NAnt.Core.Types.XsltExtensionObject Item (int32)
+	.property instance class NAnt.Core.Filters.FilterBuilder Item (int32)
 	{
-		.get instance default class NAnt.Core.Types.XsltExtensionObject NAnt.Core.Types.XsltExtensionObjectCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.XsltExtensionObjectCollection::set_Item (int32 index, class NAnt.Core.Types.XsltExtensionObject '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.XsltExtensionObject Item (string)
+	.property instance class NAnt.Core.Filters.FilterBuilder Item (string)
 	{
-		.get instance default class NAnt.Core.Types.XsltExtensionObject NAnt.Core.Types.XsltExtensionObjectCollection::get_Item (string 'value') 
+		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderCollection::get_Item (string filterName) 
 	}
-  } // end of class NAnt.Core.Types.XsltExtensionObjectCollection
+  } // end of class NAnt.Core.Filters.FilterBuilderCollection
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit XsltExtensionObjectEnumerator
+  .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 1216
+    // method line 1258
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObjectCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x18cf4
+        // Method begins at RVA 0x19964
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -45744,36 +47392,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.XsltExtensionObjectEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method XsltExtensionObjectEnumerator::.ctor
+    } // end of method FilterBuilderEnumerator::.ctor
 
-    // method line 1217
+    // method line 1259
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltExtensionObject get_Current ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilder get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x18d18
+        // Method begins at RVA 0x19988
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XsltExtensionObject	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.XsltExtensionObjectEnumerator::_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.XsltExtensionObject
+	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 XsltExtensionObjectEnumerator::get_Current
+    } // end of method FilterBuilderEnumerator::get_Current
 
-    // method line 1218
+    // method line 1260
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x18d40
+        // Method begins at RVA 0x199b0
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -45781,40 +47429,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_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 XsltExtensionObjectEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 1219
+    // method line 1261
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x18d60
+        // Method begins at RVA 0x199d0
 	// 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.XsltExtensionObjectEnumerator::_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 XsltExtensionObjectEnumerator::MoveNext
+    } // end of method FilterBuilderEnumerator::MoveNext
 
-    // method line 1220
+    // method line 1262
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x18d80
+        // Method begins at RVA 0x199f0
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -45822,81 +47470,392 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_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 XsltExtensionObjectEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 1221
+    // method line 1263
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x18da0
+        // Method begins at RVA 0x19a10
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltExtensionObjectEnumerator::_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 XsltExtensionObjectEnumerator::Reset
+    } // end of method FilterBuilderEnumerator::Reset
 
-    // method line 1222
+    // method line 1264
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x18dae
+        // Method begins at RVA 0x19a1e
 	.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.XsltExtensionObjectEnumerator::_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 XsltExtensionObjectEnumerator::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.XsltExtensionObjectEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.Filters.FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.Types.XsltExtensionObject Current ()
+	.property instance class NAnt.Core.Filters.FilterBuilder Current ()
 	{
-		.get instance default class NAnt.Core.Types.XsltExtensionObject NAnt.Core.Types.XsltExtensionObjectEnumerator::get_Current () 
+		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Types.XsltExtensionObjectEnumerator
+  } // end of class NAnt.Core.Filters.FilterBuilderEnumerator
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit EnvironmentVariableCollection
+  .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 1265
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x19570
+	// 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 ChainableReader::.ctor
+
+    // method line 1266
+    .method public hidebysig specialname 
+           instance default bool get_Base ()  cil managed 
+    {
+        // Method begins at RVA 0x19578
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Filters.ChainableReader::_baseReader
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ChainableReader::get_Base
+
+    // method line 1267
+    .method public virtual hidebysig newslot 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader parentChainedReader)  cil managed 
+    {
+        // Method begins at RVA 0x19594
+	// Code size 89 (0x59)
+	.maxstack 3
+	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
+
+    // method line 1268
+    .method public virtual hidebysig newslot 
+           instance default void Chain (class [mscorlib]System.IO.TextReader baseReader)  cil managed 
+    {
+        // Method begins at RVA 0x195fc
+	// 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 1269
+    .method public virtual hidebysig newslot 
+           instance default int32 Peek ()  cil managed 
+    {
+        // Method begins at RVA 0x19664
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	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
+
+    // method line 1270
+    .method public virtual hidebysig newslot 
+           instance default int32 Read ()  cil managed 
+    {
+        // Method begins at RVA 0x19684
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		int32	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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ChainableReader::Read
+
+    // method line 1271
+    .method public virtual hidebysig newslot 
+           instance default void Close ()  cil managed 
+    {
+        // Method begins at RVA 0x196a4
+	// Code size 13 (0xd)
+	.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
+
+    // method line 1272
+    .method public final virtual hidebysig newslot 
+           instance default void Dispose ()  cil managed 
+    {
+        // Method begins at RVA 0x196b2
+	// Code size 14 (0xe)
+	.maxstack 8
+	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 1273
+    .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 1274
+    .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 1275
+    .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 1276
+    .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 1277
+    .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 1278
+    .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 1279
+    .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 1280
+    .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 1281
+    .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
+
+    // method line 1282
+    .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 1283
+    .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 internalClose::BeginInvoke
+
+    // method line 1284
+    .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 internalClose::EndInvoke
+
+  } // end of class internalClose
+
+  } // end of class NAnt.Core.Filters.ChainableReader
+}
+
+.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..
 
 
-    // method line 1223
+    // method line 1285
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18dbc
+        // Method begins at RVA 0x19a2c
 	// 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
+    } // end of method FilterCollection::.ctor
 
-    // method line 1224
+    // method line 1286
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x18dc5
+        // Method begins at RVA 0x19a35
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -45904,15 +47863,15 @@
 	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_0009:  call instance void class NAnt.Core.Filters.FilterCollection::AddRange(class NAnt.Core.Filters.FilterCollection)
 	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::.ctor
+    } // end of method FilterCollection::.ctor
 
-    // method line 1225
+    // method line 1287
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariable[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.Filter[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x18dd5
+        // Method begins at RVA 0x19a45
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -45920,37 +47879,37 @@
 	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.FilterCollection::AddRange(class NAnt.Core.Filters.Filter[])
 	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::.ctor
+    } // end of method FilterCollection::.ctor
 
-    // method line 1226
+    // method line 1288
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Filters.Filter get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x18de8
+        // Method begins at RVA 0x19a58
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariable	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.EnvironmentVariable
+	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 EnvironmentVariableCollection::get_Item
+    } // end of method FilterCollection::get_Item
 
-    // method line 1227
+    // method line 1289
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.EnvironmentVariable 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Filters.Filter 'value')  cil managed 
     {
-        // Method begins at RVA 0x18e0e
+        // Method begins at RVA 0x19a7e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -45960,82 +47919,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 EnvironmentVariableCollection::set_Item
-
-    // method line 1228
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (string name)  cil managed 
-    {
-        // Method begins at RVA 0x18e20
-	// Code size 111 (0x6f)
-	.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 
-	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.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
+    } // end of method FilterCollection::set_Item
 
-    // method line 1229
+    // method line 1290
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0x18eac
+        // Method begins at RVA 0x19a90
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -46050,13 +47940,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method EnvironmentVariableCollection::Add
+    } // end of method FilterCollection::Add
 
-    // method line 1230
+    // method line 1291
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariable[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.Filter[] items)  cil managed 
     {
-        // Method begins at RVA 0x18ed0
+        // Method begins at RVA 0x19ab4
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -46071,7 +47961,7 @@
 	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_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 
@@ -46085,13 +47975,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method EnvironmentVariableCollection::AddRange
+    } // end of method FilterCollection::AddRange
 
-    // method line 1231
+    // method line 1292
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariableCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.FilterCollection items)  cil managed 
     {
-        // Method begins at RVA 0x18f00
+        // Method begins at RVA 0x19ae4
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -46105,8 +47995,8 @@
 	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_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 
@@ -46119,13 +48009,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method EnvironmentVariableCollection::AddRange
+    } // end of method FilterCollection::AddRange
 
-    // method line 1232
+    // method line 1293
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0x18f38
+        // Method begins at RVA 0x19b1c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -46140,37 +48030,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method EnvironmentVariableCollection::Contains
-
-    // method line 1233
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18f5c
-	// 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
+    } // end of method FilterCollection::Contains
 
-    // method line 1234
+    // method line 1294
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.EnvironmentVariable[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.Filters.Filter[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x18f7e
+        // Method begins at RVA 0x19b3d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -46180,13 +48046,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 EnvironmentVariableCollection::CopyTo
+    } // end of method FilterCollection::CopyTo
 
-    // method line 1235
+    // method line 1295
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0x18f90
+        // Method begins at RVA 0x19b50
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -46201,13 +48067,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method EnvironmentVariableCollection::IndexOf
+    } // end of method FilterCollection::IndexOf
 
-    // method line 1236
+    // method line 1296
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0x18fb1
+        // Method begins at RVA 0x19b71
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -46217,32 +48083,32 @@
 	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
+    } // end of method FilterCollection::Insert
 
-    // method line 1237
+    // method line 1297
     .method public hidebysig 
-           instance default class NAnt.Core.Types.EnvironmentVariableEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x18fc4
+        // Method begins at RVA 0x19b84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariableEnumerator	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.EnvironmentVariableEnumerator::'.ctor'(class NAnt.Core.Types.EnvironmentVariableCollection)
+	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 EnvironmentVariableCollection::GetEnumerator
+    } // end of method FilterCollection::GetEnumerator
 
-    // method line 1238
+    // method line 1298
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
+           instance default void Remove (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0x18fdf
+        // Method begins at RVA 0x19b9f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -46251,32 +48117,28 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method EnvironmentVariableCollection::Remove
+    } // end of method FilterCollection::Remove
 
-	.property instance class NAnt.Core.Types.EnvironmentVariable Item (int32)
-	{
-		.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.Types.EnvironmentVariable Item (string)
+	.property instance class NAnt.Core.Filters.Filter Item (int32)
 	{
-		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableCollection::get_Item (string name) 
+		.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.EnvironmentVariableCollection
+  } // end of class NAnt.Core.Filters.FilterCollection
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit EnvironmentVariableEnumerator
+  .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 1239
+    // method line 1299
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x18ff0
+        // Method begins at RVA 0x19bb0
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -46289,36 +48151,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.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method EnvironmentVariableEnumerator::.ctor
+    } // end of method FilterEnumerator::.ctor
 
-    // method line 1240
+    // method line 1300
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariable get_Current ()  cil managed 
+           instance default class NAnt.Core.Filters.Filter get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x19014
+        // Method begins at RVA 0x19bd4
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariable	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.EnvironmentVariableEnumerator::_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.EnvironmentVariable
+	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 EnvironmentVariableEnumerator::get_Current
+    } // end of method FilterEnumerator::get_Current
 
-    // method line 1241
+    // method line 1301
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x1903c
+        // Method begins at RVA 0x19bfc
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -46326,40 +48188,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_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 EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method FilterEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 1242
+    // method line 1302
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x1905c
+        // Method begins at RVA 0x19c1c
 	// 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.EnvironmentVariableEnumerator::_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 EnvironmentVariableEnumerator::MoveNext
+    } // end of method FilterEnumerator::MoveNext
 
-    // method line 1243
+    // method line 1303
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x1907c
+        // Method begins at RVA 0x19c3c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -46367,12396 +48229,8584 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_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 EnvironmentVariableEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method FilterEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 1244
+    // method line 1304
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1909c
+        // Method begins at RVA 0x19c5c
 	// 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_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 EnvironmentVariableEnumerator::Reset
+    } // end of method FilterEnumerator::Reset
 
-    // method line 1245
+    // method line 1305
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x190aa
+        // Method begins at RVA 0x19c6a
 	.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.EnvironmentVariableEnumerator::_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 EnvironmentVariableEnumerator::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.EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.Filters.FilterEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.Types.EnvironmentVariable Current ()
+	.property instance class NAnt.Core.Filters.Filter Current ()
 	{
-		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current () 
+		.get instance default class NAnt.Core.Filters.Filter NAnt.Core.Filters.FilterEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Types.EnvironmentVariableEnumerator
+  } // end of class NAnt.Core.Filters.FilterEnumerator
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit Option
-  	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 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
+    .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                                           ) // ..
 
-    // method line 1246
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x190b8
-	// 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
+    .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 1247
+    // method line 1306
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x190d6
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x19c78
+	// Code size 48 (0x30)
 	.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_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 1248
+    // method line 1307
     .method public hidebysig specialname 
-           instance default string get_OptionName ()  cil managed 
+           instance default char get_BeginToken ()  cil managed 
     {
-        // Method begins at RVA 0x190e8
+        // Method begins at RVA 0x19cac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		char	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Option::_name
+	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 Option::get_OptionName
+    } // end of method ReplaceTokens::get_BeginToken
 
-    // method line 1249
+    // method line 1308
     .method public hidebysig specialname 
-           instance default void set_OptionName (string 'value')  cil managed 
+           instance default void set_BeginToken (char 'value')  cil managed 
     {
-        // Method begins at RVA 0x19103
+        // Method begins at RVA 0x19cc7
 	// 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_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
 	IL_0008:  ret 
-    } // end of method Option::set_OptionName
+    } // end of method ReplaceTokens::set_BeginToken
 
-    // method line 1250
+    // method line 1309
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default char get_EndToken ()  cil managed 
     {
-        // Method begins at RVA 0x19110
+        // Method begins at RVA 0x19cd4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		char	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Option::_value
+	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 Option::get_Value
+    } // end of method ReplaceTokens::get_EndToken
 
-    // method line 1251
+    // method line 1310
     .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+           instance default void set_EndToken (char 'value')  cil managed 
     {
-        // Method begins at RVA 0x1912b
+        // Method begins at RVA 0x19cef
 	// 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_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_endToken
 	IL_0008:  ret 
-    } // end of method Option::set_Value
+    } // end of method ReplaceTokens::set_EndToken
 
-    // method line 1252
+    // method line 1311
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default class NAnt.Core.Types.Token[] get_Tokens ()  cil managed 
     {
-        // Method begins at RVA 0x19138
+        // Method begins at RVA 0x19cfc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.Token[]	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Option::_ifDefined
+	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 Option::get_IfDefined
+    } // end of method ReplaceTokens::get_Tokens
 
-    // method line 1253
+    // method line 1312
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_Tokens (class NAnt.Core.Types.Token[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x19153
+        // Method begins at RVA 0x19d17
 	// 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_0003:  stfld class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::_tokens
 	IL_0008:  ret 
-    } // end of method Option::set_IfDefined
+    } // end of method ReplaceTokens::set_Tokens
 
-    // method line 1254
+    // method line 1313
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default bool get_IgnoreCase ()  cil managed 
     {
-        // Method begins at RVA 0x19160
+        // Method begins at RVA 0x19d24
 	// 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::_unlessDefined
+	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 Option::get_UnlessDefined
+    } // end of method ReplaceTokens::get_IgnoreCase
 
-    // method line 1255
+    // method line 1314
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+           instance default void set_IgnoreCase (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1917b
+        // Method begins at RVA 0x19d3f
 	// 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_0003:  stfld bool NAnt.Core.Filters.ReplaceTokens::_ignoreCase
 	IL_0008:  ret 
-    } // end of method Option::set_UnlessDefined
-
-	.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.
-
-		.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') 
-	}
-	.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.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..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.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..
-
-		.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') 
-	}
-  } // end of class NAnt.Core.Types.Option
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi serializable beforefieldinit FormatterCollection
-  	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 1256
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x19185
-	// 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 1257
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1918e
-	// 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 1258
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.Formatter[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1919e
-	// 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 1259
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Formatter get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x191b0
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Types.Formatter	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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FormatterCollection::get_Item
+    } // end of method ReplaceTokens::set_IgnoreCase
 
-    // method line 1260
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Formatter 'value')  cil managed 
+    // method line 1315
+    .method public virtual hidebysig 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
     {
-        // Method begins at RVA 0x191d6
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x19d49
+	// Code size 27 (0x1b)
 	.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:  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
 
-    // method line 1261
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Formatter item)  cil managed 
+    // method line 1316
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0x191e8
+        // Method begins at RVA 0x19d68
 	// 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_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_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FormatterCollection::Add
+    } // end of method ReplaceTokens::Read
 
-    // method line 1262
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Formatter[] items)  cil managed 
+    // method line 1317
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0x1920c
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x19d89
+	// Code size 17 (0x11)
+	.maxstack 8
 	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.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_0021:  ret 
-    } // end of method FormatterCollection::AddRange
+	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
 
-    // method line 1263
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.FormatterCollection items)  cil managed 
+    // method line 1318
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x1923c
-	// Code size 41 (0x29)
-	.maxstack 3
+        // Method begins at RVA 0x19d9c
+	// Code size 190 (0xbe)
+	.maxstack 4
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Types.Token	V_0,
+		class NAnt.Core.Types.Token[]	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	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_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
+	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_0028:  ret 
-    } // end of method FormatterCollection::AddRange
+	IL_0020:  ldloc.0 
+	IL_0021:  callvirt instance bool class NAnt.Core.Types.Token::get_UnlessDefined()
+	IL_0026:  brtrue IL_006d
 
-    // method line 1264
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Formatter item)  cil managed 
-    {
-        // Method begins at RVA 0x19274
-	// 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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FormatterCollection::Contains
+	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 1265
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Formatter[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x19295
-	// 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_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
 
-    // method line 1266
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Formatter item)  cil managed 
+	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 1319
+    .method private hidebysig 
+           instance default string FindTokenContents ([out] bool& tokenNotFound, [out] bool& unknownToken, [out] bool& streamEnded)  cil managed 
     {
-        // Method begins at RVA 0x192a8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x19e68
+	// Code size 385 (0x181)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		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.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:  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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FormatterCollection::IndexOf
+	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
 
-    // method line 1267
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Formatter item)  cil managed 
-    {
-        // Method begins at RVA 0x192c9
-	// 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
+	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
 
-    // method line 1268
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.FormatterEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x192dc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.FormatterEnumerator	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_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FormatterCollection::GetEnumerator
+	IL_006a:  nop 
+	IL_006b:  ldc.i4.1 
+	IL_006c:  stloc.2 
+	IL_006d:  br IL_00dd
 
-    // method line 1269
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Formatter item)  cil managed 
-    {
-        // Method begins at RVA 0x192f7
-	// 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_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
 
-	.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_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
 
-.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_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
 
-    // method line 1270
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x19308
-	// 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_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
 
-    // method line 1271
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Formatter get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x1932c
-	// 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_00dd:  ldloc.2 
+	IL_00de:  brfalse IL_0165
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FormatterEnumerator::get_Current
+	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
 
-    // method line 1272
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x19354
-	.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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterEnumerator::System.Collections.IEnumerator.get_Current
+	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
 
-    // method line 1273
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x19374
-	// 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_012f:  ldloc.s 5
+	IL_0131:  brfalse IL_0146
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterEnumerator::MoveNext
+	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 1274
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x19394
-	.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
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterEnumerator::System.Collections.IEnumerator.MoveNext
+	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 1275
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x193b4
-	// 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
+	IL_017e:  ldloc.s 4
+	IL_0180:  ret 
+    } // end of method ReplaceTokens::FindTokenContents
 
-    // method line 1276
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    // method line 1320
+    .method private hidebysig 
+           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate AcquireChar)  cil managed 
     {
-        // Method begins at RVA 0x193c2
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x19ff8
+	// Code size 386 (0x182)
+	.maxstack 5
+	.locals init (
+		int32	V_0,
+		int32	V_1,
+		int32	V_2)
 	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
+	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0007:  brtrue IL_001a
 
-	.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
-}
+	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
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi serializable beforefieldinit XsltParameterCollection
-  	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_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
 
-    // method line 1277
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x193d0
-	// 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
+	IL_003d:  ldarg.0 
+	IL_003e:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
+	IL_0043:  brfalse IL_008e
 
-    // method line 1278
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x193d9
-	// 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.XsltParameterCollection)
-	IL_000e:  ret 
-    } // end of method XsltParameterCollection::.ctor
+	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 1279
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltParameter[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x193e9
-	// 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
+	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
 
-    // method line 1280
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameter get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x193fc
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Types.XsltParameter	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_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method XsltParameterCollection::get_Item
+	IL_00b1:  nop 
+	IL_00b2:  br IL_00ed
 
-    // method line 1281
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.XsltParameter 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19422
-	// 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
+	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
 
-    // method line 1282
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameter get_Item (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19434
-	// 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_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_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_00e4:  nop 
+	IL_00e5:  ldc.i4.m1 
+	IL_00e6:  stloc.2 
+	IL_00e7:  br IL_0180
 
-	  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_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_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+	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_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	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_004c:  leave IL_0065
+	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
 
-	} // 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_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_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_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_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method XsltParameterCollection::get_Item
+	IL_0178:  nop 
+	IL_0179:  ldloc.0 
+	IL_017a:  stloc.2 
+	IL_017b:  br IL_0180
 
-    // method line 1283
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.XsltParameter item)  cil managed 
+	IL_0180:  ldloc.2 
+	IL_0181:  ret 
+    } // end of method ReplaceTokens::GetNextCharacter
+
+    // method line 1321
+    .method private hidebysig 
+           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
     {
-        // Method begins at RVA 0x194c0
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1a188
+	// Code size 48 (0x30)
 	.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.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:  call instance bool class NAnt.Core.Filters.ReplaceTokens::get_IgnoreCase()
+	IL_0007:  brfalse IL_0023
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method XsltParameterCollection::Add
+	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 1284
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XsltParameter[] items)  cil managed 
-    {
-        // Method begins at RVA 0x194e4
-	// 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_0023:  nop 
+	IL_0024:  ldarg.1 
+	IL_0025:  ldarg.2 
+	IL_0026:  ceq 
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
 
-	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_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method ReplaceTokens::CompareCharacters
 
-	IL_0021:  ret 
-    } // end of method XsltParameterCollection::AddRange
+	.property instance char BeginToken ()
+	{
+		.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..
 
-    // method line 1285
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XsltParameterCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x19514
-	// 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.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	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
+		.get instance default char NAnt.Core.Filters.ReplaceTokens::get_BeginToken () 
+		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_BeginToken (char 'value') 
+	}
+	.property instance char EndToken ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 64 74 6F 6B 65 6E 00 00 ) // ...endtoken..
 
-	IL_0028:  ret 
-    } // end of method XsltParameterCollection::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 1286
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.XsltParameter item)  cil managed 
-    {
-        // Method begins at RVA 0x1954c
-	// 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 char NAnt.Core.Filters.ReplaceTokens::get_EndToken () 
+		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_EndToken (char 'value') 
+	}
+	.property instance class NAnt.Core.Types.Token[] Tokens ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 05 74 6F 6B 65 6E 00 00 ) // ...token..
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method XsltParameterCollection::Contains
+		.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 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.
 
-    // method line 1287
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
+		.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') 
+	}
+  .class nested private auto ansi sealed AcquireCharDelegate
+  	extends [mscorlib]System.MulticastDelegate
+  {
+
+    // method line 1322
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0x19570
-	// 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
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::.ctor
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method XsltParameterCollection::Contains
+    // method line 1323
+    .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 1288
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.XsltParameter[] 'array', int32 index)  cil managed 
+    // method line 1324
+    .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 0x19592
-	// 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 XsltParameterCollection::CopyTo
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::BeginInvoke
 
-    // method line 1289
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    // method line 1325
+    .method public virtual hidebysig newslot 
+           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
-        // Method begins at RVA 0x195a4
-	// 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
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::EndInvoke
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method XsltParameterCollection::IndexOf
+  } // end of class AcquireCharDelegate
 
-    // method line 1290
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.XsltParameter item)  cil managed 
+  } // end of class NAnt.Core.Filters.ReplaceTokens
+}
+
+.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 1326
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x195c5
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1a1c4
+	// 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 XsltParameterCollection::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 1291
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.XsltParameterEnumerator GetEnumerator ()  cil managed 
+    // method line 1327
+    .method public hidebysig specialname 
+           instance default int32 get_TabLength ()  cil managed 
     {
-        // Method begins at RVA 0x195d8
+        // Method begins at RVA 0x1a1d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XsltParameterEnumerator	V_0)
+		int32	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:  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 XsltParameterCollection::GetEnumerator
+    } // end of method TabsToSpaces::get_TabLength
 
-    // method line 1292
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    // method line 1328
+    .method public hidebysig specialname 
+           instance default void set_TabLength (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x195f3
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1a1ef
+	// 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 XsltParameterCollection::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)
-	{
-		.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 1293
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x19604
-	// 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.XsltParameterEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method XsltParameterEnumerator::.ctor
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
+	IL_0008:  ret 
+    } // end of method TabsToSpaces::set_TabLength
 
-    // method line 1294
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameter get_Current ()  cil managed 
+    // method line 1329
+    .method public virtual hidebysig 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
     {
-        // Method begins at RVA 0x19628
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.XsltParameter	V_0)
+        // Method begins at RVA 0x1a1f9
+	// Code size 27 (0x1b)
+	.maxstack 8
 	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:  castclass NAnt.Core.Types.XsltParameter
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method XsltParameterEnumerator::get_Current
+	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 1295
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 1330
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0x19650
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0x1a215
+	// Code size 17 (0x11)
+	.maxstack 8
 	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.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 1296
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 1331
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0x19670
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x1a228
+	// Code size 21 (0x15)
+	.maxstack 2
 	.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.XsltParameterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	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 XsltParameterEnumerator::MoveNext
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TabsToSpaces::Read
 
-    // method line 1297
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 1332
+    .method private hidebysig 
+           instance default int32 GetNextCharacter (class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate AcquireChar)  cil managed 
     {
-        // Method begins at RVA 0x19690
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x1a24c
+	// 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.XsltParameterEnumerator::_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 XsltParameterEnumerator::System.Collections.IEnumerator.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 1298
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x196b0
-	// 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_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method XsltParameterEnumerator::Reset
+	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
 
-    // method line 1299
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x196be
-	.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_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.Reset
+	IL_0033:  nop 
+	IL_0034:  ldloc.0 
+	IL_0035:  stloc.1 
+	IL_0036:  br IL_0052
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Types.XsltParameterEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.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
-}
+	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
 
-.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_0052:  ldloc.1 
+	IL_0053:  ret 
+    } // end of method TabsToSpaces::GetNextCharacter
 
-    .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)
+	.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..
 
-  } // end of class NAnt.Core.Types.ManagedExecution
-}
+		.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                                           ) // ..
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit ManagedExecutionConverter
-  	extends [System]System.ComponentModel.EnumConverter
+		.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 1300
+    // method line 1333
     .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 0x196cc
-	// 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 1301
-    .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 1334
+    .method public virtual hidebysig newslot 
+           instance default int32 Invoke ()  runtime managed 
     {
-        // Method begins at RVA 0x196e0
-	// 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 1335
+    .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 1336
+    .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.TabsToSpaces
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit XmlNamespace
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit ExpandProperties
+  	extends NAnt.Core.Filters.Filter
   {
-    .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 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  string _prefix
-    .field  private  string _uri
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .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 1302
+    // method line 1337
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x19766
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1a2ac
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	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
+	IL_0001:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ExpandProperties::.ctor
 
-    // method line 1303
-    .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+    // method line 1338
+    .method private hidebysig specialname 
+           instance default bool get_AtEnd ()  cil managed 
     {
-        // Method begins at RVA 0x19778
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1a2b4
+	// Code size 23 (0x17)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_prefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlNamespace::get_Prefix
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method ExpandProperties::get_AtEnd
 
-    // method line 1304
-    .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+    // method line 1339
+    .method public virtual hidebysig 
+           instance default void InitializeFilter ()  cil managed 
     {
-        // Method begins at RVA 0x19793
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1a2d7
+	// Code size 24 (0x18)
 	.maxstack 8
 	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_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 1305
-    .method public hidebysig specialname 
-           instance default string get_Uri ()  cil managed 
+    // method line 1340
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0x197a0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1a2f0
+	// Code size 36 (0x24)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0,
+		int32	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_uri
+	IL_0002:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Peek()
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
+	IL_000e:  brtrue IL_001b
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlNamespace::get_Uri
+	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 1306
-    .method public hidebysig specialname 
-           instance default void set_Uri (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x197bb
-	// 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_0008:  ret 
-    } // end of method XmlNamespace::set_Uri
+	IL_0022:  ldloc.1 
+	IL_0023:  ret 
+    } // end of method ExpandProperties::Read
 
-    // method line 1307
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 1341
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0x197c8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1a320
+	// Code size 41 (0x29)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
+	IL_0007:  brfalse IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlNamespace::get_IfDefined
+	IL_000c:  nop 
+	IL_000d:  ldc.i4.m1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0027
 
-    // method line 1308
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x197e3
-	// 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_0008:  ret 
-    } // end of method XmlNamespace::set_IfDefined
+	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 1309
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method ExpandProperties::Peek
+
+    // method line 1342
+    .method private hidebysig 
+           instance default void Advance ()  cil managed 
     {
-        // Method begins at RVA 0x197f0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x1a358
+	// Code size 73 (0x49)
+	.maxstack 3
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
+	IL_0007:  brfalse IL_001d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlNamespace::get_UnlessDefined
+	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
 
-    // method line 1310
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+	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 1343
+    .method private hidebysig 
+           instance default void ReplenishBuffer ()  cil managed 
     {
-        // Method begins at RVA 0x1980b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x1a3b0
+	// Code size 273 (0x111)
+	.maxstack 5
+	.locals init (
+		bool	V_0,
+		int32	V_1,
+		string	V_2,
+		int32	V_3,
+		int32	V_4,
+		string	V_5)
 	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
-
-	.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_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0031
 
-		.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_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
 
-		.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_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
 
-		.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_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
 
-		.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_0046:  ldloc.0 
+	IL_0047:  brtrue IL_0008
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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 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 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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
 
-		.get instance default bool NAnt.Core.Types.XmlNamespace::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.XmlNamespace::set_UnlessDefined (bool 'value') 
+	.property instance bool AtEnd ()
+	{
+		.get instance default bool NAnt.Core.Filters.ExpandProperties::get_AtEnd () 
 	}
-  } // end of class NAnt.Core.Types.XmlNamespace
+  } // end of class NAnt.Core.Filters.ExpandProperties
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit EnvironmentVariable
-  	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 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
+    .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                                           ) // ..
 
-    // method line 1311
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19815
-	// 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
+    .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 1312
+    // method line 1344
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x19833
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1a4cd
+	// Code size 32 (0x20)
 	.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
+	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
 
-    // method line 1313
+    // method line 1345
     .method public hidebysig specialname 
-           instance default string get_VariableName ()  cil managed 
+           instance default string get_From ()  cil managed 
     {
-        // Method begins at RVA 0x19844
+        // Method begins at RVA 0x1a4f0
 	// 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_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 EnvironmentVariable::get_VariableName
+    } // end of method ReplaceString::get_From
 
-    // method line 1314
+    // method line 1346
     .method public hidebysig specialname 
-           instance default void set_VariableName (string 'value')  cil managed 
+           instance default void set_From (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1985f
+        // Method begins at RVA 0x1a50b
 	// 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_0003:  stfld string NAnt.Core.Filters.ReplaceString::_from
 	IL_0008:  ret 
-    } // end of method EnvironmentVariable::set_VariableName
+    } // end of method ReplaceString::set_From
 
-    // method line 1315
+    // method line 1347
     .method public hidebysig specialname 
-           instance default string get_LiteralValue ()  cil managed 
+           instance default string get_To ()  cil managed 
     {
-        // Method begins at RVA 0x1986c
+        // Method begins at RVA 0x1a518
 	// 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_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 EnvironmentVariable::get_LiteralValue
+    } // end of method ReplaceString::get_To
 
-    // method line 1316
+    // method line 1348
     .method public hidebysig specialname 
-           instance default void set_LiteralValue (string 'value')  cil managed 
+           instance default void set_To (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x19887
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x1a533
+	// 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::_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
+	IL_0003:  stfld string NAnt.Core.Filters.ReplaceString::_to
+	IL_0008:  ret 
+    } // end of method ReplaceString::set_To
 
-    // method line 1317
+    // method line 1349
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default bool get_IgnoreCase ()  cil managed 
     {
-        // Method begins at RVA 0x19898
+        // Method begins at RVA 0x1a540
 	// 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.Core.Types.EnvironmentVariable::_file
+	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_File
+    } // end of method ReplaceString::get_IgnoreCase
 
-    // method line 1318
+    // method line 1350
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_IgnoreCase (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x198b3
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1a55b
+	// Code size 9 (0x9)
 	.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 line 1319
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
-    {
-        // Method begins at RVA 0x198cc
-	// 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
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_Directory
+	IL_0003:  stfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	IL_0008:  ret 
+    } // end of method ReplaceString::set_IgnoreCase
 
-    // method line 1320
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 1351
+    .method public virtual hidebysig 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
     {
-        // Method begins at RVA 0x198e7
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1a565
+	// Code size 27 (0x1b)
 	.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
+	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 1321
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
+    // method line 1352
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0x19900
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1a584
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		int32	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
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_Path
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ReplaceString::Read
 
-    // method line 1322
-    .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 1353
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0x1991b
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1a5a5
+	// Code size 17 (0x11)
 	.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
+	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 1323
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
+    // method line 1354
+    .method private hidebysig 
+           instance default bool FindString (int32 startChar, [out] bool& streamEnded, [out] string& nonMatchingChars)  cil managed 
     {
-        // Method begins at RVA 0x19934
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1a5b8
+	// Code size 164 (0xa4)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		int32	V_1,
+		int32	V_2,
+		bool	V_3)
 	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
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_PathSet
+	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
 
-    // method line 1324
-    .method public hidebysig specialname 
-           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1994f
-	// Code size 50 (0x32)
-	.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_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_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_0069:  nop 
+	IL_006a:  ldloc.1 
+	IL_006b:  ldc.i4.m1 
+	IL_006c:  bne.un IL_0076
 
-    // method line 1325
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0x19984
-	// 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::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_Value
+	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
 
-    // method line 1326
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	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 1355
+    .method private hidebysig 
+           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate AcquireChar)  cil managed 
     {
-        // Method begins at RVA 0x199a0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1a668
+	// Code size 397 (0x18d)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		int32	V_0,
+		int32	V_1,
+		int32	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0007:  brtrue IL_001a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_IfDefined
+	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
 
-    // method line 1327
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x199bb
-	// 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_0008:  ret 
-    } // end of method EnvironmentVariable::set_IfDefined
+	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
 
-    // method line 1328
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	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 1356
+    .method private hidebysig 
+           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
     {
-        // Method begins at RVA 0x199c8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1a804
+	// 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.EnvironmentVariable::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	IL_0007:  brfalse IL_0023
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::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 1329
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x199e3
-	// 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::_unlessDefined
-	IL_0008:  ret 
-    } // end of method EnvironmentVariable::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 VariableName ()
+	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 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		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.Types.EnvironmentVariable::get_VariableName () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_VariableName (string 'value') 
+		.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 LiteralValue ()
+	.property instance string To ()
 	{
-		.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 02 74 6F 01 00 54 02 08 52 65 71 75 69 72   // ...to..T..Requir
+		65 64 00                                        ) // ed.
 
-		.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..
+		.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 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') 
+		.get instance default string NAnt.Core.Filters.ReplaceString::get_To () 
+		.set instance default void NAnt.Core.Filters.ReplaceString::set_To (string 'value') 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
+	.property instance bool IgnoreCase ()
 	{
-		.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 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.
 
-		.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..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.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') 
+		.get instance default bool NAnt.Core.Filters.ReplaceString::get_IgnoreCase () 
+		.set instance default void NAnt.Core.Filters.ReplaceString::set_IgnoreCase (bool '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..
+  .class nested private auto ansi sealed AcquireCharDelegate
+  	extends [mscorlib]System.MulticastDelegate
+  {
 
-		.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 ()
-	{
-		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_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 1357
+    .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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 1358
+    .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
 
-		.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..
+    // method line 1359
+    .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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 1360
+    .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
 
-		.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
+  } // end of class AcquireCharDelegate
+
+  } // end of class NAnt.Core.Filters.ReplaceString
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit EnvironmentSet
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit MathFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .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..
+    .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..
 
-    .field  private  class NAnt.Core.Types.OptionCollection _options
-    .field  private  class NAnt.Core.Types.EnvironmentVariableCollection _environmentVariables
 
-    // method line 1330
+    // method line 1361
     .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 0x199ed
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x1a875
+	// Code size 10 (0xa)
 	.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_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_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 MathFunctions::.ctor
 
-    // method line 1331
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
+    // method line 1362
+    .method public static hidebysig 
+           default float64 Round (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x19a0c
+        .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 0x1a880
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.OptionCollection	V_0)
+		float64	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
+	IL_0002:  call float64 class [mscorlib]System.Math::Round(float64)
 	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 MathFunctions::Round
 
-    // method line 1332
-    .method public hidebysig specialname 
-           instance default void set_Options (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
+    // method line 1363
+    .method public static hidebysig 
+           default float64 Floor (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x19a27
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1a89c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		float64	V_0)
 	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_0008:  ret 
-    } // end of method EnvironmentSet::set_Options
+	IL_0002:  call float64 class [mscorlib]System.Math::Floor(float64)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1333
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MathFunctions::Floor
+
+    // method line 1364
+    .method public static hidebysig 
+           default float64 Ceiling (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x19a34
+        .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 0x1a8b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
+		float64	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
+	IL_0002:  call float64 class [mscorlib]System.Math::Ceiling(float64)
 	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 MathFunctions::Ceiling
 
-    // method line 1334
-    .method public hidebysig specialname 
-           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
+    // method line 1365
+    .method public static hidebysig 
+           default float64 Abs (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x19a4f
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 03 61 62 73 00 00 ) // ...abs..
+
+        // Method begins at RVA 0x1a8d4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		float64	V_0)
 	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_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...
+	IL_0002:  call float64 class [mscorlib]System.Math::Abs(float64)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-		.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..
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MathFunctions::Abs
 
-		.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
+  } // end of class NAnt.Core.Functions.MathFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .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 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 1335
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1ad5d
-	// 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 1336
+    // method line 1366
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x1ad66
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1a8ef
+	// Code size 10 (0xa)
 	.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
+	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 of class NAnt.Core.Types.DirSet
-}
+    // method line 1367
+    .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..
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi serializable beforefieldinit Argument
-  	extends NAnt.Core.Element
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
+        // Method begins at RVA 0x1a8fc
+	// 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
 
-    .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
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalDays
 
-    // method line 1337
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1368
+    .method public static hidebysig 
+           default float64 GetTotalHours (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1ad70
-	// 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.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 1338
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1ad80
-	// 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 begins at RVA 0x1a918
+	// 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_TotalHours()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 1339
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1ad97
-	// 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
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalHours
 
-    // method line 1340
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 1369
+    .method public static hidebysig 
+           default float64 GetTotalMinutes (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1adae
-	// 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 11 67 65 74 2D 74 6F 74 61 6C 2D 6D 69 6E   // ...get-total-min
+		75 74 65 73 00 00                               ) // utes..
 
-    // method line 1341
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x1adc8
-	// Code size 170 (0xaa)
+        // Method begins at RVA 0x1a934
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		float64	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_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_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_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalMinutes
 
-	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 1370
+    .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_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
+        // Method begins at RVA 0x1a950
+	// 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
 
-	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_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalSeconds
 
-	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
+    // method line 1371
+    .method public static hidebysig 
+           default float64 GetTotalMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  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..
 
-	IL_0067:  ldarg.0 
-	IL_0068:  call instance string class NAnt.Core.Types.Argument::get_Value()
-	IL_006d:  brfalse IL_0084
+        // Method begins at RVA 0x1a96c
+	// 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_TotalMilliseconds()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	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_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalMilliseconds
 
-	IL_0084:  ldarg.0 
-	IL_0085:  call instance string class NAnt.Core.Types.Argument::get_Line()
-	IL_008a:  brfalse IL_009c
+    // method line 1372
+    .method public static hidebysig 
+           default int32 GetDays (valuetype [mscorlib]System.TimeSpan 'value')  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..
 
-	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
+        // Method begins at RVA 0x1a988
+	// 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.TimeSpan::get_Days()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_009c:  nop 
-	IL_009d:  ldsfld string [mscorlib]System.String::Empty
-	IL_00a2:  stloc.0 
-	IL_00a3:  br IL_00a8
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetDays
 
-	IL_00a8:  ldloc.0 
-	IL_00a9:  ret 
-    } // end of method Argument::ToString
+    // method line 1373
+    .method public static hidebysig 
+           default int32 GetHours (valuetype [mscorlib]System.TimeSpan 'value')  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 line 1342
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+        // Method begins at RVA 0x1a9a4
+	// 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.TimeSpan::get_Hours()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
+
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetHours
+
+    // method line 1374
+    .method public static hidebysig 
+           default int32 GetMinutes (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1ae80
-	// Code size 15 (0xf)
+        .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 0x1a9c0
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Argument::get_Value
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetMinutes
 
-    // method line 1343
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+    // method line 1375
+    .method public static hidebysig 
+           default int32 GetSeconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1ae9b
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1a9dc
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	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_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Seconds()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 1344
-    .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 TimeSpanFunctions::GetSeconds
+
+    // method line 1376
+    .method public static hidebysig 
+           default int32 GetMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1aea8
-	// Code size 15 (0xf)
+        .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 begins at RVA 0x1a9f8
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Argument::get_File
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetMilliseconds
 
-    // method line 1345
-    .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 1377
+    .method public static hidebysig 
+           default int64 GetTicks (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1aec3
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1aa14
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int64	V_0)
 	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
+	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 1346
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTicks
+
+    // method line 1378
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromDays (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1aed0
+        .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 0x1aa30
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		valuetype [mscorlib]System.TimeSpan	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 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 Argument::get_Directory
+    } // end of method TimeSpanFunctions::FromDays
 
-    // method line 1347
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 1379
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromHours (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1aeeb
-	// 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 0A 66 72 6F 6D 2D 68 6F 75 72 73 00 00 ) // ...from-hours..
 
-    // method line 1348
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
-    {
-        // Method begins at RVA 0x1aef8
+        // Method begins at RVA 0x1aa4c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		valuetype [mscorlib]System.TimeSpan	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 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 Argument::get_Path
+    } // end of method TimeSpanFunctions::FromHours
 
-    // method line 1349
-    .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 1380
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromMinutes (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1af13
-	// 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 0C 66 72 6F 6D 2D 6D 69 6E 75 74 65 73 00   // ...from-minutes.
+		00                                              ) // .
 
-    // method line 1350
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
-    {
-        // Method begins at RVA 0x1af3c
+        // Method begins at RVA 0x1aa68
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		valuetype [mscorlib]System.TimeSpan	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 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 Argument::get_PathSet
+    } // end of method TimeSpanFunctions::FromMinutes
 
-    // method line 1351
-    .method public hidebysig specialname 
-           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 1381
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromSeconds (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1af57
-	// 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_PathSet
+        .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 line 1352
-    .method public hidebysig specialname 
-           instance default string get_Line ()  cil managed 
-    {
-        // Method begins at RVA 0x1af80
+        // Method begins at RVA 0x1aa84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Argument::_line
+	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 Argument::get_Line
+    } // end of method TimeSpanFunctions::FromSeconds
 
-    // method line 1353
-    .method public hidebysig specialname 
-           instance default void set_Line (string 'value')  cil managed 
+    // method line 1382
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromMilliseconds (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1af9b
-	// Code size 9 (0x9)
-	.maxstack 8
-	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
+        .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 line 1354
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1afa8
+        // Method begins at RVA 0x1aaa0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Argument::_ifDefined
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMilliseconds(float64)
 	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 TimeSpanFunctions::FromMilliseconds
 
-    // method line 1355
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1383
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromTicks (int64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1afc3
-	// 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 0A 66 72 6F 6D 2D 74 69 63 6B 73 00 00 ) // ...from-ticks..
 
-    // method line 1356
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1afd0
+        // Method begins at RVA 0x1aabc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Argument::_unlessDefined
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromTicks(int64)
 	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 TimeSpanFunctions::FromTicks
 
-    // method line 1357
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+  } // 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..
+
+
+    // method line 1384
+    .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 0x1afeb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1aad7
+	// 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 TimeSpanConversionFunctions::.ctor
 
-    // method line 1358
-    .method assembly hidebysig specialname 
-           instance default string get_StringValue ()  cil managed 
+    // method line 1385
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x1aff8
-	// Code size 127 (0x7f)
+        .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 0x1aae4
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype [mscorlib]System.TimeSpan	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 valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::Parse(string)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_007d:  ldloc.0 
-	IL_007e:  ret 
-    } // end of method Argument::get_StringValue
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TimeSpanConversionFunctions::Parse
 
-    // method line 1359
-    .method private static hidebysig 
-           default string QuoteArgument (string argument)  cil managed 
+    // method line 1386
+    .method public static hidebysig 
+           default string ToString (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b084
-	// 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 0x1ab00
+	// Code size 22 (0x16)
+	.maxstack 1
 	.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:  constrained. [mscorlib]System.TimeSpan
+	IL_0009:  callvirt instance string object::ToString()
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method TimeSpanConversionFunctions::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.TimeSpanConversionFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit PathElement
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit AssemblyNameFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .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..
+    .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..
 
-    .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 1360
+    // method line 1387
     .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 0x1b0f1
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1ab22
+	// Code size 10 (0xa)
 	.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:  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
 
-    // method line 1361
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    // method line 1388
+    .method public static hidebysig 
+           default string GetCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x1b100
+        .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 0x1ab30
 	// 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.PathElement::_file
+	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 PathElement::get_File
+    } // end of method AssemblyNameFunctions::GetCodeBase
 
-    // method line 1362
-    .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 1389
+    .method public static hidebysig 
+           default string GetEscapedCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x1b11b
-	// 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_0008:  ret 
-    } // end of method PathElement::set_File
+        .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 line 1363
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
-    {
-        // Method begins at RVA 0x1b128
+        // Method begins at RVA 0x1ab4c
 	// 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.PathElement::_directory
+	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 PathElement::get_Directory
+    } // end of method AssemblyNameFunctions::GetEscapedCodeBase
 
-    // method line 1364
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 1390
+    .method public static hidebysig 
+           default string GetFullName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x1b143
-	// 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_0008:  ret 
-    } // end of method PathElement::set_Directory
+        .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 line 1365
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
-    {
-        // Method begins at RVA 0x1b150
+        // Method begins at RVA 0x1ab68
 	// 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.PathElement::_path
+	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 PathElement::get_Path
+    } // end of method AssemblyNameFunctions::GetFullName
 
-    // method line 1366
-    .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 1391
+    .method public static hidebysig 
+           default string GetName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x1b16b
-	// 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_0008:  ret 
-    } // end of method PathElement::set_Path
+        .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 1367
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1b178
+        // Method begins at RVA 0x1ab84
 	// 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.PathElement::_ifDefined
+	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 PathElement::get_IfDefined
+    } // end of method AssemblyNameFunctions::GetName
 
-    // method line 1368
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1392
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x1b193
-	// 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_0008:  ret 
-    } // end of method PathElement::set_IfDefined
+        .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 1369
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1b1a0
+        // Method begins at RVA 0x1aba0
 	// 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.Types.PathElement::_unlessDefined
+	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 PathElement::get_UnlessDefined
+    } // end of method AssemblyNameFunctions::GetVersion
 
-    // method line 1370
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1393
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.AssemblyName GetAssemblyName (string assemblyFile)  cil managed 
     {
-        // Method begins at RVA 0x1b1bb
-	// 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::_unlessDefined
-	IL_0008:  ret 
-    } // end of method PathElement::set_UnlessDefined
+        .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 line 1371
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Parts ()  cil managed 
-    {
-        // Method begins at RVA 0x1b1c8
-	// Code size 129 (0x81)
+        // Method begins at RVA 0x1abbc
+	// Code size 26 (0x1a)
 	.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)
+		class [mscorlib]System.Reflection.AssemblyName	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_000c:  nop 
-	IL_000d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	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:  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_002c:  ldarg.0 
-	IL_002d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
-	IL_0032:  brfalse IL_0057
-
-	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_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_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_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 1372
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x1b258
-	// Code size 134 (0x86)
-	.maxstack 3
-	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_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_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_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_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_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_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
-
-	.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.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..
-
-		.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..
-
-		.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_0013:  br IL_0018
 
-		.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_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method AssemblyNameFunctions::GetAssemblyName
 
-		.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
+  } // end of class NAnt.Core.Functions.AssemblyNameFunctions
 }
 
-.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 PkgConfigFunctions
+  	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 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..
 
-    // method line 1373
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1b2ea
-	// 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 1374
+    // method line 1394
     .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 0x1b2f3
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1abe2
+	// 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 PkgConfigFunctions::.ctor
 
-    // method line 1375
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.Argument[] 'value')  cil managed 
+    // method line 1395
+    .method public hidebysig 
+           instance default string GetVariable (string package, string name)  cil managed 
     {
-        // Method begins at RVA 0x1b303
-	// 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 0C 67 65 74 2D 76 61 72 69 61 62 6C 65 00   // ...get-variable.
+		00                                              ) // .
 
-    // method line 1376
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Argument get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x1b314
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x1abf0
+	// Code size 94 (0x5e)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.Types.Argument	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.Types.Argument
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
+	IL_0008:  brtrue IL_0029
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ArgumentCollection::get_Item
+	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 1377
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Argument 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1b33a
-	// 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_005c:  ldloc.0 
+	IL_005d:  ret 
+    } // end of method PkgConfigFunctions::GetVariable
 
-    // method line 1378
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Argument get_Item (string 'value')  cil managed 
+    // method line 1396
+    .method public hidebysig 
+           instance default string GetLinkFlags (string package)  cil managed 
     {
-        // Method begins at RVA 0x1b34c
-	// Code size 111 (0x6f)
-	.maxstack 2
+        .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 0x1ac5c
+	// Code size 83 (0x53)
+	.maxstack 5
 	.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)
 	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:  ldarg.1 
+	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
+	IL_0008:  brtrue IL_0029
 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+	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_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetLinkFlags
 
-	  IL_004c:  leave IL_0065
+    // method line 1397
+    .method public hidebysig 
+           instance default string GetCompileFlags (string package)  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..
 
-	} // 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 0x1acbc
+	// Code size 83 (0x53)
+	.maxstack 5
+	.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_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_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_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method ArgumentCollection::get_Item
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetCompileFlags
 
-    // method line 1379
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 1398
+    .method public hidebysig 
+           instance default string GetModVersion (string package)  cil managed 
     {
-        // Method begins at RVA 0x1b3d8
-	// Code size 28 (0x1c)
-	.maxstack 2
+        .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 0x1ad1c
+	// Code size 83 (0x53)
+	.maxstack 5
 	.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_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_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_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method ArgumentCollection::ToString
-
-    // method line 1380
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Argument item)  cil managed 
-    {
-        // Method begins at RVA 0x1b400
-	// 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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ArgumentCollection::Add
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetModVersion
 
-    // method line 1381
+    // method line 1399
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Argument[] items)  cil managed 
+           instance default bool IsAtLeastVersion (string package, string version)  cil managed 
     {
-        // Method begins at RVA 0x1b424
-	// 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.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_0021:  ret 
-    } // end of method ArgumentCollection::AddRange
+        .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 line 1382
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.ArgumentCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x1b454
-	// Code size 41 (0x29)
-	.maxstack 3
+        // Method begins at RVA 0x1ad7c
+	// Code size 54 (0x36)
+	.maxstack 7
 	.locals init (
-		int32	V_0)
+		bool	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_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_0028:  ret 
-    } // end of method ArgumentCollection::AddRange
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method PkgConfigFunctions::IsAtLeastVersion
 
-    // method line 1383
+    // method line 1400
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Argument item)  cil managed 
+           instance default bool IsExactVersion (string package, string version)  cil managed 
     {
-        // Method begins at RVA 0x1b48c
-	// Code size 21 (0x15)
-	.maxstack 2
+        .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 begins at RVA 0x1adc0
+	// Code size 54 (0x36)
+	.maxstack 7
 	.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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ArgumentCollection::Contains
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method PkgConfigFunctions::IsExactVersion
 
-    // method line 1384
+    // method line 1401
     .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
+           instance default bool IsMaxVersion (string package, string version)  cil managed 
     {
-        // Method begins at RVA 0x1b4b0
-	// Code size 22 (0x16)
-	.maxstack 2
+        .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 begins at RVA 0x1ae04
+	// Code size 54 (0x36)
+	.maxstack 7
 	.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:  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_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method ArgumentCollection::Contains
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method PkgConfigFunctions::IsMaxVersion
 
-    // method line 1385
+    // method line 1402
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Argument[] 'array', int32 index)  cil managed 
+           instance default bool IsBetweenVersion (string package, string minVersion, string maxVersion)  cil managed 
     {
-        // Method begins at RVA 0x1b4d2
-	// 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 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 line 1386
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Argument item)  cil managed 
-    {
-        // Method begins at RVA 0x1b4e4
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x1ae48
+	// Code size 78 (0x4e)
+	.maxstack 7
 	.locals init (
-		int32	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 int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ArgumentCollection::IndexOf
+	IL_004c:  ldloc.0 
+	IL_004d:  ret 
+    } // end of method PkgConfigFunctions::IsBetweenVersion
 
-    // method line 1387
+    // method line 1403
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Argument item)  cil managed 
+           instance default bool Exists (string package)  cil managed 
     {
-        // Method begins at RVA 0x1b505
-	// 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 ArgumentCollection::Insert
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
 
-    // method line 1388
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.ArgumentEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x1b518
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1aea4
+	// Code size 43 (0x2b)
+	.maxstack 5
 	.locals init (
-		class NAnt.Core.Types.ArgumentEnumerator	V_0)
+		bool	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::GetEnumerator
+	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
 
-    // method line 1389
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Argument item)  cil managed 
-    {
-        // Method begins at RVA 0x1b533
-	// 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
+	IL_0029:  ldloc.0 
+	IL_002a:  ret 
+    } // end of method PkgConfigFunctions::Exists
 
-    // method line 1390
-    .method assembly hidebysig 
-           instance default void ToString (class [mscorlib]System.Text.StringBuilder sb)  cil managed 
+    // method line 1404
+    .method private hidebysig 
+           instance default bool RunPkgConfigBool (class NAnt.Core.Types.Argument[] args)  cil managed 
     {
-        // Method begins at RVA 0x1b544
-	// Code size 120 (0x78)
+        // Method begins at RVA 0x1aedc
+	// Code size 71 (0x47)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.Argument	V_0,
-		class NAnt.Core.Types.ArgumentEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class [mscorlib]System.IO.MemoryStream	V_0,
+		class NAnt.Core.Tasks.ExecTask	V_1,
+		bool	V_2)
 	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 
+	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_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_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_0021:  ldloc.0 
-	  IL_0022:  callvirt instance bool class NAnt.Core.Types.Argument::get_UnlessDefined()
-	  IL_0027:  brtrue IL_0052
+	} // 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_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_003b:  nop 
+	  IL_003c:  rethrow 
+	  IL_003e:  ldc.i4.0 
+	  IL_003f:  stloc.2 
+	  IL_0040:  leave IL_0045
 
-	  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
+	} // end handler 0
+	IL_0045:  ldloc.2 
+	IL_0046:  ret 
+    } // end of method PkgConfigFunctions::RunPkgConfigBool
 
-	  IL_005e:  leave IL_0077
+    // method line 1405
+    .method private hidebysig 
+           instance default string RunPkgConfigString (class NAnt.Core.Types.Argument[] args)  cil managed 
+    {
+        // Method begins at RVA 0x1af40
+	// 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
 
 	} // 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
+	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_0070:  ldloc.2 
-	  IL_0071:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0076:  endfinally 
+	  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_0077:  ret 
-    } // end of method ArgumentCollection::ToString
+	IL_0083:  ldloc.s 4
+	IL_0085:  ret 
+    } // end of method PkgConfigFunctions::RunPkgConfigString
 
-	.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 line 1406
+    .method private hidebysig 
+           instance default class NAnt.Core.Tasks.ExecTask GetTask (class [mscorlib]System.IO.Stream 'stream')  cil managed 
+    {
+        // Method begins at RVA 0x1afe4
+	// 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
+
+	IL_0051:  ldloc.2 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetTask
+
+  } // end of class NAnt.Core.Functions.PkgConfigFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit ArgumentEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+  .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 1391
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection arguments)  cil managed 
+
+    // method line 1407
+    .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 0x1b5d8
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
+        // Method begins at RVA 0x1b043
+	// 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.ArgumentEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method ArgumentEnumerator::.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 ConversionFunctions::.ctor
 
-    // method line 1392
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Argument get_Current ()  cil managed 
+    // method line 1408
+    .method public static hidebysig 
+           default int32 ToInt (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b5fc
-	// Code size 25 (0x19)
+        .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 0x1b050
+	// Code size 10 (0xa)
 	.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_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ArgumentEnumerator::get_Current
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToInt
 
-    // method line 1393
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 1409
+    .method public static hidebysig 
+           default float64 ToDouble (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b624
-	.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 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 0x1b068
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		float64	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_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToDouble
 
-    // method line 1394
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 1410
+    .method public static hidebysig 
+           default string ConvertToString (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b644
-	// Code size 20 (0x14)
+        .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 [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 0x1b080
+	// Code size 10 (0xa)
 	.maxstack 1
 	.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.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ArgumentEnumerator::MoveNext
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ConvertToString
 
-    // method line 1395
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 1411
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.DateTime ToDateTime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b664
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
+        .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 0x1b098
+	// 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 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_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToDateTime
 
-    // method line 1396
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 1412
+    .method public static hidebysig 
+           default bool ToBoolean (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b684
-	// 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 0A 74 6F 2D 62 6F 6F 6C 65 61 6E 00 00 ) // ...to-boolean..
 
-    // method line 1397
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1b692
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
+        .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 0x1b0b0
+	// Code size 10 (0xa)
+	.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.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_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	.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_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToBoolean
+
+  } // end of class NAnt.Core.Functions.ConversionFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit FileSet
-  	extends NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit DoubleConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+    .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  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 1398
+    // method line 1413
     .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 0x19a59
-	// Code size 48 (0x30)
+        // Method begins at RVA 0x1b0c6
+	// Code size 10 (0xa)
 	.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:  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 1399
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
+    // method line 1414
+    .method public static hidebysig 
+           default float64 Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x19a8a
-	// Code size 55 (0x37)
-	.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
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
 
-    // method line 1400
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
-    {
-        // Method begins at RVA 0x19ac4
+        // Method begins at RVA 0x1b0d4
 	// Code size 20 (0x14)
-	.maxstack 1
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		float64	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_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 FileSet::get_CaseSensitive
+    } // end of method DoubleConversionFunctions::Parse
 
-    // method line 1401
-    .method public hidebysig specialname 
-           instance default void set_CaseSensitive (bool 'value')  cil managed 
+    // method line 1415
+    .method public static hidebysig 
+           default string ToString (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x19ae4
-	// Code size 14 (0xe)
-	.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 0x1b0f4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		string	V_0)
 	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_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 1402
-    .method public hidebysig specialname 
-           instance default bool get_FailOnEmpty ()  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 VersionFunctions
+  	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 07 56 65 72 73 69   // ...version.Versi
+		6F 6E 00 00                                     ) // on..
+
+
+    // method line 1416
+    .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 0x1b115
+	// 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 VersionFunctions::.ctor
+
+    // method line 1417
+    .method public static hidebysig 
+           default int32 GetMajor (class [mscorlib]System.Version version)  cil managed 
     {
-        // Method begins at RVA 0x19af4
+        .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 0x1b120
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_failOnEmpty
+	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 FileSet::get_FailOnEmpty
+    } // end of method VersionFunctions::GetMajor
 
-    // method line 1403
-    .method public hidebysig specialname 
-           instance default void set_FailOnEmpty (bool 'value')  cil managed 
+    // method line 1418
+    .method public static hidebysig 
+           default int32 GetMinor (class [mscorlib]System.Version version)  cil managed 
     {
-        // Method begins at RVA 0x19b0f
-	// 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_0008:  ret 
-    } // end of method FileSet::set_FailOnEmpty
+        .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 line 1404
-    .method public hidebysig specialname 
-           instance default bool get_DefaultExcludes ()  cil managed 
-    {
-        // Method begins at RVA 0x19b1c
+        // Method begins at RVA 0x1b13c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	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 FileSet::get_DefaultExcludes
+    } // end of method VersionFunctions::GetMinor
 
-    // method line 1405
-    .method public hidebysig specialname 
-           instance default void set_DefaultExcludes (bool 'value')  cil managed 
+    // method line 1419
+    .method public static hidebysig 
+           default int32 GetBuild (class [mscorlib]System.Version version)  cil managed 
     {
-        // Method begins at RVA 0x19b37
-	// 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_0008:  ret 
-    } // end of method FileSet::set_DefaultExcludes
+        .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 line 1406
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x19b44
-	// Code size 127 (0x7f)
-	.maxstack 2
+        // Method begins at RVA 0x1b158
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		int32	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_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0013:  brfalse IL_004e
-
-	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_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_004e:  ldarg.0 
-	IL_004f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0054:  brfalse IL_0070
-
-	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
-
-	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_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Build()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_007d:  ldloc.0 
-	IL_007e:  ret 
-    } // end of method FileSet::get_BaseDirectory
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VersionFunctions::GetBuild
 
-    // method line 1407
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 1420
+    .method public static hidebysig 
+           default int32 GetRevision (class [mscorlib]System.Version version)  cil managed 
     {
-        // Method begins at RVA 0x19bcf
-	// 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
+        .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 line 1408
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
-    {
-        // Method begins at RVA 0x19bdc
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x1b174
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		int32	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_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Revision()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileSet::get_Includes
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VersionFunctions::GetRevision
 
-    // method line 1409
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
-    {
-        // Method begins at RVA 0x19bfc
-	// 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_Excludes()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+  } // end of class NAnt.Core.Functions.VersionFunctions
+}
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileSet::get_Excludes
+.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..
 
-    // method line 1410
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_AsIs ()  cil managed 
+
+    // method line 1421
+    .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 0x19c1c
+        // Method begins at RVA 0x1b18f
+	// 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 1422
+    .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..
+
+        // Method begins at RVA 0x1b19c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		class [mscorlib]System.Version	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:  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 FileSet::get_AsIs
+    } // end of method VersionConversionFunctions::Parse
 
-    // method line 1411
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.PathScanner get_PathFiles ()  cil managed 
+    // method line 1423
+    .method public static hidebysig 
+           default string ToString (class [mscorlib]System.Version 'value')  cil managed 
     {
-        // Method begins at RVA 0x19c38
+        .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 0x1b1b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.PathScanner	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	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 FileSet::get_PathFiles
+    } // end of method VersionConversionFunctions::ToString
 
-    // method line 1412
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
-    {
-        // Method begins at RVA 0x19c54
-	// Code size 39 (0x27)
-	.maxstack 1
-	.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
+  } // end of class NAnt.Core.Functions.VersionConversionFunctions
+}
 
-	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
+.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_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_FileNames
 
-    // method line 1413
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
+    // method line 1424
+    .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 0x19c88
-	// Code size 39 (0x27)
-	.maxstack 1
-	.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
-
-	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_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_DirectoryNames
+        // Method begins at RVA 0x1b1d3
+	// 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 1414
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
+    // method line 1425
+    .method public static hidebysig 
+           default int32 GetLength (string s)  cil managed 
     {
-        // Method begins at RVA 0x19cbc
-	// Code size 39 (0x27)
+        .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 0x1b1e0
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		int32	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 class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_ScannedDirectories()
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+	IL_0002:  callvirt instance int32 string::get_Length()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_ScannedDirectories
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringFunctions::GetLength
 
-    // method line 1415
-    .method public hidebysig specialname 
-           instance default void set_SetIncludes (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
+    // method line 1426
+    .method public static hidebysig 
+           default string Substring (string str, int32 startIndex, int32 length)  cil managed 
     {
-        // Method begins at RVA 0x19cef
-	// 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_IncludeElements(class NAnt.Core.Types.FileSet/Include[])
-	IL_0008:  ret 
-    } // end of method FileSet::set_SetIncludes
+        .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 line 1416
-    .method public hidebysig specialname 
-           instance default void set_IncludeElements (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19cfc
-	// Code size 239 (0xef)
-	.maxstack 4
+        // Method begins at RVA 0x1b1fc
+	// Code size 17 (0x11)
+	.maxstack 3
 	.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_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_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 1417
-    .method public hidebysig specialname 
-           instance default void set_SetExcludes (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19df7
-	// Code size 9 (0x9)
-	.maxstack 8
+		string	V_0)
 	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_0008:  ret 
-    } // end of method FileSet::set_SetExcludes
-
-    // method line 1418
-    .method public hidebysig specialname 
-           instance default void set_ExcludeElements (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19e04
-	// Code size 104 (0x68)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Types.FileSet/Exclude	V_0,
-		class NAnt.Core.Types.FileSet/Exclude[]	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_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_0003:  ldarg.2 
+	IL_0004:  callvirt instance string string::Substring(int32, int32)
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_0067:  ret 
-    } // end of method FileSet::set_ExcludeElements
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method StringFunctions::Substring
 
-    // method line 1419
-    .method public hidebysig specialname 
-           instance default void set_SetIncludesList (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
+    // method line 1427
+    .method public static hidebysig 
+           default bool StartsWith (string s1, string s2)  cil managed 
     {
-        // Method begins at RVA 0x19e78
-	// 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_0008:  ret 
-    } // end of method FileSet::set_SetIncludesList
+        .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 line 1420
-    .method public hidebysig specialname 
-           instance default void set_IncludesFiles (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x19e84
-	// Code size 422 (0x1a6)
-	.maxstack 4
+        // Method begins at RVA 0x1b21c
+	// Code size 26 (0x1a)
+	.maxstack 3
 	.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)
+		bool	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_019c
-
-	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_001b:  ldloc.0 
-	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
-	IL_0021:  brtrue IL_0197
-
-	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_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_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_0083:  leave IL_009f
-
-	} // 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_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_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:  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_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_0103:  leave IL_011f
-
-	} // 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
-
-	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_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_0179:  leave IL_0195
-
-	} // 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_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_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_01a5:  ret 
-    } // end of method FileSet::set_IncludesFiles
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method StringFunctions::StartsWith
 
-    // method line 1421
-    .method public hidebysig specialname 
-           instance default void set_ExcludesFiles (class NAnt.Core.Types.FileSet/ExcludesFile[] 'value')  cil managed 
+    // method line 1428
+    .method public static hidebysig 
+           default bool EndsWith (string s1, string s2)  cil managed 
     {
-        // Method begins at RVA 0x1a060
-	// 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_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_001b:  ldloc.0 
-	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
-	IL_0021:  brtrue IL_0094
-
-	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_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_0077:  leave IL_0093
-
-	} // 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_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_00a2:  ret 
-    } // end of method FileSet::set_ExcludesFiles
+        .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 line 1422
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_MostRecentLastWriteTimeFile ()  cil managed 
-    {
-        // Method begins at RVA 0x1a120
-	// Code size 210 (0xd2)
-	.maxstack 5
+        // Method begins at RVA 0x1b244
+	// Code size 26 (0x1a)
+	.maxstack 3
 	.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)
+		bool	V_0)
 	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_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_002a:  ldloc.3 
-	  IL_002b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_0030:  brfalse IL_0039
-
-	  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_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_0065:  ldloc.0 
-	  IL_0066:  brfalse IL_00a0
-
-	  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_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_00ac:  leave IL_00c7
-
-	} // 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_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_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_00cf:  ldloc.s 5
-	IL_00d1:  ret 
-    } // end of method FileSet::get_MostRecentLastWriteTimeFile
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method StringFunctions::EndsWith
 
-    // method line 1423
-    .method public virtual hidebysig newslot 
-           instance default object Clone ()  cil managed 
+    // method line 1429
+    .method public static hidebysig 
+           default string ToLower (string s)  cil managed 
     {
-        // Method begins at RVA 0x1a210
-	// Code size 23 (0x17)
+        .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 0x1b26c
+	// Code size 20 (0x14)
 	.maxstack 2
 	.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:  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_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FileSet::Clone
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method StringFunctions::ToLower
 
-    // method line 1424
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1430
+    .method public static hidebysig 
+           default string ToUpper (string s)  cil managed 
     {
-        // Method begins at RVA 0x1a234
-	// Code size 395 (0x18b)
+        .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 0x1b28c
+	// Code size 20 (0x14)
 	.maxstack 2
+	.locals init (
+		string	V_0)
 	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:  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:  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
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method StringFunctions::ToUpper
 
-    // method line 1425
-    .method public virtual hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 1431
+    .method public static hidebysig 
+           default string Replace (string str, string oldValue, string newValue)  cil managed 
     {
-        // Method begins at RVA 0x1a3cb
-	// 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
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 72 65 70 6C 61 63 65 00 00 ) // ...replace..
 
-    // method line 1426
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x1a3d8
-	// Code size 398 (0x18e)
+        // Method begins at RVA 0x1b2ac
+	// Code size 17 (0x11)
 	.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)
 	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_00f6:  ldloc.2 
-	  IL_00f7:  isinst [mscorlib]System.IDisposable
-	  IL_00fc:  dup 
-	  IL_00fd:  stloc.3 
-	  IL_00fe:  brfalse IL_0109
-
-	  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_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_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_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_018b:  ldloc.s 7
-	IL_018d:  ret 
-    } // end of method FileSet::ToString
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method StringFunctions::Replace
 
-    // method line 1427
-    .method public hidebysig 
-           instance default void AddPatternSet (class NAnt.Core.Types.PatternSet patternSet)  cil managed 
+    // method line 1432
+    .method public static hidebysig 
+           default bool Contains (string source, string '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..
-
-        // Method begins at RVA 0x1a590
-	// 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
+        .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 1428
-    .method public virtual hidebysig newslot 
-           instance default void Scan ()  cil managed 
-    {
-        // Method begins at RVA 0x1a5b8
-	// Code size 369 (0x171)
+        // Method begins at RVA 0x1b2cc
+	// Code size 33 (0x21)
 	.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)
+		bool	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_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_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
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method StringFunctions::Contains
 
-    // method line 1429
-    .method family hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.FileSet clone)  cil managed 
+    // method line 1433
+    .method public static hidebysig 
+           default int32 IndexOf (string source, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a760
-	// 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
+        .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 line 1430
-    .method assembly hidebysig 
-           instance default string Find (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x1a7f4
-	// Code size 133 (0x85)
+        // Method begins at RVA 0x1b2fc
+	// Code size 27 (0x1b)
 	.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)
+		int32	V_0)
 	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_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_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
+	IL_001a:  ret 
+    } // end of method StringFunctions::IndexOf
 
-    // method line 1431
-    .method famorassem hidebysig specialname 
-           instance default bool get_IsEverythingIncluded ()  cil managed 
+    // method line 1434
+    .method public static hidebysig 
+           default int32 LastIndexOf (string source, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a898
-	// Code size 39 (0x27)
-	.maxstack 1
+        .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 0x1b324
+	// Code size 27 (0x1b)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		int32	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_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_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_IsEverythingIncluded
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method StringFunctions::LastIndexOf
 
-    // method line 1432
+    // method line 1435
     .method public static hidebysig 
-           default string FindMoreRecentLastWriteTime (string fileName, valuetype [mscorlib]System.DateTime targetLastWriteTime)  cil managed 
+           default string PadLeft (string s, int32 totalWidth, string paddingChar)  cil managed 
     {
-        // Method begins at RVA 0x1a8cc
-	// Code size 30 (0x1e)
-	.maxstack 2
+        .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 0x1b34c
+	// Code size 23 (0x17)
+	.maxstack 4
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1)
+		string	V_0)
 	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_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_001c:  ldloc.1 
-	IL_001d:  ret 
-    } // end of method FileSet::FindMoreRecentLastWriteTime
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method StringFunctions::PadLeft
 
-    // method line 1433
+    // method line 1436
     .method public static hidebysig 
-           default string FindMoreRecentLastWriteTime (class [System]System.Collections.Specialized.StringCollection fileNames, valuetype [mscorlib]System.DateTime targetLastWriteTime)  cil managed 
+           default string PadRight (string s, int32 totalWidth, string paddingChar)  cil managed 
     {
-        // Method begins at RVA 0x1a8f8
-	// Code size 198 (0xc6)
-	.maxstack 5
+        .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 0x1b370
+	// Code size 23 (0x17)
+	.maxstack 4
 	.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)
+		string	V_0)
 	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 1434
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1a9dc
-	// 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                                              ) // .
+	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
 
-		.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
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method StringFunctions::PadRight
 
-    // method line 1435
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1437
+    .method public static hidebysig 
+           default string Trim (string s)  cil managed 
     {
-        // Method begins at RVA 0x1a9f2
-	// 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
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 04 74 72 69 6D 00 00 ) // ...trim..
 
-    // method line 1436
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_Pattern ()  cil managed 
-    {
-        // Method begins at RVA 0x1aa04
+        // Method begins at RVA 0x1b394
 	// 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_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 Exclude::get_Pattern
-
-    // method line 1437
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1aa1f
-	// Code size 9 (0x9)
-	.maxstack 8
-	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
+    } // end of method StringFunctions::Trim
 
     // method line 1438
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    .method public static hidebysig 
+           default string TrimStart (string s)  cil managed 
     {
-        // Method begins at RVA 0x1aa2c
+        .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 0x1b3b0
 	// 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/Exclude::_ifDefined
+	IL_0002:  callvirt instance string string::TrimStart()
 	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 StringFunctions::TrimStart
 
     // method line 1439
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    .method public static hidebysig 
+           default string TrimEnd (string s)  cil managed 
     {
-        // Method begins at RVA 0x1aa47
-	// 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
+        .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 line 1440
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1aa54
+        // Method begins at RVA 0x1b3cc
 	// 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/Exclude::_unlessDefined
+	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 Exclude::get_UnlessDefined
-
-    // method line 1441
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1aa6f
-	// 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 ()
-	{
-		.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 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.FileSet/Exclude::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/Exclude::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 ) // ....
+    } // end of method StringFunctions::TrimEnd
 
-		.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
+  } // end of class NAnt.Core.Functions.StringFunctions
+}
 
-  .class nested public auto ansi beforefieldinit Include
-  	extends NAnt.Core.Types.FileSet/Exclude
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit OperatingSystemFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  bool _asIs
-    .field  private  bool _fromPath
+    .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 1442
+
+    // method line 1440
     .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 0x1aa79
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1b3e7
+	// Code size 10 (0xa)
 	.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
+	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 1443
-    .method public hidebysig specialname 
-           instance default bool get_AsIs ()  cil managed 
+    // method line 1441
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.PlatformID GetPlatform (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
     {
-        // Method begins at RVA 0x1aa84
+        .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 0x1b3f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.PlatformID	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_asIs
+	IL_0002:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Include::get_AsIs
+    } // end of method OperatingSystemFunctions::GetPlatform
 
-    // method line 1444
-    .method public hidebysig specialname 
-           instance default void set_AsIs (bool 'value')  cil managed 
+    // method line 1442
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
     {
-        // Method begins at RVA 0x1aa9f
-	// 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
+        .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 1445
-    .method public hidebysig specialname 
-           instance default bool get_FromPath ()  cil managed 
-    {
-        // Method begins at RVA 0x1aaac
+        // Method begins at RVA 0x1b410
 	// 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.Types.FileSet/Include::_fromPath
+	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 Include::get_FromPath
+    } // end of method OperatingSystemFunctions::GetVersion
 
-    // method line 1446
-    .method public hidebysig specialname 
-           instance default void set_FromPath (bool 'value')  cil managed 
+    // method line 1443
+    .method public static hidebysig 
+           default string ToString (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
     {
-        // Method begins at RVA 0x1aac7
-	// 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_0008:  ret 
-    } // end of method Include::set_FromPath
+        .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 1447
-    .method public virtual hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
-    {
-        // Method begins at RVA 0x1aad4
+        // Method begins at RVA 0x1b42c
 	// 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_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 Include::get_Pattern
+    } // end of method OperatingSystemFunctions::ToString
 
-    // method line 1448
-    .method public virtual hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+  } // end of class NAnt.Core.Functions.OperatingSystemFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit DirectoryFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .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 1444
+    .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 0x1aaef
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1b447
+	// 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 DirectoryFunctions::.ctor
+
+    // method line 1445
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  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 0x1b454
+	// 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:  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
+	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
 
-    // method line 1449
-    .method public virtual hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	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_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method DirectoryFunctions::GetCreationTime
+
+    // method line 1446
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  cil managed 
     {
-        // Method begins at RVA 0x1aafc
-	// Code size 15 (0xf)
-	.maxstack 1
+        .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 0x1b4a0
+	// Code size 62 (0x3e)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	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
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Include::get_IfDefined
+	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
 
-    // method line 1450
-    .method public virtual hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method DirectoryFunctions::GetLastWriteTime
+
+    // method line 1447
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetLastAccessTime (string path)  cil managed 
     {
-        // Method begins at RVA 0x1ab17
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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..
+
+        // Method begins at RVA 0x1b4ec
+	// 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:  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_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
 
-    // method line 1451
-    .method public virtual hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	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_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method DirectoryFunctions::GetLastAccessTime
+
+    // method line 1448
+    .method public static hidebysig 
+           default string GetCurrentDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1ab24
-	// Code size 15 (0xf)
+        .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 0x1b538
+	// Code size 14 (0xe)
 	.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_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Include::get_UnlessDefined
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DirectoryFunctions::GetCurrentDirectory
 
-    // method line 1452
-    .method public virtual hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1449
+    .method public hidebysig 
+           instance default string GetParentDirectory (string path)  cil managed 
     {
-        // Method begins at RVA 0x1ab3f
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1b554
+	// Code size 56 (0x38)
+	.maxstack 2
+	.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:  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_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:  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
 
-	.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_0020:  ldloc.1 
+	IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0026:  br IL_0030
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_002b:  ldsfld string [mscorlib]System.String::Empty
+	IL_0030:  stloc.2 
+	IL_0031:  br IL_0036
 
-		.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_0036:  ldloc.2 
+	IL_0037:  ret 
+    } // end of method DirectoryFunctions::GetParentDirectory
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 1450
+    .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..
 
-		.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.
+        // Method begins at RVA 0x1b598
+	// 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
 
-		.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_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method DirectoryFunctions::GetDirectoryRoot
 
-		.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 1451
+    .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..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+        // Method begins at RVA 0x1b5c8
+	// 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
 
-		.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..
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method DirectoryFunctions::Exists
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 1452
+    .method public hidebysig 
+           instance default string GetName (string path)  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..
 
-		.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
+        // Method begins at RVA 0x1b5f0
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	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
 
-  .class nested public auto ansi beforefieldinit ExcludesFile
-  	extends NAnt.Core.Element
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DirectoryFunctions::GetName
+
+  } // end of class NAnt.Core.Functions.DirectoryFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit FileVersionInfoFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-    .field  private  class [mscorlib]System.IO.FileInfo _patternFile
+    .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 1453
     .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 0x1ab49
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1b610
+	// Code size 10 (0xa)
 	.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
+	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 1454
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Patterns ()  cil managed 
+    .method public hidebysig 
+           instance default class [System]System.Diagnostics.FileVersionInfo GetVersionInfo (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x1ab58
-	// Code size 191 (0xbf)
-	.maxstack 3
+        .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 0x1b61c
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.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)
+		class [System]System.Diagnostics.FileVersionInfo	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:  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_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
 
-	} // 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_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FileVersionInfoFunctions::GetVersionInfo
 
     // method line 1455
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    .method public static hidebysig 
+           default string GetCompanyName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
     {
-        // Method begins at RVA 0x1ac40
+        .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 0x1b644
 	// 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::_ifDefined
+	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 ExcludesFile::get_IfDefined
+    } // end of method FileVersionInfoFunctions::GetCompanyName
 
     // method line 1456
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetFileVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
     {
-        // Method begins at RVA 0x1ac5b
-	// 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
+        .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 line 1457
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1ac68
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1b660
+	// Code size 38 (0x26)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Version	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/ExcludesFile::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExcludesFile::get_UnlessDefined
+	IL_0024:  ldloc.0 
+	IL_0025:  ret 
+    } // end of method FileVersionInfoFunctions::GetFileVersion
 
-    // method line 1458
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1457
+    .method public static hidebysig 
+           default string GetProductName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
     {
-        // Method begins at RVA 0x1ac83
-	// 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
+        .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 line 1459
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PatternFile ()  cil managed 
-    {
-        // Method begins at RVA 0x1ac90
+        // Method begins at RVA 0x1b694
 	// 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:  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 ExcludesFile::get_PatternFile
+    } // end of method FileVersionInfoFunctions::GetProductName
 
-    // method line 1460
-    .method public hidebysig specialname 
-           instance default void set_PatternFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 1458
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetProductVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
     {
-        // Method begins at RVA 0x1acab
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1b6b0
+	// Code size 38 (0x26)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Version	V_0)
 	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_0008:  ret 
-    } // end of method ExcludesFile::set_PatternFile
-
-	.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..
-
-		.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') 
-	}
-	.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/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.
+	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
 
-		.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_0024:  ldloc.0 
+	IL_0025:  ret 
+    } // end of method FileVersionInfoFunctions::GetProductVersion
 
-		.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.Functions.FileVersionInfoFunctions
+}
 
-  .class nested public auto ansi beforefieldinit IncludesFile
-  	extends NAnt.Core.Types.FileSet/ExcludesFile
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit EnvironmentFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  bool _asIs
-    .field  private  bool _fromPath
+    .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 1461
+
+    // method line 1459
     .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 0x1acb5
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1b6e2
+	// Code size 10 (0xa)
 	.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:  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
 
-    // method line 1462
-    .method public hidebysig specialname 
-           instance default bool get_AsIs ()  cil managed 
+    // method line 1460
+    .method public static hidebysig 
+           default string GetFolderPath (valuetype [mscorlib]System.Environment/SpecialFolder folder)  cil managed 
     {
-        // Method begins at RVA 0x1acc0
+        .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..
+
+        // Method begins at RVA 0x1b6f0
 	// 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::_asIs
+	IL_0002:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IncludesFile::get_AsIs
+    } // end of method EnvironmentFunctions::GetFolderPath
 
-    // method line 1463
-    .method public hidebysig specialname 
-           instance default void set_AsIs (bool 'value')  cil managed 
+    // method line 1461
+    .method public static hidebysig 
+           default string GetMachineName ()  cil managed 
     {
-        // Method begins at RVA 0x1acdb
-	// 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
+        .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 line 1464
-    .method public hidebysig specialname 
-           instance default bool get_FromPath ()  cil managed 
-    {
-        // Method begins at RVA 0x1ace8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b70c
+	// Code size 14 (0xe)
 	.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_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call string class [mscorlib]System.Environment::get_MachineName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IncludesFile::get_FromPath
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetMachineName
 
-    // method line 1465
-    .method public hidebysig specialname 
-           instance default void set_FromPath (bool 'value')  cil managed 
+    // method line 1462
+    .method public static hidebysig 
+           default class [mscorlib]System.OperatingSystem GetOperatingSystem ()  cil managed 
     {
-        // Method begins at RVA 0x1ad03
-	// 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::_fromPath
-	IL_0008:  ret 
-    } // end of method IncludesFile::set_FromPath
+        .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 1466
-    .method public virtual hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1ad10
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b728
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.OperatingSystem	V_0)
 	IL_0000:  nop 
-	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_0001:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IncludesFile::get_IfDefined
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetOperatingSystem
 
-    // method line 1467
-    .method public virtual hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1463
+    .method public static hidebysig 
+           default string GetUserName ()  cil managed 
     {
-        // Method begins at RVA 0x1ad2b
-	// 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_0008:  ret 
-    } // end of method IncludesFile::set_IfDefined
+        .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 line 1468
-    .method public virtual hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1ad38
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b744
+	// Code size 14 (0xe)
 	.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/ExcludesFile::get_UnlessDefined()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call string class [mscorlib]System.Environment::get_UserName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IncludesFile::get_UnlessDefined
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetUserName
 
-    // method line 1469
-    .method public virtual hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1464
+    .method public static hidebysig 
+           default string GetVariable (string name)  cil managed 
     {
-        // Method begins at RVA 0x1ad53
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1b760
+	// Code size 54 (0x36)
+	.maxstack 3
+	.locals init (
+		string	V_0)
 	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_0008:  ret 
-    } // end of method IncludesFile::set_UnlessDefined
+	IL_0002:  call bool class NAnt.Core.Functions.EnvironmentFunctions::VariableExists(string)
+	IL_0007:  brtrue IL_0028
 
-	.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_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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method EnvironmentFunctions::GetVariable
 
-		.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 ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 72 6F 6D 70 61 74 68 00 00 ) // ...frompath..
+    // method line 1465
+    .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..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+        // Method begins at RVA 0x1b7a4
+	// 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
 
-		.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 bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method EnvironmentFunctions::VariableExists
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 1466
+    .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..
 
-		.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 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 0x1b7c8
+	// 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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetVersion
 
-		.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 IncludesFile
+    // method line 1467
+    .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..
 
-  } // end of class NAnt.Core.Types.FileSet
+        // Method begins at RVA 0x1b7e4
+	// 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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::NewLine
+
+  } // end of class NAnt.Core.Functions.EnvironmentFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit Pattern
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit Int32ConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  string _patternName
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .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 1470
+
+    // method line 1468
     .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 0x1b6a0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b7fe
+	// Code size 10 (0xa)
 	.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
+	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 1471
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, string patternName)  cil managed 
+    // method line 1469
+    .method public static hidebysig 
+           default int32 Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x1b6b0
-	// 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
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
 
-    // method line 1472
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_PatternName ()  cil managed 
-    {
-        // Method begins at RVA 0x1b6d0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1b80c
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		int32	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Pattern::get_PatternName
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method Int32ConversionFunctions::Parse
 
-    // method line 1473
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PatternName (string 'value')  cil managed 
+    // method line 1470
+    .method public static hidebysig 
+           default string ToString (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b6eb
-	// 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
+        .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 1474
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1b6f8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1b82c
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Pattern::get_IfDefined
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method Int32ConversionFunctions::ToString
 
-    // method line 1475
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+  } // end of class NAnt.Core.Functions.Int32ConversionFunctions
+}
+
+.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 1471
+    .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 0x1b713
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1b84d
+	// Code size 10 (0xa)
 	.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
+	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 1476
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 1472
+    .method public static hidebysig 
+           default bool Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x1b720
+        .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 0x1b858
 	// 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::_unlessDefined
+	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 Pattern::get_UnlessDefined
+    } // end of method BooleanConversionFunctions::Parse
 
-    // method line 1477
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1473
+    .method public static hidebysig 
+           default string ToString (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b73b
-	// 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
+        .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 1478
-    .method assembly hidebysig specialname 
-           instance default bool get_Enabled ()  cil managed 
-    {
-        // Method begins at RVA 0x1b748
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x1b874
+	// 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 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 ) // ....
-
-		.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_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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method BooleanConversionFunctions::ToString
 
-		.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 ()
-	{
-		.get instance default bool NAnt.Core.Types.Pattern::get_Enabled () 
-	}
-  } // end of class NAnt.Core.Types.Pattern
+  } // end of class NAnt.Core.Functions.BooleanConversionFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit Formatter
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit FrameworkFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .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.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..
 
-    .field  private  string _property
-    .field  private  string _pattern
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 1479
+    // method line 1474
     .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 0x1b774
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1b895
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	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
+	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
 
-    // method line 1480
-    .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+    // method line 1475
+    .method public hidebysig 
+           instance default bool Exists (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b784
-	// 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 0x1b8a0
+	// 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:  ldfld string NAnt.Core.Types.Formatter::_property
-	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.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Formatter::get_Property
+	IL_0019:  ldloc.0 
+	IL_001a:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
+	IL_001f:  br.s IL_0022
 
-    // method line 1481
-    .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+	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 1476
+    .method public hidebysig 
+           instance default bool SdkExists (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b79f
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1b8d8
+	// 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:  stfld string NAnt.Core.Types.Formatter::_property
-	IL_0008:  ret 
-    } // end of method Formatter::set_Property
+	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
 
-    // method line 1482
-    .method public hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
+	IL_001b:  ldloc.1 
+	IL_001c:  ret 
+    } // end of method FrameworkFunctions::SdkExists
+
+    // method line 1477
+    .method public hidebysig 
+           instance default string GetTargetFramework ()  cil managed 
     {
-        // Method begins at RVA 0x1b7ac
-	// Code size 15 (0xf)
+        .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 begins at RVA 0x1b904
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Formatter::_pattern
-	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.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Formatter::get_Pattern
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetTargetFramework
 
-    // method line 1483
-    .method public hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+    // method line 1478
+    .method public hidebysig 
+           instance default string GetRuntimeFramework ()  cil managed 
     {
-        // Method begins at RVA 0x1b7c7
-	// Code size 9 (0x9)
-	.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
+        .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 line 1484
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1b7d4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b92c
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Formatter::_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.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Formatter::get_IfDefined
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetRuntimeFramework
 
-    // method line 1485
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1479
+    .method public hidebysig 
+           instance default string GetFamily (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b7ef
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1b954
+	// 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:  stfld bool NAnt.Core.Types.Formatter::_ifDefined
-	IL_0008:  ret 
-    } // end of method Formatter::set_IfDefined
+	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
 
-    // method line 1486
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetFamily
+
+    // method line 1480
+    .method public hidebysig 
+           instance default class [mscorlib]System.Version GetVersion ()  cil managed 
     {
-        // Method begins at RVA 0x1b7fc
-	// Code size 15 (0xf)
+        .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 0x1b978
+	// 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:  ldfld bool NAnt.Core.Types.Formatter::_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.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Formatter::get_UnlessDefined
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetVersion
 
-    // method line 1487
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1481
+    .method public hidebysig 
+           instance default class [mscorlib]System.Version GetVersion (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b817
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1b9a0
+	// 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:  stfld bool NAnt.Core.Types.Formatter::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Formatter::set_UnlessDefined
-
-	.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.
-
-		.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.Formatter::get_Property () 
-		.set instance default void NAnt.Core.Types.Formatter::set_Property (string 'value') 
-	}
-	.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.
-
-		.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.Formatter::get_Pattern () 
-		.set instance default void NAnt.Core.Types.Formatter::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 ) // ....
-
-		.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 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.Formatter::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Formatter::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.Core.Types.Formatter
-}
-
-.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                                           ) // ..
+	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
 
-    .field  private  string _name
-    .field  private  string _namespaceUri
-    .field  private  string _value
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetVersion
 
-    // method line 1488
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1482
+    .method public hidebysig 
+           instance default string GetDescription ()  cil managed 
     {
-        // Method begins at RVA 0x1b821
-	// 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
+        .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..
 
-    // method line 1489
-    .method public hidebysig specialname 
-           instance default string get_ParameterName ()  cil managed 
-    {
-        // Method begins at RVA 0x1b854
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b9c4
+	// Code size 25 (0x19)
 	.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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_ParameterName
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetDescription
 
-    // method line 1490
-    .method public hidebysig specialname 
-           instance default void set_ParameterName (string 'value')  cil managed 
+    // method line 1483
+    .method public hidebysig 
+           instance default string GetDescription (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b86f
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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..
+
+        // Method begins at RVA 0x1b9ec
+	// 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:  stfld string NAnt.Core.Types.XsltParameter::_name
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_ParameterName
+	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
 
-    // method line 1491
-    .method public hidebysig specialname 
-           instance default string get_NamespaceUri ()  cil managed 
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetDescription
+
+    // method line 1484
+    .method public hidebysig 
+           instance default class [mscorlib]System.Version GetClrVersion ()  cil managed 
     {
-        // Method begins at RVA 0x1b87c
-	// Code size 15 (0xf)
+        .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 0x1ba10
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Version	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_namespaceUri
-	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.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_NamespaceUri
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetClrVersion
 
-    // method line 1492
-    .method public hidebysig specialname 
-           instance default void set_NamespaceUri (string 'value')  cil managed 
+    // method line 1485
+    .method public hidebysig 
+           instance default class [mscorlib]System.Version GetClrVersion (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b897
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1ba38
+	// 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:  stfld string NAnt.Core.Types.XsltParameter::_namespaceUri
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_NamespaceUri
+	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
 
-    // method line 1493
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetClrVersion
+
+    // method line 1486
+    .method public hidebysig 
+           instance default string GetFrameworkDirectory (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b8a4
-	// Code size 15 (0xf)
-	.maxstack 1
+        .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..
+
+        // Method begins at RVA 0x1ba5c
+	// Code size 28 (0x1c)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		string	V_1)
 	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
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_Value
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method FrameworkFunctions::GetFrameworkDirectory
 
-    // method line 1494
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+    // method line 1487
+    .method public hidebysig 
+           instance default string GetAssemblyDirectory (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b8bf
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1ba84
+	// 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:  stfld string NAnt.Core.Types.XsltParameter::_value
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_Value
+	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
 
-    // method line 1495
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method FrameworkFunctions::GetAssemblyDirectory
+
+    // method line 1488
+    .method public hidebysig 
+           instance default string GetSdkDirectory (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b8cc
-	// Code size 15 (0xf)
-	.maxstack 1
+        .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 0x1baac
+	// Code size 46 (0x2e)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1,
+		string	V_2)
 	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
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_IfDefined
+	IL_0016:  ldloc.1 
+	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001c:  br IL_0026
 
-    // method line 1496
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+	IL_0021:  ldsfld string [mscorlib]System.String::Empty
+	IL_0026:  stloc.2 
+	IL_0027:  br IL_002c
+
+	IL_002c:  ldloc.2 
+	IL_002d:  ret 
+    } // end of method FrameworkFunctions::GetSdkDirectory
+
+    // method line 1489
+    .method public hidebysig 
+           instance default string GetToolPath (string tool)  cil managed 
     {
-        // Method begins at RVA 0x1b8e7
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1bae8
+	// Code size 57 (0x39)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1)
 	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_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
 
-    // method line 1497
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	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 1490
+    .method public hidebysig 
+           instance default string GetRuntimeEngine (string framework)  cil managed 
     {
-        // Method begins at RVA 0x1b8f4
-	// Code size 15 (0xf)
-	.maxstack 1
+        .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 0x1bb30
+	// 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:  ldfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_UnlessDefined
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetRuntimeEngine
 
-    // method line 1498
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1491
+    .method public hidebysig 
+           instance default string GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
     {
-        // Method begins at RVA 0x1b90f
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 begins at RVA 0x1bb54
+	// 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:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_UnlessDefined
+	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
 
-	.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.
+	IL_0016:  ldsfld string [mscorlib]System.String::Empty
+	IL_001b:  stloc.1 
+	IL_001c:  br IL_006b
 
-		.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_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
 
-		.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                                              ) // .
+	IL_002e:  nop 
+	IL_002f:  ldloc.3 
+	IL_0030:  ldc.i4.0 
+	IL_0031:  ble IL_0042
 
-		.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.
+	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
 
-		.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..
+	IL_005f:  ldloc.2 
+	IL_0060:  callvirt instance string object::ToString()
+	IL_0065:  stloc.1 
+	IL_0066:  br IL_006b
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_006b:  ldloc.1 
+	IL_006c:  ret 
+    } // end of method FrameworkFunctions::GetFrameworks
 
-		.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..
+    // method line 1492
+    .method private hidebysig 
+           instance default class NAnt.Core.FrameworkInfo GetFramework (string framework)  cil managed 
+    {
+        // Method begins at RVA 0x1bbd0
+	// 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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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
 
-		.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
+	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.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit PathSet
-  	extends NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit FileFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+    .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..
 
-    .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 1499
+    // method line 1493
     .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 0x1b919
-	// Code size 30 (0x1e)
+        // Method begins at RVA 0x1bc4e
+	// Code size 10 (0xa)
 	.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
+	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 FileFunctions::.ctor
 
-    // method line 1500
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, string path)  cil managed 
+    // method line 1494
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  cil managed 
     {
-        // Method begins at RVA 0x1b938
-	// 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
+        .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 1501
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x1b96c
-	// Code size 115 (0x73)
+        // Method begins at RVA 0x1bc5c
+	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1,
-		class [mscorlib]System.Text.StringBuilder	V_2,
-		int32	V_3)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	IL_0000:  nop 
 	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_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.File::Exists(string)
+	IL_0014:  brtrue IL_0030
 
-	IL_0013:  nop 
-	IL_0014:  ldstr ""
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_0071
+	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.File::GetCreationTime(string)
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
 
-	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_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method FileFunctions::GetCreationTime
 
-	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
+    // method line 1495
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  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..
 
-	IL_0065:  ldloc.2 
-	IL_0066:  callvirt instance string object::ToString()
-	IL_006b:  stloc.1 
-	IL_006c:  br IL_0071
+        // Method begins at RVA 0x1bca8
+	// 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.File::Exists(string)
+	IL_0014:  brtrue IL_0030
 
-	IL_0071:  ldloc.1 
-	IL_0072:  ret 
-    } // end of method PathSet::ToString
+	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.File::GetLastWriteTime(string)
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
 
-    // method line 1502
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method FileFunctions::GetLastWriteTime
+
+    // method line 1496
     .method public hidebysig 
-           instance default void AddPath (class NAnt.Core.Types.PathSet path)  cil managed 
+           instance default valuetype [mscorlib]System.DateTime GetLastAccessTime (string path)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+        .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..
 
-        // Method begins at RVA 0x1b9eb
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x1bcf4
+	// 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:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	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.ArrayList::Add(object)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method PathSet::AddPath
+	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.File::Exists(string)
+	IL_0014:  brtrue IL_0030
 
-    // method line 1503
+	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.File::GetLastAccessTime(string)
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
+
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method FileFunctions::GetLastAccessTime
+
+    // method line 1497
     .method public hidebysig 
-           instance default void AddPathElement (class NAnt.Core.Types.PathElement pathElement)  cil managed 
+           instance default bool Exists (string file)  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..
+        .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 0x1b9fb
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x1bd40
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	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.ArrayList::Add(object)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method PathSet::AddPathElement
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-    // method line 1504
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FileFunctions::Exists
+
+    // method line 1498
     .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetElements ()  cil managed 
+           instance default bool UpToDate (string srcFile, string targetFile)  cil managed 
     {
-        // Method begins at RVA 0x1ba0c
-	// Code size 353 (0x161)
+        .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 0x1bd68
+	// Code size 75 (0x4b)
 	.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)
+		string	V_0,
+		string	V_1,
+		bool	V_2,
+		valuetype [mscorlib]System.DateTime	V_3,
+		string	V_4)
 	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_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:  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_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_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
-
-	    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_000f:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_001a:  stloc.1 
+	IL_001b:  ldloc.1 
+	IL_001c:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0021:  brtrue IL_002e
 
-	    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_0026:  nop 
+	IL_0027:  ldc.i4.0 
+	IL_0028:  stloc.2 
+	IL_0029:  br IL_0049
 
-	    IL_0077:  leave IL_0093
+	IL_002e:  ldloc.1 
+	IL_002f:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
+	IL_0034:  stloc.3 
+	IL_0035:  ldloc.0 
+	IL_0036:  ldloc.3 
+	IL_0037:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_003c:  stloc.s 4
+	IL_003e:  ldloc.s 4
+	IL_0040:  ldnull 
+	IL_0041:  ceq 
+	IL_0043:  stloc.2 
+	IL_0044:  br IL_0049
 
-	  } // 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_0049:  ldloc.2 
+	IL_004a:  ret 
+    } // end of method FileFunctions::UpToDate
 
-	    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
+    // method line 1499
+    .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..
 
-	  IL_0099:  ldloc.1 
-	  IL_009a:  isinst NAnt.Core.Types.PathElement
-	  IL_009f:  brfalse IL_012f
+        // Method begins at RVA 0x1bdc0
+	// Code size 33 (0x21)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0,
+		int64	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:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  callvirt instance int64 class [mscorlib]System.IO.FileInfo::get_Length()
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_001f
 
-	  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_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method FileFunctions::GetLength
 
-	  IL_00b9:  ldloc.s 6
-	  IL_00bb:  callvirt instance bool class NAnt.Core.Types.PathElement::get_UnlessDefined()
-	  IL_00c0:  brfalse IL_00cb
+    // method line 1500
+    .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..
 
-	  IL_00c5:  nop 
-	  IL_00c6:  leave IL_0130
+        // Method begins at RVA 0x1bdf0
+	// Code size 47 (0x2f)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	  IL_0008:  ldarg.1 
+	  IL_0009:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_000e:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
+	  IL_0013:  pop 
+	  IL_0014:  ldc.i4.1 
+	  IL_0015:  stloc.0 
+	  IL_0016:  leave IL_002d
 
-	  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
+	} // end .try 0
+	catch class [mscorlib]System.IO.FileLoadException { // 0
+	  IL_001b:  pop 
+	  IL_001c:  nop 
+	  IL_001d:  ldc.i4.0 
+	  IL_001e:  stloc.0 
+	  IL_001f:  leave IL_002d
 
-	    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
+	} // end handler 0
+	catch class [mscorlib]System.BadImageFormatException { // 1
+	  IL_0024:  pop 
+	  IL_0025:  nop 
+	  IL_0026:  ldc.i4.0 
+	  IL_0027:  stloc.0 
+	  IL_0028:  leave IL_002d
 
-	    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
+	} // end handler 1
+	IL_002d:  ldloc.0 
+	IL_002e:  ret 
+    } // end of method FileFunctions::IsAssembly
 
-	    IL_0112:  leave IL_012e
+  } // end of class NAnt.Core.Functions.FileFunctions
+}
 
-	  } // 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
+.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_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
+    // method line 1501
+    .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 0x1be48
+	// 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
 
-	} // 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
+    // method line 1502
+    .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_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
+        // Method begins at RVA 0x1be54
+	// 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_015e:  ldloc.s 11
-	IL_0160:  ret 
-    } // end of method PathSet::GetElements
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method NAntFunctions::GetBaseDirectory
 
-    // method line 1505
-    .method public static hidebysig 
-           default class [System]System.Collections.Specialized.StringCollection TranslatePath (class NAnt.Core.Project project, string source)  cil managed 
+    // method line 1503
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly GetAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x1bbc8
-	// Code size 388 (0x184)
-	.maxstack 7
+        .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 0x1be74
+	// Code size 50 (0x32)
+	.maxstack 2
 	.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)
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		class [mscorlib]System.Reflection.Assembly	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
 	IL_0006:  stloc.0 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0015
-
-	IL_000d:  nop 
-	IL_000e:  ldloc.0 
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0182
-
-	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_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_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_0058:  ldsfld bool NAnt.Core.Types.PathSet::_dosBasedFileSystem
-	IL_005d:  brfalse IL_00b3
-
-	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_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_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_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
 
-	IL_008b:  ldloc.s 5
-	IL_008d:  ldstr "/"
-	IL_0092:  callvirt instance bool string::StartsWith(string)
-	IL_0097:  brfalse IL_00b2
+	IL_0030:  ldloc.1 
+	IL_0031:  ret 
+    } // end of method NAntFunctions::GetAssembly
 
-	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
+    // method line 1504
+    .method public hidebysig 
+           instance default string ScanProbingPaths (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_00cd:  ldloc.s 6
-	IL_00cf:  ldstr "%"
-	IL_00d4:  callvirt instance bool string::EndsWith(string)
-	IL_00d9:  brfalse IL_00e4
+        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
 
-	IL_00de:  nop 
-	IL_00df:  br IL_016e
+        // Method begins at RVA 0x1beb4
+	// Code size 92 (0x5c)
+	.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_0036
 
-	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_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_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_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_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
+	IL_005a:  ldloc.3 
+	IL_005b:  ret 
+    } // end of method NAntFunctions::ScanProbingPaths
 
-	} // 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
+    // method line 1505
+    .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..
 
-	} // 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
+        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
 
-	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
+        // Method begins at RVA 0x1bf1c
+	// 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
 
-	IL_017b:  ldloc.0 
-	IL_017c:  stloc.1 
-	IL_017d:  br IL_0182
+	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_0182:  ldloc.1 
-	IL_0183:  ret 
-    } // end of method PathSet::TranslatePath
+	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
 
-    // method line 1506
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1bd68
-	// 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
+	IL_005b:  ldloc.3 
+	IL_005c:  ret 
+    } // end of method NAntFunctions::ScanProbingPaths
 
-  } // end of class NAnt.Core.Types.PathSet
+  } // end of class NAnt.Core.Functions.NAntFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit RawXml
-  	extends NAnt.Core.Element
+  .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                                              ) // .
 
-    // method line 1507
+
+    // method line 1506
     .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 0x1bd78
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1bf85
+	// 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 RawXml::.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 1508
-    .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_Xml ()  cil managed 
+    // method line 1507
+    .method public hidebysig 
+           instance default string GetName ()  cil managed 
     {
-        // Method begins at RVA 0x1bd80
-	// 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 0x1bf90
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0)
+		string	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_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 RawXml::get_Xml
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectFunctions::GetName
 
-    // method line 1509
-    .method family virtual hidebysig specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
+    // method line 1508
+    .method public hidebysig 
+           instance default string GetBuildFileUri ()  cil managed 
     {
-        // Method begins at RVA 0x1bd9c
-	// Code size 10 (0xa)
-	.maxstack 1
+        .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 begins at RVA 0x1bfb8
+	// Code size 59 (0x3b)
+	.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_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method RawXml::get_CustomXmlProcessing
+	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
 
-	.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
-}
+	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
 
-.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..
+	IL_002e:  ldsfld string [mscorlib]System.String::Empty
+	IL_0033:  stloc.0 
+	IL_0034:  br IL_0039
 
-    .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
+	IL_0039:  ldloc.0 
+	IL_003a:  ret 
+    } // end of method ProjectFunctions::GetBuildFileUri
 
-    // method line 1510
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1509
+    .method public hidebysig 
+           instance default string GetBuildFilePath ()  cil managed 
     {
-        // Method begins at RVA 0x1bdb2
-	// Code size 15 (0xf)
-	.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
+        .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 1511
-    .method public hidebysig specialname 
-           instance default string get_Host ()  cil managed 
-    {
-        // Method begins at RVA 0x1bdc4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1c000
+	// Code size 25 (0x19)
 	.maxstack 1
 	.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:  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 Proxy::get_Host
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectFunctions::GetBuildFilePath
 
-    // method line 1512
-    .method public hidebysig specialname 
-           instance default void set_Host (string 'value')  cil managed 
+    // method line 1510
+    .method public hidebysig 
+           instance default string GetDefaultTarget ()  cil managed 
     {
-        // Method begins at RVA 0x1bddf
-	// 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
+        .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 1513
-    .method public hidebysig specialname 
-           instance default int32 get_Port ()  cil managed 
-    {
-        // Method begins at RVA 0x1bdf0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1c028
+	// Code size 25 (0x19)
 	.maxstack 1
 	.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:  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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_Port
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectFunctions::GetDefaultTarget
 
-    // method line 1514
-    .method public hidebysig specialname 
-           instance default void set_Port (int32 'value')  cil managed 
+    // method line 1511
+    .method public hidebysig 
+           instance default string GetBaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1be0b
-	// Code size 9 (0x9)
-	.maxstack 8
-	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
+        .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 line 1515
-    .method public hidebysig specialname 
-           instance default bool get_BypassOnLocal ()  cil managed 
-    {
-        // Method begins at RVA 0x1be18
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1c050
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_BypassOnLocal
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectFunctions::GetBaseDirectory
 
-    // method line 1516
-    .method public hidebysig specialname 
-           instance default void set_BypassOnLocal (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1be33
-	// 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::_bypassOnLocal
-	IL_0008:  ret 
-    } // end of method Proxy::set_BypassOnLocal
+  } // end of class NAnt.Core.Functions.ProjectFunctions
+}
 
-    // method line 1517
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
-    {
-        // Method begins at RVA 0x1be40
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.Credential	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
+.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_Credentials
 
-    // method line 1518
-    .method public hidebysig specialname 
-           instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
+    // method line 1512
+    .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 0x1be5b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1c070
+	// Code size 10 (0xa)
 	.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
+	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
 
-    // method line 1519
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 1513
+    .method public hidebysig 
+           instance default bool Exists (string name)  cil managed 
     {
-        // Method begins at RVA 0x1be68
-	// 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 0x1c07c
+	// Code size 32 (0x20)
+	.maxstack 2
 	.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:  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
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_IfDefined
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method TargetFunctions::Exists
 
-    // method line 1520
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1514
+    .method public hidebysig 
+           instance default string GetCurrentTarget ()  cil managed 
     {
-        // Method begins at RVA 0x1be83
-	// 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 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 1521
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x1be90
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1c0a8
+	// Code size 45 (0x2d)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Target	V_0,
+		string	V_1)
 	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:  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 Proxy::get_UnlessDefined
+	IL_000e:  brtrue IL_001f
 
-    // method line 1522
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1beab
-	// 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::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Proxy::set_UnlessDefined
+	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
 
-    // method line 1523
+	IL_002b:  ldloc.1 
+	IL_002c:  ret 
+    } // end of method TargetFunctions::GetCurrentTarget
+
+    // method line 1515
     .method public hidebysig 
-           instance default class [System]System.Net.IWebProxy GetWebProxy ()  cil managed 
+           instance default bool HasExecuted (string name)  cil managed 
     {
-        // Method begins at RVA 0x1beb8
-	// Code size 105 (0x69)
-	.maxstack 2
+        .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 0x1c0e4
+	// Code size 67 (0x43)
+	.maxstack 3
 	.locals init (
-		class [System]System.Net.WebProxy	V_0,
-		class [System]System.Net.IWebProxy	V_1)
+		class NAnt.Core.Target	V_0,
+		bool	V_1)
 	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.
-
-		.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 ) // ....
+	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
 
-		.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.
+	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
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0041:  ldloc.1 
+	IL_0042:  ret 
+    } // end of method TargetFunctions::HasExecuted
 
-		.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.TargetFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit PatternSet
-  	extends NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit TaskFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .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..
+    .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..
 
-    .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 1524
+    // method line 1516
     .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 0x1bf2d
-	// Code size 52 (0x34)
+        // Method begins at RVA 0x1c133
+	// Code size 10 (0xa)
 	.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_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 1525
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_Include ()  cil managed 
+    // method line 1517
+    .method public hidebysig 
+           instance default bool Exists (string name)  cil managed 
     {
-        // Method begins at RVA 0x1bf64
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 PatternSet::get_Include
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
 
-    // method line 1526
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_IncludesFile ()  cil managed 
-    {
-        // Method begins at RVA 0x1bf80
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1c140
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_includesFile
-	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 PatternSet::get_IncludesFile
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TaskFunctions::Exists
 
-    // method line 1527
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_Exclude ()  cil managed 
+    // method line 1518
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly GetAssembly (string name)  cil managed 
     {
-        // Method begins at RVA 0x1bf9c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PatternSet::get_Exclude
+        .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 1528
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_ExcludesFile ()  cil managed 
-    {
-        // Method begins at RVA 0x1bfb8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1c160
+	// Code size 61 (0x3d)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Types.PatternCollection	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.Types.PatternCollection NAnt.Core.Types.PatternSet::_excludesFile
-	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 PatternSet::get_ExcludesFile
+	IL_000e:  brtrue IL_002f
 
-    // method line 1529
-    .method public hidebysig 
-           instance default void Append (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..
+	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
 
-        // Method begins at RVA 0x1bfd4
-	// 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_003b:  ldloc.1 
+	IL_003c:  ret 
+    } // end of method TaskFunctions::GetAssembly
 
-	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
+  } // end of class NAnt.Core.Functions.TaskFunctions
+}
 
-	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
+.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_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 1519
+    .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 0x1c1a9
+	// 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
 
-    // method line 1530
+    // method line 1520
     .method public hidebysig 
-           instance default string[] GetIncludePatterns ()  cil managed 
+           instance default bool Exists (string name)  cil managed 
     {
-        // Method begins at RVA 0x1c068
-	// Code size 301 (0x12d)
-	.maxstack 3
+        .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 0x1c1b4
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.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)
+		bool	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_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_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_012a:  ldloc.s 8
-	IL_012c:  ret 
-    } // end of method PatternSet::GetIncludePatterns
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method PropertyFunctions::Exists
 
-    // method line 1531
+    // method line 1521
     .method public hidebysig 
-           instance default string[] GetExcludePatterns ()  cil managed 
+           instance default bool IsReadOnly (string name)  cil managed 
     {
-        // Method begins at RVA 0x1c1c0
-	// Code size 301 (0x12d)
+        .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 0x1c1dc
+	// Code size 76 (0x4c)
 	.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)
+		bool	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_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_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_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_012a:  ldloc.s 8
-	IL_012c:  ret 
-    } // end of method PatternSet::GetExcludePatterns
+	IL_004a:  ldloc.0 
+	IL_004b:  ret 
+    } // end of method PropertyFunctions::IsReadOnly
 
-    // method line 1532
-    .method private hidebysig 
-           instance default void ReadPatterns (string fileName, class [mscorlib]System.Collections.ArrayList patterns)  cil managed 
+    // method line 1522
+    .method public hidebysig 
+           instance default bool IsDynamic (string name)  cil managed 
     {
-        // Method begins at RVA 0x1c318
-	// Code size 104 (0x68)
+        .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 0x1c234
+	// Code size 76 (0x4c)
 	.maxstack 3
 	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		string	V_1)
+		bool	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                                              ) // .
+	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
 
-		.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_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
 
-		.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_004a:  ldloc.0 
+	IL_004b:  ret 
+    } // end of method PropertyFunctions::IsDynamic
 
-		.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.PropertyFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit OptionCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit PlatformFunctions
+  	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 70 6C 61 74 66 6F 72 6D 04 4E 41 6E 74   // ...platform.NAnt
+		00 00                                           ) // ..
 
-    // method line 1533
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c39c
-	// 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 1534
+    // method line 1523
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x1c3a5
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1c28c
+	// 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.OptionCollection::AddRange(class NAnt.Core.Types.OptionCollection)
-	IL_000e:  ret 
-    } // end of method OptionCollection::.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 PlatformFunctions::.ctor
 
-    // method line 1535
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.Option[] 'value')  cil managed 
+    // method line 1524
+    .method public hidebysig 
+           instance default string GetName ()  cil managed 
     {
-        // Method begins at RVA 0x1c3b5
-	// 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
+        .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 1536
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Option get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x1c3c8
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x1c298
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Option	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.Types.Option
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	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
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method OptionCollection::get_Item
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PlatformFunctions::GetName
 
-    // method line 1537
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Option 'value')  cil managed 
+    // method line 1525
+    .method public static hidebysig 
+           default bool IsWin32 ()  cil managed 
     {
-        // Method begins at RVA 0x1c3ee
-	// Code size 15 (0xf)
-	.maxstack 8
+        .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 0x1c2b8
+	// Code size 14 (0xe)
+	.maxstack 1
+	.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:  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
+	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-    // method line 1538
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Option get_Item (string name)  cil managed 
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformFunctions::IsWin32
+
+    // method line 1526
+    .method public static hidebysig 
+           default bool IsWindows ()  cil managed 
     {
-        // Method begins at RVA 0x1c400
-	// Code size 111 (0x6f)
-	.maxstack 2
+        .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 0x1c2d4
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Option	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.Option	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
+	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformFunctions::IsWindows
 
-	  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
+    // method line 1527
+    .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_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+        // Method begins at RVA 0x1c2f0
+	// 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_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformFunctions::IsUnix
 
-	  IL_004c:  leave IL_0065
+  } // end of class NAnt.Core.Functions.PlatformFunctions
+}
 
-	} // 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
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit PathFunctions
+  	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..
 
-	  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 OptionCollection::get_Item
+    // method line 1528
+    .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 0x1c30a
+	// 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 PathFunctions::.ctor
 
-    // method line 1539
+    // method line 1529
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Option item)  cil managed 
+           instance default string GetFullPath (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c48c
+        .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 0x1c318
 	// 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.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_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 OptionCollection::Add
+    } // end of method PathFunctions::GetFullPath
 
-    // method line 1540
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Option[] items)  cil managed 
+    // method line 1530
+    .method public static hidebysig 
+           default string Combine (string path1, string path2)  cil managed 
     {
-        // Method begins at RVA 0x1c4b0
-	// 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.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_0021:  ret 
-    } // end of method OptionCollection::AddRange
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 63 6F 6D 62 69 6E 65 00 00 ) // ...combine..
 
-    // method line 1541
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.OptionCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x1c4e0
-	// Code size 41 (0x29)
-	.maxstack 3
+        // Method begins at RVA 0x1c33c
+	// Code size 16 (0x10)
+	.maxstack 2
 	.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_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
+	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_0028:  ret 
-    } // end of method OptionCollection::AddRange
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method PathFunctions::Combine
 
-    // method line 1542
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Option item)  cil managed 
+    // method line 1531
+    .method public static hidebysig 
+           default string ChangeExtension (string path, string extension)  cil managed 
     {
-        // Method begins at RVA 0x1c518
-	// Code size 21 (0x15)
+        .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 0x1c358
+	// Code size 16 (0x10)
 	.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.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:  ldarg.1 
+	IL_0003:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method OptionCollection::Contains
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method PathFunctions::ChangeExtension
 
-    // method line 1543
-    .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
+    // method line 1532
+    .method public static hidebysig 
+           default string GetDirectoryName (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c53c
+        .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 0x1c374
 	// Code size 22 (0x16)
-	.maxstack 2
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		string	V_1)
 	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_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.0 
+	IL_0014:  ldloc.1 
 	IL_0015:  ret 
-    } // end of method OptionCollection::Contains
+    } // end of method PathFunctions::GetDirectoryName
 
-    // method line 1544
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Option[] 'array', int32 index)  cil managed 
+    // method line 1533
+    .method public static hidebysig 
+           default string GetExtension (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c55e
-	// 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.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 1545
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Option item)  cil managed 
-    {
-        // Method begins at RVA 0x1c570
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x1c398
+	// 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:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method OptionCollection::IndexOf
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PathFunctions::GetExtension
 
-    // method line 1546
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Option item)  cil managed 
+    // method line 1534
+    .method public static hidebysig 
+           default string GetFileName (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c591
+        .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 begins at RVA 0x1c3b4
 	// Code size 15 (0xf)
-	.maxstack 8
+	.maxstack 1
+	.locals init (
+		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:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	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 OptionCollection::Insert
+    } // end of method PathFunctions::GetFileName
 
-    // method line 1547
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.OptionEnumerator GetEnumerator ()  cil managed 
+    // method line 1535
+    .method public static hidebysig 
+           default string GetFileNameWithoutExtension (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c5a4
+        .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 begins at RVA 0x1c3d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.OptionEnumerator	V_0)
+		string	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:  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 OptionCollection::GetEnumerator
+    } // end of method PathFunctions::GetFileNameWithoutExtension
 
-    // method line 1548
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Option item)  cil managed 
+    // method line 1536
+    .method public static hidebysig 
+           default string GetPathRoot (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c5bf
-	// 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 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 class NAnt.Core.Types.Option Item (string)
-	{
-		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionCollection::get_Item (string name) 
-	}
-  } // end of class NAnt.Core.Types.OptionCollection
-}
-
-.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
+        .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 line 1549
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x1c5d0
+        // Method begins at RVA 0x1c3ec
 	// 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
-
-    // method line 1550
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Option get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x1c5f4
-	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Option	V_0)
+		string	V_0,
+		string	V_1)
 	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
+	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_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method OptionEnumerator::get_Current
+	IL_0014:  ldloc.1 
+	IL_0015:  ret 
+    } // end of method PathFunctions::GetPathRoot
 
-    // method line 1551
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 1537
+    .method public static hidebysig 
+           default string GetTempFileName ()  cil managed 
     {
-        // Method begins at RVA 0x1c61c
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
+        .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 0x1c410
+	// Code size 14 (0xe)
 	.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.Types.OptionEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method OptionEnumerator::System.Collections.IEnumerator.get_Current
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PathFunctions::GetTempFileName
 
-    // method line 1552
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 1538
+    .method public static hidebysig 
+           default string GetTempPath ()  cil managed 
     {
-        // Method begins at RVA 0x1c63c
-	// Code size 20 (0x14)
+        .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 0x1c42c
+	// Code size 14 (0xe)
 	.maxstack 1
 	.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.OptionEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempPath()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method OptionEnumerator::MoveNext
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PathFunctions::GetTempPath
 
-    // method line 1553
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 1539
+    .method public static hidebysig 
+           default bool HasExtension (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c65c
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
+        .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 0x1c448
+	// 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.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_0002:  call bool class [mscorlib]System.IO.Path::HasExtension(string)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method OptionEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PathFunctions::HasExtension
 
-    // method line 1554
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 1540
+    .method public static hidebysig 
+           default bool IsPathRooted (string path)  cil managed 
     {
-        // Method begins at RVA 0x1c67c
-	// 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
+        .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 1555
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1c68a
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x1c464
+	// 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.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
+	IL_0002:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Types.OptionEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PathFunctions::IsPathRooted
+
+  } // end of class NAnt.Core.Functions.PathFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit RuntimeEngine
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit DnsFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  class [mscorlib]System.IO.FileInfo _program
-    .field  private  class NAnt.Core.Types.ArgumentCollection _arguments
+    .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 1556
+
+    // method line 1541
     .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 0x1c698
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x1c47f
+	// Code size 10 (0xa)
 	.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
+	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 1557
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Program ()  cil managed 
+    // method line 1542
+    .method public static hidebysig 
+           default string GetHostName ()  cil managed 
     {
-        // Method begins at RVA 0x1c6ac
-	// Code size 15 (0xf)
+        .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 0x1c48c
+	// Code size 14 (0xe)
 	.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.Configuration.RuntimeEngine::_program
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call string class [System]System.Net.Dns::GetHostName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RuntimeEngine::get_Program
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DnsFunctions::GetHostName
 
-    // method line 1558
-    .method public hidebysig specialname 
-           instance default void set_Program (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+  } // end of class NAnt.Core.Functions.DnsFunctions
+}
+
+.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 1543
+    .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 0x1c6c7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1c4a6
+	// Code size 10 (0xa)
 	.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_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
 
-    // method line 1559
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
+    // method line 1544
+    .method public static hidebysig 
+           default int64 Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x1c6d4
-	// Code size 15 (0xf)
-	.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 0x1c4b4
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.ArgumentCollection	V_0)
+		int64	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RuntimeEngine::get_Arguments
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method Int64ConversionFunctions::Parse
 
-    // method line 1560
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1545
+    .method public static hidebysig 
+           default string ToString (int64 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c6f0
-	// Code size 73 (0x49)
-	.maxstack 3
-	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
+        .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..
 
-	.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.
+        // Method begins at RVA 0x1c4d4
+	// 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 int64::ToString(class [mscorlib]System.IFormatProvider)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-		.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_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method Int64ConversionFunctions::ToString
 
-		.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.Int64ConversionFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit DirList
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit AssemblyFunctions
+  	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 08 61 73 73 65 6D 62 6C 79 08 41 73 73 65   // ...assembly.Asse
+		6D 62 6C 79 00 00                               ) // mbly..
 
-    // method line 1561
+
+    // method line 1546
     .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 0x1c745
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1c4f5
+	// 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 AssemblyFunctions::.ctor
 
-    // method line 1562
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    // method line 1547
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly LoadFromFile (string assemblyFile)  cil managed 
     {
-        // Method begins at RVA 0x1c750
-	// Code size 49 (0x31)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		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 0x1c500
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		class [mscorlib]System.Reflection.Assembly	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_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.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_002f:  ldloc.0 
-	IL_0030:  ret 
-    } // end of method DirList::get_Directory
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method AssemblyFunctions::LoadFromFile
 
-    // method line 1563
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 1548
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly Load (string assemblyString)  cil managed 
     {
-        // Method begins at RVA 0x1c78d
-	// 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 04 6C 6F 61 64 00 00 ) // ...load..
 
-    // method line 1564
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.DirectoryName[] get_DirectoryNames ()  cil managed 
-    {
-        // Method begins at RVA 0x1c798
+        // Method begins at RVA 0x1c528
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.DirectoryName[]	V_0)
+		class [mscorlib]System.Reflection.Assembly	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
+	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:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DirList::get_DirectoryNames
+    } // end of method AssemblyFunctions::Load
 
-    // method line 1565
-    .method public hidebysig specialname 
-           instance default void set_DirectoryNames (class NAnt.Core.Configuration.DirectoryName[] 'value')  cil managed 
+    // method line 1549
+    .method public static hidebysig 
+           default string GetFullName (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x1c7b3
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1c544
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	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_0002:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1566
-    .method public hidebysig 
-           instance default string[] GetDirectories ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyFunctions::GetFullName
+
+    // method line 1550
+    .method public static hidebysig 
+           default class [mscorlib]System.Reflection.AssemblyName GetName (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x1c7c0
-	// Code size 28 (0x1c)
+        .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 0x1c560
+	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
-		string	V_0,
-		string[]	V_1)
+		class [mscorlib]System.Reflection.AssemblyName	V_0)
 	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
-
-	IL_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method DirList::GetDirectories
-
-    // method line 1567
-    .method assembly hidebysig 
-           instance default string[] GetDirectories (string baseDir)  cil managed 
-    {
-        // Method begins at RVA 0x1c7e8
-	// 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_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_001d:  nop 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  newarr [mscorlib]System.String
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_0072
-
-	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_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
-
-	IL_006b:  ldloc.1 
-	IL_006c:  stloc.0 
-	IL_006d:  br IL_0072
-
-	IL_0072:  ldloc.0 
-	IL_0073:  ret 
-    } // end of method DirList::GetDirectories
-
-	.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.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..
-
-		.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_0002:  ldc.i4.0 
+	IL_0003:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-.namespace NAnt.Core.Configuration
-{
-  .class private auto ansi serializable beforefieldinit DirectoryName
-  	extends NAnt.Core.Configuration.ConditionalElement
-  {
-    .field  private  string _name
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method AssemblyFunctions::GetName
 
-    // method line 1568
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1551
+    .method public static hidebysig 
+           default string GetLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x1ca03
-	// Code size 7 (0x7)
-	.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
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 67 65 74 2D 6C 6F 63 61 74 69 6F 6E 00   // ...get-location.
+		00                                              ) // .
 
-    // method line 1569
-    .method public hidebysig specialname 
-           instance default string get_DirName ()  cil managed 
-    {
-        // Method begins at RVA 0x1ca0c
+        // Method begins at RVA 0x1c57c
 	// 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_0002:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DirectoryName::get_DirName
-
-    // method line 1570
-    .method public hidebysig specialname 
-           instance default void set_DirName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1ca27
-	// Code size 9 (0x9)
-	.maxstack 8
-	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.
+    } // end of method AssemblyFunctions::GetLocation
 
-		.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
+  } // end of class NAnt.Core.Functions.AssemblyFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit Runtime
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit DateTimeFunctions
+  	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 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 1571
+
+    // method line 1552
     .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 0x1ca31
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x1c597
+	// 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 DateTimeFunctions::.ctor
 
-    // method line 1572
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.DirList get_ProbingPaths ()  cil managed 
+    // method line 1553
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.DateTime Now ()  cil managed 
     {
-        // Method begins at RVA 0x1ca50
-	// Code size 15 (0xf)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 03 6E 6F 77 00 00 ) // ...now..
+
+        // Method begins at RVA 0x1c5a4
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.DirList	V_0)
+		valuetype [mscorlib]System.DateTime	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 valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Runtime::get_ProbingPaths
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DateTimeFunctions::Now
 
-    // method line 1573
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionModes get_Modes ()  cil managed 
+    // method line 1554
+    .method public static hidebysig 
+           default int32 GetYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1ca6c
-	// Code size 15 (0xf)
+        .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 0x1c5c0
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionModes	V_0)
+		int32	V_0)
 	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Runtime::get_Modes
+	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
 
-	.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_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetYear
 
-		.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..
+    // method line 1555
+    .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..
 
-		.get instance default class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::get_Modes () 
-	}
-  } // end of class NAnt.Core.Configuration.Runtime
-}
+        // Method begins at RVA 0x1c5dc
+	// 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
 
-.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
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetMonth
 
-    // method line 1574
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1556
+    .method public static hidebysig 
+           default int32 GetDay (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1ca87
-	// 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
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 67 65 74 2D 64 61 79 00 00 ) // ...get-day..
 
-    // method line 1575
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.RuntimeEngine get_Engine ()  cil managed 
-    {
-        // Method begins at RVA 0x1ca9c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1c5f8
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.RuntimeEngine	V_0)
+		int32	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedExecutionMode::get_Engine
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDay
 
-    // method line 1576
-    .method public hidebysig specialname 
-           instance default void set_Engine (class NAnt.Core.Configuration.RuntimeEngine 'value')  cil managed 
+    // method line 1557
+    .method public static hidebysig 
+           default int32 GetHour (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1cab7
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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..
+
+        // Method begins at RVA 0x1c614
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
 	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
+	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
 
-    // method line 1577
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentSet get_Environment ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetHour
+
+    // method line 1558
+    .method public static hidebysig 
+           default int32 GetMinute (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1cac4
-	// Code size 15 (0xf)
+        .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 0x1c630
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentSet	V_0)
+		int32	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
+	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
 
-	.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_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetMinute
 
-		.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..
+    // method line 1559
+    .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..
 
-		.get instance default class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::get_Environment () 
-	}
-  } // end of class NAnt.Core.Configuration.ManagedExecutionMode
-}
+        // Method begins at RVA 0x1c64c
+	// 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
 
-.namespace NAnt.Core.Configuration
-{
-  .class private auto ansi serializable beforefieldinit ConditionalElement
-  	extends NAnt.Core.Element
-  {
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetSecond
 
-    // method line 1578
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1560
+    .method public static hidebysig 
+           default int32 GetMillisecond (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1c868
-	// 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
+        .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 line 1579
-    .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 0x1c878
-	// Code size 25 (0x19)
-	.maxstack 4
+        // Method begins at RVA 0x1c668
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator	V_0)
+		int32	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_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Millisecond()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 1580
-    .method family hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetMillisecond
+
+    // method line 1561
+    .method public static hidebysig 
+           default int64 GetTicks (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1c8a0
-	// Code size 15 (0xf)
+        .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 0x1c684
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int64	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConditionalElement::get_IfDefined
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetTicks
 
-    // method line 1581
-    .method family hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 1562
+    .method public static hidebysig 
+           default int32 GetDayOfWeek (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1c8bb
-	// Code size 9 (0x9)
-	.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 77 65   // ...get-day-of-we
+		65 6B 00 00                                     ) // ek..
+
+        // Method begins at RVA 0x1c6a0
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
 	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
+	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
 
-    // method line 1582
-    .method family hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDayOfWeek
+
+    // method line 1563
+    .method public static hidebysig 
+           default int32 GetDayOfYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x1c8c8
-	// Code size 15 (0xf)
+        .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 0x1c6bc
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConditionalElement::get_UnlessDefined
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDayOfYear
 
-    // method line 1583
-    .method family hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 1564
+    .method public static hidebysig 
+           default int32 GetDaysInMonth (int32 year, int32 month)  cil managed 
     {
-        // Method begins at RVA 0x1c8e3
-	// Code size 9 (0x9)
-	.maxstack 8
+        .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 0x1c6d8
+	// Code size 16 (0x10)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
 	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_0003:  call int32 valuetype [mscorlib]System.DateTime::DaysInMonth(int32, int32)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 1584
-    .method assembly hidebysig specialname 
-           instance default bool get_Enabled ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDaysInMonth
+
+    // method line 1565
+    .method public static hidebysig 
+           default bool IsLeapYear (int32 year)  cil managed 
     {
-        // Method begins at RVA 0x1c8f0
-	// Code size 32 (0x20)
-	.maxstack 2
+        .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 begins at RVA 0x1c6f4
+	// 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.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_0017:  ldc.i4.0 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
-
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method ConditionalElement::get_Enabled
+	IL_0002:  call bool valuetype [mscorlib]System.DateTime::IsLeapYear(int32)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DateTimeFunctions::IsLeapYear
 
-		.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..
+  } // end of class NAnt.Core.Functions.DateTimeFunctions
+}
 
-		.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
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit DateTimeConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private initonly  bool _enabled
+    .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 1585
+
+    // method line 1566
     .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 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x1c91c
-	// 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)
+        // Method begins at RVA 0x1c70f
+	// Code size 10 (0xa)
+	.maxstack 8
 	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_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_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
+    // method line 1567
+    .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_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 0x1c71c
+	// 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_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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DateTimeConversionFunctions::Parse
 
-    // method line 1586
-    .method family virtual hidebysig 
-           instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 1568
+    .method public static hidebysig 
+           default string ToString (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c9bc
-	// Code size 34 (0x22)
+        .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 0x1c73c
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	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_000c:  ldc.i4.1 
+	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_0020
-
-	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
+	IL_000e:  br IL_0013
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method ConditionalConfigurator::InitializeAttribute
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DateTimeConversionFunctions::ToString
 
-    // method line 1587
-    .method family virtual hidebysig 
-           instance default void InitializeOrderedChildElements ()  cil managed 
+    // method line 1569
+    .method public static hidebysig 
+           default string ToString (valuetype [mscorlib]System.DateTime 'value', string format)  cil managed 
     {
-        // Method begins at RVA 0x1c9ea
-	// Code size 24 (0x18)
-	.maxstack 8
-	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
+        .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_0011:  ldarg.0 
-	IL_0012:  call instance void class NAnt.Core.Element/AttributeConfigurator::InitializeOrderedChildElements()
-	IL_0017:  ret 
-    } // end of method ConditionalConfigurator::InitializeOrderedChildElements
+        // Method begins at RVA 0x1c760
+	// 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
 
-  } // end of class ConditionalConfigurator
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method DateTimeConversionFunctions::ToString
 
-  } // end of class NAnt.Core.Configuration.ConditionalElement
+  } // end of class NAnt.Core.Functions.DateTimeConversionFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Extensibility
 {
-  .class private auto ansi serializable beforefieldinit ManagedExecutionModes
-  	extends NAnt.Core.Element
+  .class private auto ansi beforefieldinit PluginBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
   {
-    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _autoMode
-    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _strictMode
+    .field  private initonly  class [mscorlib]System.Type _pluginType
 
-    // method line 1588
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1570
+    .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 0x1cadf
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1c782
+	// Code size 16 (0x10)
 	.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 1589
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Auto ()  cil managed 
-    {
-        // Method begins at RVA 0x1cae8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedExecutionModes::get_Auto
-
-    // method line 1590
-    .method public hidebysig specialname 
-           instance default void set_Auto (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1cb03
-	// 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
+	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 1591
+    // method line 1571
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Strict ()  cil managed 
+           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
     {
-        // Method begins at RVA 0x1cb10
+        // Method begins at RVA 0x1c794
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
+		class [mscorlib]System.Type	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_strictMode
+	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 ManagedExecutionModes::get_Strict
-
-    // method line 1592
-    .method public hidebysig specialname 
-           instance default void set_Strict (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1cb2b
-	// 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
+    } // end of method PluginBuilder::get_PluginType
 
-    // method line 1593
+    // method line 1572
     .method public hidebysig 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode GetExecutionMode (valuetype NAnt.Core.Types.ManagedExecution 'managed')  cil managed 
+           instance default class NAnt.Core.Extensibility.IPlugin CreatePlugin ()  cil managed 
     {
-        // Method begins at RVA 0x1cb38
-	// Code size 86 (0x56)
+        // Method begins at RVA 0x1c7b0
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
+		class NAnt.Core.Extensibility.IPlugin	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
+	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
 
-	.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_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method PluginBuilder::CreatePlugin
 
-		.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 ()
+	.property instance class [mscorlib]System.Type PluginType ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 73 74 72 69 63 74 00 00 ) // ...strict..
-
-		.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') 
+		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::get_PluginType () 
 	}
-  } // end of class NAnt.Core.Configuration.ManagedExecutionModes
-}
-
-.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.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 NAnt.Core.Level
+  } // end of class NAnt.Core.Extensibility.PluginBuilder
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Extensibility
 {
-  .class private auto ansi beforefieldinit LevelConverter
-  	extends [System]System.ComponentModel.EnumConverter
+  .class interface public auto ansi abstract IPluginConsumer
   {
 
-    // method line 1594
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1cb9a
-	// Code size 18 (0x12)
-	.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 1595
-    .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 1573
+    .method public virtual hidebysig newslot abstract 
+           instance default void ConsumePlugin (class NAnt.Core.Extensibility.IPlugin 'type')  cil managed 
     {
-        // Method begins at RVA 0x1cbb0
-	// 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 LevelConverter::ConvertFrom
+        // Method begins at RVA 0x0
+    } // end of method IPluginConsumer::ConsumePlugin
 
-  } // end of class NAnt.Core.LevelConverter
+  } // end of class NAnt.Core.Extensibility.IPluginConsumer
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Extensibility
 {
-  .class public auto ansi beforefieldinit BuildEventArgs
-  	extends [mscorlib]System.EventArgs
+  .class private auto ansi beforefieldinit ExtensionAssembly
+  	extends [mscorlib]System.Object
   {
-    .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
-
-    // method line 1596
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1cbee
-	// 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
-
-    // method line 1597
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x1cc02
-	// 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 1598
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Target target)  cil managed 
-    {
-        // Method begins at RVA 0x1cc1d
-	// Code size 38 (0x26)
-	.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:  stfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
-	IL_0025:  ret 
-    } // end of method BuildEventArgs::.ctor
+    .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 1599
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
+    // method line 1574
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x1cc44
-	// Code size 55 (0x37)
+        // Method begins at RVA 0x1c7d5
+	// Code size 15 (0xf)
 	.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
+	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 1600
+    // method line 1575
     .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
+           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
     {
-        // Method begins at RVA 0x1cc7c
+        // Method begins at RVA 0x1c7e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Reflection.Assembly	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.BuildEventArgs::_message
+	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 BuildEventArgs::get_Message
-
-    // method line 1601
-    .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1cc97
-	// 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
+    } // end of method ExtensionAssembly::get_Assembly
 
-    // method line 1602
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
+    // method line 1576
+    .method assembly hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationSection ()  cil managed 
     {
-        // Method begins at RVA 0x1cca4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1c804
+	// Code size 115 (0x73)
+	.maxstack 2
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		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:  ldfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Extensibility.ExtensionAssembly::_configurationInit
+	IL_0007:  brfalse IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_MessageLevel
+	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
 
-    // method line 1603
-    .method public hidebysig specialname 
-           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1ccbf
-	// 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
+	.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 1604
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Exception get_Exception ()  cil managed 
-    {
-        // Method begins at RVA 0x1cccc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Exception	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::_exception
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  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
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Exception
+	  } // 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
 
-    // method line 1605
-    .method public hidebysig specialname 
-           instance default void set_Exception (class [mscorlib]System.Exception 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1cce7
-	// 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 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 1606
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    // method line 1577
+    .method public static hidebysig 
+           default class NAnt.Core.Extensibility.ExtensionAssembly Create (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x1ccf4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1c8a0
+	// Code size 84 (0x54)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		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:  ldfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Project
+	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
 
-    // method line 1607
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Target get_Target ()  cil managed 
-    {
-        // Method begins at RVA 0x1cd10
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Target
+	IL_0052:  ldloc.2 
+	IL_0053:  ret 
+    } // end of method ExtensionAssembly::Create
 
-    // method line 1608
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Task get_Task ()  cil managed 
+    // method line 1578
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1cd2c
-	// 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
+        // Method begins at RVA 0x1c900
+	// 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 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 ()
+	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
 	{
-		.get instance default class NAnt.Core.Target NAnt.Core.BuildEventArgs::get_Target () 
+		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::get_Assembly () 
 	}
-	.property instance class NAnt.Core.Task Task ()
+	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationSection ()
 	{
-		.get instance default class NAnt.Core.Task NAnt.Core.BuildEventArgs::get_Task () 
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::get_ConfigurationSection () 
 	}
-  } // end of class NAnt.Core.BuildEventArgs
+  } // end of class NAnt.Core.Extensibility.ExtensionAssembly
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Extensibility
 {
-  .class public auto ansi sealed BuildEventHandler
-  	extends [mscorlib]System.MulticastDelegate
+  .class private auto ansi beforefieldinit PluginScanner
+  	extends [mscorlib]System.Object
   {
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _pluginBuilders
 
-    // method line 1609
+    // method line 1579
     .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 1610
-    .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 1611
-    .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 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method BuildEventHandler::BeginInvoke
+        // Method begins at RVA 0x1c90c
+	// 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 1612
-    .method public virtual hidebysig newslot 
-           instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+    // method line 1580
+    .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 0x0
-          // Disassembly of native methods is not supported
-    } // end of method BuildEventHandler::EndInvoke
-
-  } // end of class NAnt.Core.BuildEventHandler
-}
+        // Method begins at RVA 0x1c920
+	// 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
 
-.namespace NAnt.Core
-{
-  .class interface public auto ansi abstract IBuildListener
-  {
+	IL_000c:  ldc.i4.0 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0072
 
-    // method line 1613
-    .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
+	.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
 
-    // method line 1614
-    .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
+	  IL_002b:  nop 
+	  IL_002c:  ldc.i4.0 
+	  IL_002d:  stloc.0 
+	  IL_002e:  leave IL_0072
 
-    // method line 1615
-    .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_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
 
-    // method line 1616
-    .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
+	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 1617
-    .method public virtual hidebysig newslot abstract 
-           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1581
+    .method public hidebysig 
+           instance default void RegisterPlugins (class NAnt.Core.Extensibility.IPluginConsumer consumer)  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::TaskStarted
+        // Method begins at RVA 0x1c9b0
+	// 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
 
-    // method line 1618
-    .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
+	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
 
-    // method line 1619
-    .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
+	IL_0032:  nop 
+	IL_0033:  br IL_00d0
 
-  } // end of class NAnt.Core.IBuildListener
-}
+	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
 
-.namespace NAnt.Core
-{
-  .class interface public auto ansi abstract IBuildLogger
-  	implements NAnt.Core.IBuildListener  {
+	  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
 
-    // method line 1620
-    .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_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
 
-    // method line 1621
-    .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
+	  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
 
-    // method line 1622
-    .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
+	  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
 
-    // method line 1623
-    .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_00a9:  nop 
+	  IL_00aa:  ldloc.2 
+	  IL_00ab:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00b0:  brtrue IL_004a
 
-    // method line 1624
-    .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_00b5:  leave IL_00d0
 
-    // method line 1625
-    .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
+	} // 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
 
-    // method line 1626
-    .method public virtual hidebysig newslot abstract 
-           instance default void Flush ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::Flush
+	  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
 
-	.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
+  } // end of class NAnt.Core.Extensibility.PluginScanner
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Extensibility
 {
-  .class public auto ansi serializable beforefieldinit DefaultLogger
+  .class public auto ansi abstract beforefieldinit ExtensionBuilder
   	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
+  {
+    .field  private initonly  class NAnt.Core.Extensibility.ExtensionAssembly _extensionAssembly
 
-    // method line 1627
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1582
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly)  cil managed 
     {
-        // Method begins at RVA 0x1cd47
-	// Code size 30 (0x1e)
+        // Method begins at RVA 0x18fa9
+	// Code size 33 (0x21)
 	.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 1628
-    .method public virtual hidebysig newslot specialname 
-           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
-    {
-        // Method begins at RVA 0x1cd68
-	// 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_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0019
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DefaultLogger::get_Threshold
+	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
 
-    // method line 1629
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    // method line 1583
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x1cd83
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x18fcb
+	// Code size 14 (0xe)
 	.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
+	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 1630
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_EmacsMode ()  cil managed 
+    // method line 1584
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.Extensibility.ExtensionAssembly get_ExtensionAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x1cd90
+        // Method begins at RVA 0x18fdc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Extensibility.ExtensionAssembly	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.DefaultLogger::_emacsMode
+	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 DefaultLogger::get_EmacsMode
-
-    // method line 1631
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_EmacsMode (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1cdab
-	// 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
+    } // end of method ExtensionBuilder::get_ExtensionAssembly
 
-    // method line 1632
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    // method line 1585
+    .method famorassem hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
     {
-        // Method begins at RVA 0x1cdb8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x18ff8
+	// Code size 20 (0x14)
 	.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 1633
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1cdd3
-	// 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 1634
-    .method public virtual hidebysig newslot 
-           instance default void Flush ()  cil managed 
-    {
-        // Method begins at RVA 0x1cddd
-	// 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 1635
-    .method public virtual hidebysig newslot 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1cdf8
-	// Code size 23 (0x17)
-	.maxstack 8
+		class [mscorlib]System.Reflection.Assembly	V_0)
 	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 1636
-    .method public virtual hidebysig newslot 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1ce10
-	// 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_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_01fe:  nop 
-	IL_01ff:  nop 
-	IL_0200:  br IL_025d
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ExtensionBuilder::get_Assembly
 
-	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
+	.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
+}
 
-    // method line 1637
-    .method public virtual hidebysig newslot 
-           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1d0e0
-	// 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
+.namespace NAnt.Core.Extensibility
+{
+  .class interface public auto ansi abstract IPlugin
+  {
 
-	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
+  } // end of class NAnt.Core.Extensibility.IPlugin
+}
 
-	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
+.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.
 
-    // method line 1638
-    .method public virtual hidebysig newslot 
-           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1d16a
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::TargetFinished
+    .field  private  class [mscorlib]System.Type _type
 
-    // method line 1639
-    .method public virtual hidebysig newslot 
-           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1586
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Type 'type')  cil managed 
     {
-        // Method begins at RVA 0x1d16d
-	// Code size 2 (0x2)
+        // Method begins at RVA 0x1caa0
+	// Code size 39 (0x27)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::TaskStarted
+	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
 
-    // method line 1640
-    .method public virtual hidebysig newslot 
-           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1d170
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::TaskFinished
+	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 1641
-    .method public virtual hidebysig newslot 
-           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1587
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
     {
-        // Method begins at RVA 0x1d174
-	// Code size 131 (0x83)
-	.maxstack 3
+        // Method begins at RVA 0x1cac8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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 1642
-    .method family virtual hidebysig newslot 
-           instance default void Log (string message)  cil managed 
-    {
-        // Method begins at RVA 0x1d203
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::Log
-
-    // method line 1643
-    .method private hidebysig 
-           instance default void OutputMessage (valuetype NAnt.Core.Level messageLevel, string message, int32 indentationLength)  cil managed 
-    {
-        // Method begins at RVA 0x1d206
-	// Code size 16 (0x10)
-	.maxstack 8
+		class [mscorlib]System.Type	V_0)
 	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 1644
-    .method private hidebysig 
-           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1d218
-	// 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 1645
-    .method private hidebysig 
-           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e, int32 indentationLength)  cil managed 
-    {
-        // Method begins at RVA 0x1d258
-	// 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 1646
-    .method private static hidebysig 
-           default class NAnt.Core.BuildEventArgs CreateBuildEvent (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
-    {
-        // Method begins at RVA 0x1d384
-	// 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_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::_type
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001c:  ldloc.1 
-	IL_001d:  ret 
-    } // end of method DefaultLogger::CreateBuildEvent
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PluginConsumerAttribute::get_PluginType
 
-	.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 ()
+	.property instance class [mscorlib]System.Type PluginType ()
 	{
-		.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.Type NAnt.Core.Extensibility.PluginConsumerAttribute::get_PluginType () 
 	}
-  } // end of class NAnt.Core.DefaultLogger
+  } // end of class NAnt.Core.Extensibility.PluginConsumerAttribute
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Extensibility
 {
-  .class public auto ansi serializable beforefieldinit BuildReport
+  .class private auto ansi beforefieldinit FunctionArgument
   	extends [mscorlib]System.Object
   {
-    .field  public  int32 Errors
-    .field  public  int32 Warnings
-    .field  public initonly  valuetype [mscorlib]System.DateTime StartTime
+    .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 1647
+    // method line 1588
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype [mscorlib]System.DateTime startTime)  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 0x1d3ae
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x1cae3
+	// Code size 45 (0x2d)
 	.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_0009:  stfld string NAnt.Core.Extensibility.FunctionArgument::_name
 	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stfld int32 NAnt.Core.BuildReport::Errors
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
 	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 1648
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1d3cc
-	// 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 1649
-    .method public virtual hidebysig 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x1d3eb
-	// 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
+	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 1650
-    .method public virtual hidebysig 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1589
+    .method public hidebysig specialname 
+           instance default int32 get_Index ()  cil managed 
     {
-        // Method begins at RVA 0x1d404
-	// Code size 712 (0x2c8)
-	.maxstack 8
+        // Method begins at RVA 0x1cb14
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		int32	V_0)
 	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
+	IL_0002:  ldfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end handler 2
-	IL_02c7:  ret 
-    } // end of method MailLogger::BuildFinished
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FunctionArgument::get_Index
 
-    // method line 1651
-    .method family virtual hidebysig 
-           instance default void Log (string message)  cil managed 
+    // method line 1590
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x1d724
-	// Code size 25 (0x19)
-	.maxstack 8
+        // Method begins at RVA 0x1cb30
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	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
+	IL_0002:  ldfld string NAnt.Core.Extensibility.FunctionArgument::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1652
-    .method private hidebysig 
-           instance default string GetPropertyValue (class NAnt.Core.PropertyDictionary properties, string name, string defaultValue, bool required)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FunctionArgument::get_Name
+
+    // method line 1591
+    .method public hidebysig specialname 
+           instance default object get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x1d740
-	// Code size 76 (0x4c)
-	.maxstack 3
+        // Method begins at RVA 0x1cb4c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2)
+		object	V_0)
 	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_0001:  ldarg.0 
+	IL_0002:  ldfld object NAnt.Core.Extensibility.FunctionArgument::_value
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_004a:  ldloc.2 
-	IL_004b:  ret 
-    } // end of method MailLogger::GetPropertyValue
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FunctionArgument::get_Value
 
-    // method line 1653
-    .method private hidebysig 
-           instance default bool IsSSLEnabled (class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 1592
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_BeforeArgument ()  cil managed 
     {
-        // Method begins at RVA 0x1d798
-	// Code size 69 (0x45)
-	.maxstack 5
+        // Method begins at RVA 0x1cb68
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		bool	V_1)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
 	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_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_beforeArgument
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0043:  ldloc.1 
-	IL_0044:  ret 
-    } // end of method MailLogger::IsSSLEnabled
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FunctionArgument::get_BeforeArgument
 
-    // method line 1654
-    .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 line 1593
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_AfterArgument ()  cil managed 
     {
-        // Method begins at RVA 0x1d7fc
-	// Code size 184 (0xb8)
-	.maxstack 3
+        // Method begins at RVA 0x1cb84
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
 	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:  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_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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FunctionArgument::get_AfterArgument
 
-  } // end of class NAnt.Core.MailLogger
+	.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
 {
-  .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 1655
+    // method line 1594
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1d8d0
+        // Method begins at RVA 0x1cb9f
 	// 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 1656
+    // method line 1595
     .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 0x1d8d9
+        // Method begins at RVA 0x1cba8
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -58764,15 +56814,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 1657
+    // method line 1596
     .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 0x1d8e9
+        // Method begins at RVA 0x1cbb8
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -58780,37 +56830,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 1658
+    // method line 1597
     .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 0x1d8fc
+        // Method begins at RVA 0x1cbc8
 	// 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 1659
+    // method line 1598
     .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 0x1d922
+        // Method begins at RVA 0x1cbee
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -58820,13 +56870,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 1660
+    // method line 1599
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.TaskBuilder get_Item (string taskName)  cil managed 
+    {
+        // Method begins at RVA 0x1cc00
+	// 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 1600
     .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 0x1d934
+        // Method begins at RVA 0x1cc8c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -58841,13 +56960,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method BuildListenerCollection::Add
+    } // end of method TaskBuilderCollection::Add
 
-    // method line 1661
+    // method line 1601
     .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 0x1d958
+        // Method begins at RVA 0x1ccb0
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -58862,7 +56981,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 
@@ -58876,13 +56995,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method BuildListenerCollection::AddRange
+    } // end of method TaskBuilderCollection::AddRange
 
-    // method line 1662
+    // method line 1602
     .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 0x1d988
+        // Method begins at RVA 0x1cce0
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -58896,8 +57015,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 
@@ -58910,13 +57029,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method BuildListenerCollection::AddRange
+    } // end of method TaskBuilderCollection::AddRange
 
-    // method line 1663
+    // method line 1603
     .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 0x1d9c0
+        // Method begins at RVA 0x1cd18
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -58931,13 +57050,37 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method BuildListenerCollection::Contains
+    } // end of method TaskBuilderCollection::Contains
 
-    // method line 1664
+    // method line 1604
     .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 0x1cd3c
+	// 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 1605
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.TaskBuilder[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1d9e1
+        // Method begins at RVA 0x1cd5e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -58947,13 +57090,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 1665
+    // method line 1606
     .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 0x1d9f4
+        // Method begins at RVA 0x1cd70
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -58968,13 +57111,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method BuildListenerCollection::IndexOf
+    } // end of method TaskBuilderCollection::IndexOf
 
-    // method line 1666
+    // method line 1607
     .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 0x1da15
+        // Method begins at RVA 0x1cd91
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -58984,32 +57127,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 1667
+    // method line 1608
     .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 0x1da28
+        // Method begins at RVA 0x1cda4
 	// 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 1668
+    // method line 1609
     .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 0x1da43
+        // Method begins at RVA 0x1cdbf
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -59018,28 +57161,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 1669
+    // method line 1610
     .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 0x1da54
+        // Method begins at RVA 0x1cdd0
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -59052,36 +57199,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 1670
+    // method line 1611
     .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 0x1da78
+        // Method begins at RVA 0x1cdf4
 	// 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 1671
+    // method line 1612
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x1daa0
+        // Method begins at RVA 0x1ce1c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -59089,40 +57236,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 1672
+    // method line 1613
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x1dac0
+        // Method begins at RVA 0x1ce3c
 	// 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 1673
+    // method line 1614
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x1dae0
+        // Method begins at RVA 0x1ce5c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -59130,4057 +57277,946 @@
 		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 1674
+    // method line 1615
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1db00
+        // Method begins at RVA 0x1ce7c
 	// 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 1675
+    // method line 1616
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1db0e
+        // Method begins at RVA 0x1ce8a
 	.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 serializable beforefieldinit ValidationException
+  	extends NAnt.Core.BuildException
   {
-    .field  private initonly  class NAnt.Core.Task _task
-    .field  private initonly  valuetype NAnt.Core.Level _outputLevel
-    .field  private  string _message
 
-    // method line 1676
+    // method line 1617
     .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 0x1db1c
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x1d029
+	// Code size 8 (0x8)
 	.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 1677
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
-    {
-        // Method begins at RVA 0x1db40
-	// 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
+	IL_0001:  call instance void class NAnt.Core.BuildException::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ValidationException::.ctor
 
-    // method line 1678
-    .method public virtual hidebysig 
-           instance default void Write (char[] chars)  cil managed 
+    // method line 1618
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message)  cil managed 
     {
-        // Method begins at RVA 0x1db5a
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x1d032
+	// Code size 9 (0x9)
 	.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
+	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 1679
-    .method public virtual hidebysig 
-           instance default void Write (string 'value')  cil managed 
+    // method line 1619
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
     {
-        // Method begins at RVA 0x1db6f
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x1d03c
+	// Code size 10 (0xa)
 	.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
+	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 1680
-    .method public virtual hidebysig 
-           instance default void WriteLine ()  cil managed 
+    // method line 1620
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
     {
-        // Method begins at RVA 0x1db84
-	// Code size 13 (0xd)
+        // Method begins at RVA 0x1d047
+	// Code size 10 (0xa)
 	.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
+	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 1681
-    .method public virtual hidebysig 
-           instance default void WriteLine (string 'value')  cil managed 
+    // method line 1621
+    .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 0x1db92
-	// Code size 54 (0x36)
+        // Method begins at RVA 0x1d052
+	// Code size 11 (0xb)
 	.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 1682
-    .method public virtual hidebysig 
-           instance default void WriteLine (string line, object[] args)  cil managed 
-    {
-        // Method begins at RVA 0x1dbcc
-	// 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
+	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 1683
-    .method public virtual hidebysig 
-           instance default void Flush ()  cil managed 
+    // method line 1622
+    .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 0x1dc19
-	// Code size 54 (0x36)
+        // Method begins at RVA 0x1d05e
+	// Code size 10 (0xa)
 	.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_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
 
-	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
+  } // end of class NAnt.Core.ValidationException
+}
 
-    // method line 1684
-    .method public virtual hidebysig 
-           instance default void Close ()  cil managed 
+.namespace NAnt.Core
+{
+  .class public auto ansi abstract beforefieldinit FunctionSetBase
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class NAnt.Core.Project _project
+
+    // method line 1623
+    .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 0x1dc50
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1a840
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
 	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 1685
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
-    {
-        // Method begins at RVA 0x1dc60
-	// 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
+	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 1686
-    .method family hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_OutputLevel ()  cil managed 
+    // method line 1624
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x1dc9c
+        // Method begins at RVA 0x1a850
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.LogWriter::_outputLevel
+	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 LogWriter::get_OutputLevel
+    } // end of method FunctionSetBase::get_Project
 
-	.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 ()
+    // method line 1625
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1a86b
+	// 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.FunctionSetBase::_project
+	IL_0008:  ret 
+    } // end of method FunctionSetBase::set_Project
+
+	.property instance class NAnt.Core.Project Project ()
 	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.LogWriter::get_OutputLevel () 
+		.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.LogWriter
+  } // end of class NAnt.Core.FunctionSetBase
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi serializable beforefieldinit PropertyDictionary
-  	extends [mscorlib]System.Collections.DictionaryBase
+  .class private auto ansi beforefieldinit ProjectSettingsLoader
+  	extends [mscorlib]System.Object
   {
-    .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 ) // ....
-
+    .field  private  class NAnt.Core.Project _project
+    .field  private  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
+    .field  private static  bool ScannedTasks
 
-    // method line 1687
-    .method public hidebysig specialname rtspecialname 
+    // method line 1626
+    .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x1dcb7
-	// Code size 37 (0x25)
+        // Method begins at RVA 0x1d069
+	// Code size 58 (0x3a)
 	.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
+	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 1688
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_Item (string name)  cil managed 
+    // method line 1627
+    .method family hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x1dce0
-	// Code size 67 (0x43)
-	.maxstack 3
+        // Method begins at RVA 0x1d0a4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class NAnt.Core.Project	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 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
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1689
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Item (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1dd2f
-	// 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_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PropertyDictionary::set_Item
+    } // end of method ProjectSettingsLoader::get_Project
 
-    // method line 1690
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    // method line 1628
+    .method private hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
     {
-        // Method begins at RVA 0x1dd40
+        // Method begins at RVA 0x1d0c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.PropertyDictionary::_project
+	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 PropertyDictionary::get_Project
+    } // end of method ProjectSettingsLoader::get_NamespaceManager
 
-    // method line 1691
-    .method family virtual hidebysig 
-           instance default void OnClear ()  cil managed 
+    // method line 1629
+    .method public hidebysig 
+           instance default void ProcessSettings ()  cil managed 
     {
-        // Method begins at RVA 0x1dd5b
-	// Code size 24 (0x18)
-	.maxstack 8
+        // Method begins at RVA 0x1d0dc
+	// Code size 111 (0x6f)
+	.maxstack 5
 	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
+	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
 
-    // method line 1692
-    .method family virtual hidebysig 
-           instance default void OnSet (object key, object oldValue, object newValue)  cil managed 
-    {
-        // Method begins at RVA 0x1dd74
-	// 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_0011:  nop 
+	IL_0012:  br IL_006e
 
-	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
+	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 1693
-    .method family virtual hidebysig 
-           instance default void OnInsert (object key, object 'value')  cil managed 
+    // method line 1630
+    .method private hidebysig 
+           instance default void ProcessPlatform (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
     {
-        // Method begins at RVA 0x1ddc0
-	// Code size 54 (0x36)
-	.maxstack 3
+        // Method begins at RVA 0x1d158
+	// Code size 446 (0x1be)
+	.maxstack 4
 	.locals init (
-		string	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.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
+	IL_0002:  brtrue IL_0013
 
-    // method line 1694
-    .method family virtual hidebysig 
-           instance default void OnRemove (object key, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1de04
-	// 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_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_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 1695
-    .method family virtual hidebysig 
-           instance default void OnValidate (object key, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1de40
-	// 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 1696
-    .method public virtual hidebysig newslot 
-           instance default void AddReadOnly (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1de8a
-	// 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 1697
-    .method public virtual hidebysig newslot 
-           instance default void MarkDynamic (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1deb8
-	// 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_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:  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
+	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
 
-    // method line 1698
-    .method public virtual hidebysig newslot 
-           instance default void Add (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1df0d
-	// 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
+	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
 
-    // method line 1699
-    .method public virtual hidebysig newslot 
-           instance default bool IsReadOnlyProperty (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1df20
-	// 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_00e3:  ldc.i4 1000
+	IL_00e8:  br IL_00f2
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PropertyDictionary::IsReadOnlyProperty
+	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
 
-    // method line 1700
-    .method public virtual hidebysig newslot 
-           instance default bool IsDynamicProperty (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1df44
-	// 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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PropertyDictionary::IsDynamicProperty
+	IL_019c:  ldc.i4 1000
+	IL_01a1:  br IL_01ab
 
-    // method line 1701
-    .method public virtual hidebysig newslot 
-           instance default void Inherit (class NAnt.Core.PropertyDictionary source, class [System]System.Collections.Specialized.StringCollection excludes)  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 1631
+    .method private hidebysig 
+           instance default void ProcessFrameworks (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
     {
-        // Method begins at RVA 0x1df68
-	// Code size 221 (0xdd)
+        // Method begins at RVA 0x1d324
+	// Code size 153 (0x99)
 	.maxstack 3
 	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_1,
-		string	V_2,
+		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:  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_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	  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_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_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_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_009c:  ldarg.0 
-	  IL_009d:  ldloc.2 
-	  IL_009e:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	  IL_00a3:  brtrue IL_00b7
+	  IL_0049:  nop 
+	  IL_004a:  leave IL_0074
 
-	  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_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_00c3:  leave IL_00dc
+	  IL_007f:  leave IL_0098
 
 	} // 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_0084:  ldloc.1 
+	  IL_0085:  isinst [mscorlib]System.IDisposable
+	  IL_008a:  dup 
+	  IL_008b:  stloc.3 
+	  IL_008c:  brfalse IL_0097
 
-	  IL_00d5:  ldloc.3 
-	  IL_00d6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00db:  endfinally 
+	  IL_0091:  ldloc.3 
+	  IL_0092:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0097:  endfinally 
 	} // end handler 0
-	IL_00dc:  ret 
-    } // end of method PropertyDictionary::Inherit
-
-    // method line 1702
-    .method public hidebysig 
-           instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x1e064
-	// 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 1703
-    .method public hidebysig 
-           instance default bool Contains (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1e090
-	// 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 1704
-    .method public hidebysig 
-           instance default void Remove (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1e0b1
-	// 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 1705
-    .method assembly hidebysig 
-           instance default string GetPropertyValue (string propertyName)  cil managed 
-    {
-        // Method begins at RVA 0x1e0c0
-	// 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 1706
-    .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 0x1e0f0
-	// 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
+	IL_0098:  ret 
+    } // end of method ProjectSettingsLoader::ProcessFrameworks
 
-    // method line 1707
+    // method line 1632
     .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 
+           instance default void ProcessGlobalProperties (class [System.Xml]System.Xml.XmlNodeList propertyNodes)  cil managed 
     {
-        // Method begins at RVA 0x1e110
-	// Code size 611 (0x263)
-	.maxstack 4
+        // Method begins at RVA 0x1d3dc
+	// Code size 143 (0x8f)
+	.maxstack 3
 	.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)
+		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.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
-
+	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_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_0009:  br IL_0068
 
-	  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_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_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_0027:  nop 
+	  IL_0028:  leave IL_0068
 
-	  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_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_014b:  ldloc.1 
-	  IL_014c:  callvirt instance string object::ToString()
-	  IL_0151:  stloc.0 
-	  IL_0152:  leave IL_0261
+	  IL_0073:  leave IL_008e
 
 	} // 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
+	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_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 
+	  IL_0086:  ldloc.s 4
+	  IL_0088:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_008d:  endfinally 
 	} // end handler 0
-	IL_0261:  ldloc.0 
-	IL_0262:  ret 
-    } // end of method PropertyDictionary::EvaluateEmbeddedExpressions
+	IL_008e:  ret 
+    } // end of method ProjectSettingsLoader::ProcessGlobalProperties
 
-    // method line 1708
+    // method line 1633
     .method private hidebysig 
-           instance default void CheckDeprecation (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1e39c
-	// 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 1709
-    .method private static hidebysig 
-           default void ValidatePropertyName (string propertyName, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x1e700
-	// 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 1710
-    .method private static hidebysig 
-           default void ValidatePropertyValue (object 'value', class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x1e778
-	// 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 1711
-    .method assembly static hidebysig 
-           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
+           instance default class NAnt.Core.FrameworkInfo ConfigureRuntimeFramework ()  cil managed 
     {
-        // Method begins at RVA 0x1e7cc
-	// Code size 85 (0x55)
-	.maxstack 2
+        // Method begins at RVA 0x1d488
+	// Code size 346 (0x15a)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
+		class [mscorlib]System.Collections.ArrayList	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 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 1712
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1e82d
-	// 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 1713
-    .method public static hidebysig specialname 
-           default class NAnt.Core.TaskBuilderCollection get_TaskBuilders ()  cil managed 
-    {
-        // Method begins at RVA 0x1e838
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.TaskBuilderCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::_taskBuilders
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_TaskBuilders
-
-    // method line 1714
-    .method public static hidebysig specialname 
-           default class NAnt.Core.DataTypeBaseBuilderCollection get_DataTypeBuilders ()  cil managed 
-    {
-        // Method begins at RVA 0x1e854
-	// 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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_DataTypeBuilders
-
-    // method line 1715
-    .method public static hidebysig specialname 
-           default class NAnt.Core.Filters.FilterBuilderCollection get_FilterBuilders ()  cil managed 
-    {
-        // Method begins at RVA 0x1e870
-	// 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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_FilterBuilders
-
-    // method line 1716
-    .method assembly static hidebysig specialname 
-           default class NAnt.Core.Extensibility.PluginScanner get_PluginScanner ()  cil managed 
-    {
-        // Method begins at RVA 0x1e88c
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Extensibility.PluginScanner	V_0)
+		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:  ldsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_PluginScanner
+	IL_0007:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
+	IL_000c:  brfalse IL_001b
 
-    // method line 1717
-    .method public static hidebysig 
-           default bool ScanAssembly (string assemblyFile, class NAnt.Core.Task task)  cil managed 
-    {
-        // Method begins at RVA 0x1e8a8
-        .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_0011:  ldstr "mono"
+	IL_0016:  br IL_0020
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method TypeFactory::ScanAssembly
+	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
 
-    // method line 1718
-    .method public static hidebysig 
-           default bool ScanAssembly (class [mscorlib]System.Reflection.Assembly 'assembly', class NAnt.Core.Task task)  cil managed 
-    {
-        // Method begins at RVA 0x1e8cc
-        .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_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_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_0064:  leave IL_0089
 
-	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_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_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_007a:  nop 
+	  IL_007b:  leave IL_0089
 
-	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_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_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_0095:  leave IL_00b1
 
 	} // 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
+	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_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 
+	  IL_00a9:  ldloc.s 5
+	  IL_00ab:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b0:  endfinally 
 	} // 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
-
-    // method line 1719
-    .method public static hidebysig 
-           default void ScanDir (string path, class NAnt.Core.Task task, bool failOnError)  cil managed 
-    {
-        // Method begins at RVA 0x1eb1c
-        .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_000c:  nop 
-	IL_000d:  br IL_00ff
+	IL_00b1:  ldnull 
+	IL_00b2:  stloc.s 6
+	IL_00b4:  ldc.i4.0 
+	IL_00b5:  stloc.s 7
+	IL_00b7:  br IL_0118
 
-	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 
+	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_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
+	  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
 
-	  } // 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_00e4:  nop 
+	  IL_00e5:  leave IL_0125
 
-	  IL_00e4:  leave IL_00ff
+	  IL_00ea:  nop 
+	  IL_00eb:  leave IL_0111
 
 	} // 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_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
-
-    // method line 1720
-    .method assembly static hidebysig 
-           default void AddProject (class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x1ec44
-	// 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
-
-    // method line 1721
-    .method assembly static hidebysig 
-           default void AddProject (class NAnt.Core.Project project, bool scan)  cil managed 
-    {
-        // Method begins at RVA 0x1ec50
-	// 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_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_0017:  br IL_0107
-
-	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_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_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_00a2:  nop 
-	IL_00a3:  br IL_0107
-
-	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
-
-    // method line 1722
-    .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 0x1ed64
-	// 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_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_0062:  nop 
-	IL_0063:  br IL_00bc
-
-	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_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_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_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_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 1723
-    .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 0x1ee54
-	// Code size 149 (0x95)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.ObsoleteAttribute	V_0,
-		string	V_1)
-	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_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
-
-    // method line 1724
-    .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 0x1eef8
-	// 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_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_0115:  ldloc.s 7
-	IL_0117:  ret 
-    } // end of method TypeFactory::CreateTask
-
-    // method line 1725
-    .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 0x1f01c
-	// Code size 319 (0x13f)
-	.maxstack 7
-	.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)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
+	catch class [mscorlib]System.Object { // 1
+	  IL_00f0:  pop 
+	  IL_00f1:  nop 
+	  IL_00f2:  ldloc.s 6
+	  IL_00f4:  brtrue IL_010b
 
-	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_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_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_0108:  nop 
+	  IL_0109:  rethrow 
+	  IL_010b:  nop 
+	  IL_010c:  leave IL_0111
 
-	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
+	} // 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_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_0125:  ldloc.s 6
+	IL_0127:  brtrue IL_014e
 
-	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_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_013c:  ldloc.s 7
-	IL_013e:  ret 
-    } // end of method TypeFactory::CreateFilter
+	IL_0157:  ldloc.s 9
+	IL_0159:  ret 
+    } // end of method ProjectSettingsLoader::ConfigureRuntimeFramework
 
-    // method line 1726
-    .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 line 1634
+    .method private hidebysig 
+           instance default class NAnt.Core.FrameworkInfo ConfigureTargetFramework (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
     {
-        // Method begins at RVA 0x1f168
-	// Code size 280 (0x118)
+        // Method begins at RVA 0x1d60c
+	// Code size 170 (0xaa)
 	.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_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_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_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_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_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_0115:  ldloc.s 7
-	IL_0117:  ret 
-    } // end of method TypeFactory::CreateDataType
-
-    // method line 1727
-    .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 0x1f28c
-	// 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_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_00d1:  nop 
-	  IL_00d2:  ldc.i4.0 
-	  IL_00d3:  stloc.2 
-	  IL_00d4:  leave IL_00fc
-
-	} // 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
-
-    // method line 1728
-    .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 0x1f3a8
-	// 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_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_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_00cf:  nop 
-	  IL_00d0:  ldc.i4.0 
-	  IL_00d1:  stloc.2 
-	  IL_00d2:  leave IL_00fa
-
-	} // 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 1729
-    .method private static hidebysig 
-           default bool ScanTypeForFunctions (class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
-    {
-        // Method begins at RVA 0x1f4c0
-	// Code size 333 (0x14d)
-	.maxstack 7
-	.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)
-	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_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_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_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_0119:  ldc.i4.1 
-	  IL_011a:  stloc.1 
-	  IL_011b:  leave IL_014b
-
-	  IL_0120:  nop 
-	  IL_0121:  ldc.i4.0 
-	  IL_0122:  stloc.1 
-	  IL_0123:  leave IL_014b
-
-	} // 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 1730
-    .method private static hidebysig 
-           default void RegisterFunction (string key, class [mscorlib]System.Reflection.MethodInfo info)  cil managed 
-    {
-        // Method begins at RVA 0x1f638
-	// 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)
+		class NAnt.Core.FrameworkInfo	V_1,
+		class NAnt.Core.FrameworkInfo	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_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:  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_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_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_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
-
-    // method line 1731
-    .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 0x1f6bc
-	// 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_000e:  brfalse IL_0023
 
-	  IL_002d:  ldarg.1 
-	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	  IL_0033:  brtrue IL_00cb
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "auto"
+	IL_0019:  call bool string::op_Equality(string, string)
+	IL_001e:  brfalse IL_0035
 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  brfalse IL_00cb
+	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_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_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_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_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_00cb:  ldc.i4.0 
-	  IL_00cc:  stloc.2 
-	  IL_00cd:  leave IL_00f5
+	IL_00a1:  ldloc.2 
+	IL_00a2:  stloc.1 
+	IL_00a3:  br IL_00a8
 
-	} // 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_00a8:  ldloc.1 
+	IL_00a9:  ret 
+    } // end of method ProjectSettingsLoader::ConfigureTargetFramework
 
-    // method line 1732
+    // method line 1635
     .method private static hidebysig 
-           default string GetAssemblyLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x1f7d0
-	// 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
-
-	} // 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
-
-	} // end handler 0
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TypeFactory::GetAssemblyLocation
-
-    // method line 1733
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1f810
-	// 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
-
-	.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 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 1734
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1f863
-	// 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
-
-    // method line 1735
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.TaskBuilderCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1f86c
-	// 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
-
-    // method line 1736
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.TaskBuilder[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1f87c
-	// 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
-
-    // method line 1737
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x1f88c
-	// 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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method TaskBuilderCollection::get_Item
-
-    // method line 1738
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.TaskBuilder 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1f8b2
-	// 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
-
-    // method line 1739
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_Item (string taskName)  cil managed 
-    {
-        // Method begins at RVA 0x1f8c4
-	// 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 1740
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.TaskBuilder item)  cil managed 
+           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
     {
-        // Method begins at RVA 0x1f950
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1d6c4
+	// Code size 58 (0x3a)
 	.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 TaskBuilderCollection::Add
-
-    // method line 1741
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.TaskBuilder[] items)  cil managed 
-    {
-        // Method begins at RVA 0x1f974
-	// 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.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_0021:  ret 
-    } // end of method TaskBuilderCollection::AddRange
-
-    // method line 1742
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.TaskBuilderCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x1f9a4
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
+		string	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
+	IL_0001:  ldnull 
 	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.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_0028:  ret 
-    } // end of method TaskBuilderCollection::AddRange
-
-    // method line 1743
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x1f9dc
-	// 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 TaskBuilderCollection::Contains
-
-    // method line 1744
-    .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
-    {
-        // Method begins at RVA 0x1fa00
-	// 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 1745
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.TaskBuilder[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x1fa22
-	// 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
-
-    // method line 1746
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x1fa34
-	// 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 TaskBuilderCollection::IndexOf
-
-    // method line 1747
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x1fa55
-	// 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
-
-    // method line 1748
-    .method public hidebysig 
-           instance default class NAnt.Core.TaskBuilderEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x1fa68
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::GetEnumerator
-
-    // method line 1749
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x1fa83
-	// 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
-
-	.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
-}
-
-.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
-
-    // method line 1750
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.TaskBuilderCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x1fa94
-	// 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
-
-    // method line 1751
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x1fab8
-	// 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_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method TaskBuilderEnumerator::get_Current
-
-    // method line 1752
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x1fae0
-	.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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 1753
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x1fb00
-	// 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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskBuilderEnumerator::MoveNext
-
-    // method line 1754
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x1fb20
-	.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_0003:  ldarg.0 
+	IL_0004:  brfalse IL_0031
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.MoveNext
+	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
 
-    // method line 1755
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1fb40
-	// 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_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
 
-    // method line 1756
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1fb4e
-	.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_0038:  ldloc.2 
+	IL_0039:  ret 
+    } // end of method ProjectSettingsLoader::GetXmlAttributeValue
 
-	.property instance object System.Collections.IEnumerator.Current ()
+	.property instance class NAnt.Core.Project Project ()
 	{
-		.get instance default object NAnt.Core.TaskBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::get_Project () 
 	}
-	.property instance class NAnt.Core.TaskBuilder Current ()
+	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
 	{
-		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderEnumerator::get_Current () 
+		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::get_NamespaceManager () 
 	}
-  } // end of class NAnt.Core.TaskBuilderEnumerator
+  } // end of class NAnt.Core.ProjectSettingsLoader
 }
 
 .namespace NAnt.Core
@@ -63195,7 +58231,7 @@
     .field  private notserialized  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
     .field  private static initonly  class [log4net]log4net.ILog logger
 
-    // method line 1757
+    // method line 1636
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -63211,7 +58247,7 @@
 	IL_0012:  ret 
     } // end of method Element::.ctor
 
-    // method line 1758
+    // method line 1637
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Element e)  cil managed 
     {
@@ -63240,7 +58276,7 @@
 	IL_0037:  ret 
     } // end of method Element::.ctor
 
-    // method line 1759
+    // method line 1638
     .method public hidebysig specialname 
            instance default object get_Parent ()  cil managed 
     {
@@ -63259,7 +58295,7 @@
 	IL_000e:  ret 
     } // end of method Element::get_Parent
 
-    // method line 1760
+    // method line 1639
     .method public hidebysig specialname 
            instance default void set_Parent (object 'value')  cil managed 
     {
@@ -63273,7 +58309,7 @@
 	IL_0008:  ret 
     } // end of method Element::set_Parent
 
-    // method line 1761
+    // method line 1640
     .method public virtual hidebysig newslot specialname 
            instance default string get_Name ()  cil managed 
     {
@@ -63293,7 +58329,7 @@
 	IL_0013:  ret 
     } // end of method Element::get_Name
 
-    // method line 1762
+    // method line 1641
     .method public virtual hidebysig newslot specialname 
            instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
@@ -63312,7 +58348,7 @@
 	IL_000e:  ret 
     } // end of method Element::get_Project
 
-    // method line 1763
+    // method line 1642
     .method public virtual hidebysig newslot specialname 
            instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
     {
@@ -63326,7 +58362,7 @@
 	IL_0008:  ret 
     } // end of method Element::set_Project
 
-    // method line 1764
+    // method line 1643
     .method public virtual hidebysig newslot specialname 
            instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
     {
@@ -63346,7 +58382,7 @@
 	IL_0013:  ret 
     } // end of method Element::get_Properties
 
-    // method line 1765
+    // method line 1644
     .method public hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
     {
@@ -63365,7 +58401,7 @@
 	IL_000e:  ret 
     } // end of method Element::get_NamespaceManager
 
-    // method line 1766
+    // method line 1645
     .method public hidebysig specialname 
            instance default void set_NamespaceManager (class [System.Xml]System.Xml.XmlNamespaceManager 'value')  cil managed 
     {
@@ -63379,7 +58415,7 @@
 	IL_0008:  ret 
     } // end of method Element::set_NamespaceManager
 
-    // method line 1767
+    // method line 1646
     .method family virtual hidebysig newslot specialname 
            instance default class [System.Xml]System.Xml.XmlNode get_XmlNode ()  cil managed 
     {
@@ -63398,7 +58434,7 @@
 	IL_000e:  ret 
     } // end of method Element::get_XmlNode
 
-    // method line 1768
+    // method line 1647
     .method family virtual hidebysig newslot specialname 
            instance default void set_XmlNode (class [System.Xml]System.Xml.XmlNode 'value')  cil managed 
     {
@@ -63412,7 +58448,7 @@
 	IL_0008:  ret 
     } // end of method Element::set_XmlNode
 
-    // method line 1769
+    // method line 1648
     .method family virtual hidebysig newslot specialname 
            instance default class NAnt.Core.Location get_Location ()  cil managed 
     {
@@ -63431,7 +58467,7 @@
 	IL_000e:  ret 
     } // end of method Element::get_Location
 
-    // method line 1770
+    // method line 1649
     .method family virtual hidebysig newslot specialname 
            instance default void set_Location (class NAnt.Core.Location 'value')  cil managed 
     {
@@ -63445,7 +58481,7 @@
 	IL_0008:  ret 
     } // end of method Element::set_Location
 
-    // method line 1771
+    // method line 1650
     .method family virtual hidebysig newslot specialname 
            instance default bool get_CustomXmlProcessing ()  cil managed 
     {
@@ -63463,7 +58499,7 @@
 	IL_0009:  ret 
     } // end of method Element::get_CustomXmlProcessing
 
-    // method line 1772
+    // method line 1651
     .method public hidebysig 
            instance default void Initialize (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
     {
@@ -63483,7 +58519,7 @@
 	IL_001e:  ret 
     } // end of method Element::Initialize
 
-    // method line 1773
+    // method line 1652
     .method public hidebysig 
            instance default class NAnt.Core.Location GetLocation ()  cil managed 
     {
@@ -63502,7 +58538,7 @@
 	IL_000e:  ret 
     } // end of method Element::GetLocation
 
-    // method line 1774
+    // method line 1653
     .method public virtual hidebysig newslot 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
     {
@@ -63524,7 +58560,7 @@
 	IL_001b:  ret 
     } // end of method Element::Log
 
-    // method line 1775
+    // method line 1654
     .method public virtual hidebysig newslot 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
@@ -63550,7 +58586,7 @@
 	IL_001c:  ret 
     } // end of method Element::Log
 
-    // method line 1776
+    // method line 1655
     .method family virtual hidebysig newslot 
            instance default void InitializeElement (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
     {
@@ -63566,7 +58602,7 @@
 	IL_0001:  ret 
     } // end of method Element::InitializeElement
 
-    // method line 1777
+    // method line 1656
     .method family virtual hidebysig newslot 
            instance default void Initialize ()  cil managed 
     {
@@ -63577,7 +58613,7 @@
 	IL_0001:  ret 
     } // end of method Element::Initialize
 
-    // method line 1778
+    // method line 1657
     .method family hidebysig 
            instance default void CopyTo (class NAnt.Core.Element clone)  cil managed 
     {
@@ -63615,7 +58651,7 @@
 	IL_004f:  ret 
     } // end of method Element::CopyTo
 
-    // method line 1779
+    // method line 1658
     .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 
     {
@@ -63670,7 +58706,7 @@
 	IL_0064:  ret 
     } // end of method Element::Initialize
 
-    // method line 1780
+    // method line 1659
     .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 
     {
@@ -63694,7 +58730,7 @@
 	IL_0018:  ret 
     } // end of method Element::InitializeXml
 
-    // method line 1781
+    // method line 1660
     .method family virtual hidebysig newslot 
            instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
     {
@@ -63718,7 +58754,7 @@
 	IL_001b:  ret 
     } // end of method Element::GetAttributeConfigurationNode
 
-    // method line 1782
+    // method line 1661
     .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 
     {
@@ -63877,7 +58913,7 @@
 	IL_0139:  ret 
     } // end of method Element::GetAttributeConfigurationNode
 
-    // method line 1783
+    // method line 1662
     .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 
     {
@@ -64081,7 +59117,7 @@
 	IL_022c:  ret 
     } // end of method Element::InitializeBuildElement
 
-    // method line 1784
+    // method line 1663
     .method private static hidebysig 
            default string GetElementNameFromType (class [mscorlib]System.Type 'type')  cil managed 
     {
@@ -64125,7 +59161,7 @@
 	IL_004b:  ret 
     } // end of method Element::GetElementNameFromType
 
-    // method line 1785
+    // method line 1664
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
@@ -64188,7 +59224,7 @@
     .field  private static initonly  class [log4net]log4net.ILog logger
     .field  private static  class [mscorlib]System.Collections.Hashtable AttributeSetters
 
-    // method line 1786
+    // method line 1665
     .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 
     {
@@ -64367,7 +59403,7 @@
 	IL_01a2:  ret 
     } // end of method AttributeConfigurator::.ctor
 
-    // method line 1787
+    // method line 1666
     .method public hidebysig specialname 
            instance default class NAnt.Core.Element get_Element ()  cil managed 
     {
@@ -64386,7 +59422,7 @@
 	IL_000e:  ret 
     } // end of method AttributeConfigurator::get_Element
 
-    // method line 1788
+    // method line 1667
     .method public hidebysig specialname 
            instance default class NAnt.Core.Location get_Location ()  cil managed 
     {
@@ -64406,7 +59442,7 @@
 	IL_0013:  ret 
     } // end of method AttributeConfigurator::get_Location
 
-    // method line 1789
+    // method line 1668
     .method public hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
@@ -64426,7 +59462,7 @@
 	IL_0013:  ret 
     } // end of method AttributeConfigurator::get_Name
 
-    // method line 1790
+    // method line 1669
     .method public hidebysig specialname 
            instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
@@ -64446,7 +59482,7 @@
 	IL_0013:  ret 
     } // end of method AttributeConfigurator::get_Project
 
-    // method line 1791
+    // method line 1670
     .method public hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlNode get_ElementXml ()  cil managed 
     {
@@ -64465,7 +59501,7 @@
 	IL_000e:  ret 
     } // end of method AttributeConfigurator::get_ElementXml
 
-    // method line 1792
+    // method line 1671
     .method public hidebysig specialname 
            instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
     {
@@ -64484,7 +59520,7 @@
 	IL_000e:  ret 
     } // end of method AttributeConfigurator::get_Properties
 
-    // method line 1793
+    // method line 1672
     .method public hidebysig specialname 
            instance default class NAnt.Core.FrameworkInfo get_TargetFramework ()  cil managed 
     {
@@ -64503,7 +59539,7 @@
 	IL_000e:  ret 
     } // end of method AttributeConfigurator::get_TargetFramework
 
-    // method line 1794
+    // method line 1673
     .method public hidebysig specialname 
            instance default class [System]System.Collections.Specialized.StringCollection get_UnprocessedAttributes ()  cil managed 
     {
@@ -64522,7 +59558,7 @@
 	IL_000e:  ret 
     } // end of method AttributeConfigurator::get_UnprocessedAttributes
 
-    // method line 1795
+    // method line 1674
     .method public hidebysig specialname 
            instance default class [System]System.Collections.Specialized.StringCollection get_UnprocessedChildNodes ()  cil managed 
     {
@@ -64541,7 +59577,7 @@
 	IL_000e:  ret 
     } // end of method AttributeConfigurator::get_UnprocessedChildNodes
 
-    // method line 1796
+    // method line 1675
     .method public hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
     {
@@ -64561,7 +59597,7 @@
 	IL_0013:  ret 
     } // end of method AttributeConfigurator::get_NamespaceManager
 
-    // method line 1797
+    // method line 1676
     .method public hidebysig 
            instance default void Initialize ()  cil managed 
     {
@@ -64762,7 +59798,7 @@
 	IL_01d3:  ret 
     } // end of method AttributeConfigurator::Initialize
 
-    // method line 1798
+    // method line 1677
     .method family virtual hidebysig newslot 
            instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
@@ -65176,7 +60212,7 @@
 	IL_0439:  ret 
     } // end of method AttributeConfigurator::InitializeAttribute
 
-    // method line 1799
+    // method line 1678
     .method family virtual hidebysig newslot 
            instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
@@ -66092,7 +61128,7 @@
 	IL_0923:  ret 
     } // end of method AttributeConfigurator::InitializeBuildElementCollection
 
-    // method line 1800
+    // method line 1679
     .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 
     {
@@ -66234,7 +61270,7 @@
 	IL_0169:  ret 
     } // end of method AttributeConfigurator::InitializeChildElement
 
-    // method line 1801
+    // method line 1680
     .method family virtual hidebysig newslot 
            instance default void InitializeOrderedChildElements ()  cil managed 
     {
@@ -66575,7 +61611,7 @@
 	IL_02e4:  ret 
     } // end of method AttributeConfigurator::InitializeOrderedChildElements
 
-    // method line 1802
+    // method line 1681
     .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 
     {
@@ -66626,7 +61662,7 @@
 	IL_006d:  ret 
     } // end of method AttributeConfigurator::InitializeBuildElement
 
-    // method line 1803
+    // method line 1682
     .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 
     {
@@ -66855,7 +61891,7 @@
 	IL_0226:  ret 
     } // end of method AttributeConfigurator::CreateChildBuildElement
 
-    // method line 1804
+    // method line 1683
     .method private hidebysig 
            instance default class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter CreateAttributeSetter (class [mscorlib]System.Type attributeType)  cil managed 
     {
@@ -66972,7 +62008,7 @@
 	IL_0110:  ret 
     } // end of method AttributeConfigurator::CreateAttributeSetter
 
-    // method line 1805
+    // method line 1684
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
@@ -67032,7 +62068,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1806
+    // method line 1685
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67044,7 +62080,7 @@
 	IL_0006:  ret 
     } // end of method EnumAttributeSetter::.ctor
 
-    // method line 1807
+    // method line 1686
     .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 
     {
@@ -67120,7 +62156,7 @@
 	IL_007b:  ret 
     } // end of method EnumAttributeSetter::Set
 
-    // method line 1808
+    // method line 1687
     .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 
     {
@@ -67228,7 +62264,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1809
+    // method line 1688
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67240,7 +62276,7 @@
 	IL_0006:  ret 
     } // end of method EncodingAttributeSetter::.ctor
 
-    // method line 1810
+    // method line 1689
     .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 
     {
@@ -67339,7 +62375,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1811
+    // method line 1690
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67351,7 +62387,7 @@
 	IL_0006:  ret 
     } // end of method FileAttributeSetter::.ctor
 
-    // method line 1812
+    // method line 1691
     .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 
     {
@@ -67458,7 +62494,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1813
+    // method line 1692
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67470,7 +62506,7 @@
 	IL_0006:  ret 
     } // end of method DirectoryAttributeSetter::.ctor
 
-    // method line 1814
+    // method line 1693
     .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 
     {
@@ -67552,7 +62588,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1815
+    // method line 1694
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67564,7 +62600,7 @@
 	IL_0006:  ret 
     } // end of method PathSetAttributeSetter::.ctor
 
-    // method line 1816
+    // method line 1695
     .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 
     {
@@ -67621,7 +62657,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1817
+    // method line 1696
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67633,7 +62669,7 @@
 	IL_0006:  ret 
     } // end of method UriAttributeSetter::.ctor
 
-    // method line 1818
+    // method line 1697
     .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 
     {
@@ -67750,7 +62786,7 @@
   	extends [mscorlib]System.Object
   	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
 
-    // method line 1819
+    // method line 1698
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
@@ -67762,7 +62798,7 @@
 	IL_0006:  ret 
     } // end of method ConvertableAttributeSetter::.ctor
 
-    // method line 1820
+    // method line 1699
     .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 
     {
@@ -67819,7 +62855,7 @@
   .class interface nested private auto ansi abstract IAttributeSetter
   {
 
-    // method line 1821
+    // method line 1700
     .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 
     {
@@ -67841,11 +62877,11 @@
     .field  private  int32 _startPos
     .field  private  int32 _endPos
 
-    // method line 1822
+    // method line 1701
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1fb5c
+        // Method begins at RVA 0x1d70a
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -67860,11 +62896,11 @@
 	IL_0015:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1823
+    // method line 1702
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string message)  cil managed 
     {
-        // Method begins at RVA 0x1fb73
+        // Method begins at RVA 0x1d721
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -67881,11 +62917,11 @@
 	IL_0017:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1824
+    // method line 1703
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string message, class [mscorlib]System.Exception inner)  cil managed 
     {
-        // Method begins at RVA 0x1fb8c
+        // Method begins at RVA 0x1d73a
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -67902,11 +62938,11 @@
 	IL_0017:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1825
+    // method line 1704
     .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 0x1fba8
+        // Method begins at RVA 0x1d754
 	// Code size 88 (0x58)
 	.maxstack 4
 	IL_0000:  ldarg.0 
@@ -67939,11 +62975,11 @@
 	IL_0057:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1826
+    // method line 1705
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string message, int32 pos)  cil managed 
     {
-        // Method begins at RVA 0x1fc0c
+        // Method begins at RVA 0x1d7b8
 	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -67966,11 +63002,11 @@
 	IL_0025:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1827
+    // method line 1706
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string message, int32 startPos, int32 endPos)  cil managed 
     {
-        // Method begins at RVA 0x1fc33
+        // Method begins at RVA 0x1d7df
 	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -67993,11 +63029,11 @@
 	IL_0025:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1828
+    // method line 1707
     .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 0x1fc5a
+        // Method begins at RVA 0x1d806
 	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -68020,11 +63056,11 @@
 	IL_0026:  ret 
     } // end of method ExpressionParseException::.ctor
 
-    // method line 1829
+    // method line 1708
     .method public hidebysig specialname 
            instance default int32 get_StartPos ()  cil managed 
     {
-        // Method begins at RVA 0x1fc84
+        // Method begins at RVA 0x1d830
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -68039,11 +63075,11 @@
 	IL_000e:  ret 
     } // end of method ExpressionParseException::get_StartPos
 
-    // method line 1830
+    // method line 1709
     .method public hidebysig specialname 
            instance default int32 get_EndPos ()  cil managed 
     {
-        // Method begins at RVA 0x1fca0
+        // Method begins at RVA 0x1d84c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -68058,11 +63094,11 @@
 	IL_000e:  ret 
     } // end of method ExpressionParseException::get_EndPos
 
-    // method line 1831
+    // method line 1710
     .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 0x1fcbb
+        // Method begins at RVA 0x1d867
 	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -68096,2477 +63132,4542 @@
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit ExpressionEvaluator
-  	extends NAnt.Core.ExpressionEvalBase
+  .class public auto ansi ExpressionTokenizer
+  	extends [mscorlib]System.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  class NAnt.Core.PropertyDictionary _properties
-    .field  private  class [mscorlib]System.Collections.Hashtable _state
-    .field  private  class [mscorlib]System.Collections.Stack _visiting
+    .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 1832
+    // method line 1711
     .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' ()  cil managed 
     {
-        // Method begins at RVA 0x23562
-	// Code size 31 (0x1f)
+        // Method begins at RVA 0x1d894
+	// Code size 15 (0xf)
 	.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 1833
-    .method family virtual hidebysig 
-           instance default object EvaluateProperty (string propertyName)  cil managed 
-    {
-        // Method begins at RVA 0x23584
-	// 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
+	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 1834
-    .method family virtual hidebysig 
-           instance default object EvaluateFunction (class [mscorlib]System.Reflection.MethodInfo methodInfo, object[] args)  cil managed 
+    // method line 1712
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x235a0
-	// Code size 184 (0xb8)
-	.maxstack 5
+        // Method begins at RVA 0x1d8a4
+	// Code size 439 (0x1b7)
+	.maxstack 4
 	.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
+		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_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_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_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
+	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
 
-	} // 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_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_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_01b6:  ret 
+    } // end of method ExpressionTokenizer::.cctor
 
-    // method line 1835
-    .method public hidebysig 
-           instance default string GetPropertyValue (string propertyName)  cil managed 
+    // method line 1713
+    .method public hidebysig specialname 
+           instance default bool get_IgnoreWhitespace ()  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 0x23674
-	// Code size 271 (0x10f)
-	.maxstack 5
+        // Method begins at RVA 0x1da68
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1,
-		class NAnt.Core.Location	V_2,
-		string	V_3,
-		string	V_4)
+		bool	V_0)
 	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_0002:  ldfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_IgnoreWhitespace
 
-	IL_010d:  ldloc.3 
-	IL_010e:  ret 
-    } // end of method ExpressionEvaluator::GetPropertyValue
+    // method line 1714
+    .method public hidebysig specialname 
+           instance default void set_IgnoreWhitespace (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1da83
+	// 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
 
-  } // end of class NAnt.Core.ExpressionEvaluator
-}
+    // method line 1715
+    .method public hidebysig specialname 
+           instance default bool get_SingleCharacterMode ()  cil managed 
+    {
+        // Method begins at RVA 0x1da90
+	// 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
 
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit ConsoleDriver
-  	extends [mscorlib]System.Object
-  {
-    .field private static literal  int32 INDENTATION_SIZE = int32(0x00000004)
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_SingleCharacterMode
 
-    // method line 1836
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1716
+    .method public hidebysig specialname 
+           instance default void set_SingleCharacterMode (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2378f
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1daab
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ConsoleDriver::.ctor
+	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 1837
-    .method public static hidebysig 
-           default int32 Main (string[] args)  cil managed 
+    // method line 1717
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/TokenType get_CurrentToken ()  cil managed 
     {
-        // Method begins at RVA 0x23798
-	// Code size 1595 (0x63b)
-	.maxstack 4
+        // Method begins at RVA 0x1dab8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		valuetype NAnt.Core.ExpressionTokenizer/TokenType	V_0)
 	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_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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_CurrentToken
 
-	    IL_0072:  ldloc.s 4
-	    IL_0074:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Debug()
-	    IL_0079:  brfalse IL_008b
+    // method line 1718
+    .method public hidebysig specialname 
+           instance default string get_TokenText ()  cil managed 
+    {
+        // Method begins at RVA 0x1dad4
+	// 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_007e:  nop 
-	    IL_007f:  ldc.i4 1000
-	    IL_0084:  stloc.2 
-	    IL_0085:  nop 
-	    IL_0086:  br IL_00b8
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_TokenText
 
-	    IL_008b:  ldloc.s 4
-	    IL_008d:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Verbose()
-	    IL_0092:  brfalse IL_00a4
+    // method line 1719
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_CurrentPosition ()  cil managed 
+    {
+        // Method begins at RVA 0x1daf0
+	// 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_0097:  nop 
-	    IL_0098:  ldc.i4 2000
-	    IL_009d:  stloc.2 
-	    IL_009e:  nop 
-	    IL_009f:  br IL_00b8
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_CurrentPosition
 
-	    IL_00a4:  ldloc.s 4
-	    IL_00a6:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Quiet()
-	    IL_00ab:  brfalse IL_00b8
+    // method line 1720
+    .method public hidebysig 
+           instance default void InitTokenizer (string s)  cil managed 
+    {
+        // Method begins at RVA 0x1db0b
+	// 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
 
-	    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
+    // method line 1721
+    .method public hidebysig 
+           instance default void GetNextToken ()  cil managed 
+    {
+        // Method begins at RVA 0x1db2c
+	// 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_00c4:  nop 
-	    IL_00c5:  ldloc.1 
-	    IL_00c6:  brfalse IL_00f3
+	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_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_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_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_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_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_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_0187:  leave IL_01a3
+	IL_006a:  nop 
+	IL_006b:  ldarg.0 
+	IL_006c:  call instance bool class NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace()
+	IL_0071:  brtrue IL_00d7
 
-	    } // 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_0076:  ldloc.1 
+	IL_0077:  call bool char::IsWhiteSpace(char)
+	IL_007c:  brfalse IL_00d7
 
-	      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_0081:  nop 
+	IL_0082:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0087:  stloc.2 
+	IL_0088:  br IL_00b0
 
-	      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_008d:  nop 
+	IL_008e:  ldloc.0 
+	IL_008f:  conv.u2 
+	IL_0090:  call bool char::IsWhiteSpace(char)
+	IL_0095:  brtrue IL_009f
 
-	      IL_01ea:  leave IL_0206
+	IL_009a:  br IL_00be
 
-	    } // 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_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_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_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_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_00d7:  ldloc.1 
+	IL_00d8:  call bool char::IsDigit(char)
+	IL_00dd:  brfalse IL_0153
 
-	      IL_0254:  leave IL_0270
+	IL_00e2:  nop 
+	IL_00e3:  ldarg.0 
+	IL_00e4:  ldc.i4.2 
+	IL_00e5:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_00ea:  ldsfld string [mscorlib]System.String::Empty
+	IL_00ef:  stloc.3 
+	IL_00f0:  ldloc.3 
+	IL_00f1:  ldloc.1 
+	IL_00f2:  box [mscorlib]System.Char
+	IL_00f7:  call string string::Concat(object, object)
+	IL_00fc:  stloc.3 
+	IL_00fd:  ldarg.0 
+	IL_00fe:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0103:  pop 
+	IL_0104:  br IL_0139
 
-	    } // 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_0109:  nop 
+	IL_010a:  ldloc.0 
+	IL_010b:  conv.u2 
+	IL_010c:  stloc.1 
+	IL_010d:  ldloc.1 
+	IL_010e:  call bool char::IsDigit(char)
+	IL_0113:  brfalse IL_0132
 
-	      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_0118:  nop 
+	IL_0119:  ldloc.3 
+	IL_011a:  ldarg.0 
+	IL_011b:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0120:  conv.u2 
+	IL_0121:  box [mscorlib]System.Char
+	IL_0126:  call string string::Concat(object, object)
+	IL_012b:  stloc.3 
+	IL_012c:  nop 
+	IL_012d:  br IL_0138
 
-	    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_0132:  nop 
+	IL_0133:  br IL_0147
 
-	    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_0138:  nop 
+	IL_0139:  ldarg.0 
+	IL_013a:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_013f:  dup 
+	IL_0140:  stloc.0 
+	IL_0141:  ldc.i4.m1 
+	IL_0142:  bne.un IL_0109
 
-	    } // 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_0147:  ldarg.0 
+	IL_0148:  ldloc.3 
+	IL_0149:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_014e:  br IL_041c
 
-	      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_0153:  ldloc.1 
+	IL_0154:  ldc.i4.s 0x27
+	IL_0156:  bne.un IL_01cf
 
-	    } // end handler 3
-	    IL_035d:  nop 
-	    IL_035e:  br IL_0413
+	IL_015b:  nop 
+	IL_015c:  ldarg.0 
+	IL_015d:  ldc.i4.3 
+	IL_015e:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0163:  ldstr ""
+	IL_0168:  stloc.s 4
+	IL_016a:  ldarg.0 
+	IL_016b:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0170:  pop 
+	IL_0171:  br IL_01b4
 
-	    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_0176:  nop 
+	IL_0177:  ldloc.0 
+	IL_0178:  conv.u2 
+	IL_0179:  stloc.1 
+	IL_017a:  ldloc.1 
+	IL_017b:  ldc.i4.s 0x27
+	IL_017d:  bne.un IL_01a4
 
-	    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_0182:  nop 
+	IL_0183:  ldarg.0 
+	IL_0184:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_0189:  ldc.i4.s 0x27
+	IL_018b:  bne.un IL_019e
 
-	    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_0190:  nop 
+	IL_0191:  ldarg.0 
+	IL_0192:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0197:  pop 
+	IL_0198:  nop 
+	IL_0199:  br IL_01a3
 
-	    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_019e:  br IL_01c2
 
-	    IL_040a:  nop 
-	    IL_040b:  ldc.i4.1 
-	    IL_040c:  stloc.s 5
-	    IL_040e:  leave IL_0638
+	IL_01a3:  nop 
+	IL_01a4:  ldloc.s 4
+	IL_01a6:  ldloc.1 
+	IL_01a7:  box [mscorlib]System.Char
+	IL_01ac:  call string string::Concat(object, object)
+	IL_01b1:  stloc.s 4
+	IL_01b3:  nop 
+	IL_01b4:  ldarg.0 
+	IL_01b5:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_01ba:  dup 
+	IL_01bb:  stloc.0 
+	IL_01bc:  ldc.i4.m1 
+	IL_01bd:  bne.un IL_0176
 
-	    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_01c2:  ldarg.0 
+	IL_01c3:  ldloc.s 4
+	IL_01c5:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_01ca:  br IL_041c
 
-	    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_01cf:  ldloc.1 
+	IL_01d0:  ldc.i4.s 0x5f
+	IL_01d2:  beq IL_01e2
 
-	    IL_0437:  nop 
-	    IL_0438:  ldloc.1 
-	    IL_0439:  callvirt instance bool class NAnt.Core.Project::Run()
-	    IL_043e:  brtrue IL_044c
+	IL_01d7:  ldloc.1 
+	IL_01d8:  call bool char::IsLetter(char)
+	IL_01dd:  brfalse IL_02d3
 
-	    IL_0443:  nop 
-	    IL_0444:  ldc.i4.1 
-	    IL_0445:  stloc.s 5
-	    IL_0447:  leave IL_0638
+	IL_01e2:  nop 
+	IL_01e3:  ldarg.0 
+	IL_01e4:  ldc.i4.4 
+	IL_01e5:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_01ea:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_01ef:  stloc.s 5
+	IL_01f1:  ldloc.s 5
+	IL_01f3:  ldloc.1 
+	IL_01f4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_01f9:  pop 
+	IL_01fa:  ldarg.0 
+	IL_01fb:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0200:  pop 
+	IL_0201:  br IL_025a
 
-	    IL_044c:  nop 
-	    IL_044d:  ldc.i4.0 
-	    IL_044e:  stloc.s 5
-	    IL_0450:  leave IL_0638
+	IL_0206:  nop 
+	IL_0207:  ldloc.0 
+	IL_0208:  conv.u2 
+	IL_0209:  stloc.s 6
+	IL_020b:  ldloc.s 6
+	IL_020d:  ldc.i4.s 0x5f
+	IL_020f:  beq IL_023b
 
-	  } // 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_0214:  ldloc.s 6
+	IL_0216:  ldc.i4.s 0x2d
+	IL_0218:  beq IL_023b
 
-	    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_021d:  ldloc.s 6
+	IL_021f:  ldc.i4.s 0x2e
+	IL_0221:  beq IL_023b
 
-	    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_0226:  ldloc.s 6
+	IL_0228:  ldc.i4.s 0x5c
+	IL_022a:  beq IL_023b
 
-	  } // 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_022f:  ldloc.s 6
+	IL_0231:  call bool char::IsLetterOrDigit(char)
+	IL_0236:  brfalse IL_0253
 
-	    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_023b:  nop 
+	IL_023c:  ldarg.0 
+	IL_023d:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0242:  pop 
+	IL_0243:  ldloc.s 5
+	IL_0245:  ldloc.s 6
+	IL_0247:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_024c:  pop 
+	IL_024d:  nop 
+	IL_024e:  br IL_0259
 
-	    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_0253:  nop 
+	IL_0254:  br IL_0268
 
-	  } // 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_0259:  nop 
+	IL_025a:  ldarg.0 
+	IL_025b:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_0260:  dup 
+	IL_0261:  stloc.0 
+	IL_0262:  ldc.i4.m1 
+	IL_0263:  bne.un IL_0206
 
-	    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_0268:  ldarg.0 
+	IL_0269:  ldloc.s 5
+	IL_026b:  callvirt instance string object::ToString()
+	IL_0270:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0275:  ldarg.0 
+	IL_0276:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_027b:  ldstr "-"
+	IL_0280:  callvirt instance bool string::EndsWith(string)
+	IL_0285:  brtrue IL_029f
 
-	    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_028a:  ldarg.0 
+	IL_028b:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0290:  ldstr "."
+	IL_0295:  callvirt instance bool string::EndsWith(string)
+	IL_029a:  brfalse IL_02ce
 
-	  } // end handler 6
-	} // end .try 7
-	finally  { // 7
-	  IL_060f:  nop 
-	  IL_0610:  ldloc.1 
-	  IL_0611:  brfalse IL_061e
+	IL_029f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02a4:  ldstr "NA1182"
+	IL_02a9:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02ae:  ldarg.0 
+	IL_02af:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_02b4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_02b9:  ldarg.0 
+	IL_02ba:  call instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_02bf:  stloc.s 7
+	IL_02c1:  ldloca.s 7
+	IL_02c3:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_02c8:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32)
+	IL_02cd:  throw 
+	IL_02ce:  br IL_041c
 
-	  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_02d3:  ldarg.0 
+	IL_02d4:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_02d9:  pop 
+	IL_02da:  ldarg.0 
+	IL_02db:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_02e0:  stloc.0 
+	IL_02e1:  ldloc.1 
+	IL_02e2:  ldc.i4.s 0x3a
+	IL_02e4:  bne.un IL_0311
 
-	  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_02e9:  ldloc.0 
+	IL_02ea:  ldc.i4.s 0x3a
+	IL_02ec:  bne.un IL_0311
 
-    // method line 1838
-    .method public static hidebysig 
-           default void ShowProjectHelp (class [System.Xml]System.Xml.XmlDocument buildDoc)  cil managed 
-    {
-        // Method begins at RVA 0x23ea4
-	// 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_02f1:  nop 
+	IL_02f2:  ldarg.0 
+	IL_02f3:  ldc.i4.s 0x1a
+	IL_02f5:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_02fa:  ldarg.0 
+	IL_02fb:  ldstr "::"
+	IL_0300:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0305:  ldarg.0 
+	IL_0306:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_030b:  pop 
+	IL_030c:  br IL_041c
 
-	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_0311:  ldloc.1 
+	IL_0312:  ldc.i4.s 0x21
+	IL_0314:  bne.un IL_0340
 
-    // method line 1839
-    .method public static hidebysig 
-           default string GetBuildFileName (string directory, string searchPattern, bool findInParent)  cil managed 
-    {
-        // Method begins at RVA 0x23f48
-	// 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_0319:  ldloc.0 
+	IL_031a:  ldc.i4.s 0x3d
+	IL_031c:  bne.un IL_0340
 
-	IL_000e:  nop 
-	IL_000f:  ldarg.1 
-	IL_0010:  stloc.0 
-	IL_0011:  nop 
-	IL_0012:  br IL_011f
+	IL_0321:  nop 
+	IL_0322:  ldarg.0 
+	IL_0323:  ldc.i4.6 
+	IL_0324:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0329:  ldarg.0 
+	IL_032a:  ldstr "!="
+	IL_032f:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0334:  ldarg.0 
+	IL_0335:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_033a:  pop 
+	IL_033b:  br IL_041c
 
-	IL_0017:  nop 
-	IL_0018:  ldarg.1 
-	IL_0019:  brtrue IL_0027
+	IL_0340:  ldloc.1 
+	IL_0341:  ldc.i4.s 0x3d
+	IL_0343:  bne.un IL_036f
 
-	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_0348:  ldloc.0 
+	IL_0349:  ldc.i4.s 0x3d
+	IL_034b:  bne.un IL_036f
 
-	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_0350:  nop 
+	IL_0351:  ldarg.0 
+	IL_0352:  ldc.i4.5 
+	IL_0353:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0358:  ldarg.0 
+	IL_0359:  ldstr "=="
+	IL_035e:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0363:  ldarg.0 
+	IL_0364:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0369:  pop 
+	IL_036a:  br IL_041c
 
-	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_036f:  ldloc.1 
+	IL_0370:  ldc.i4.s 0x3c
+	IL_0372:  bne.un IL_039f
 
-	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_0377:  ldloc.0 
+	IL_0378:  ldc.i4.s 0x3d
+	IL_037a:  bne.un IL_039f
 
-	IL_0075:  ldloc.2 
-	IL_0076:  ldlen 
-	IL_0077:  conv.i4 
-	IL_0078:  ldc.i4.1 
-	IL_0079:  ble IL_00a5
+	IL_037f:  nop 
+	IL_0380:  ldarg.0 
+	IL_0381:  ldc.i4.s 0x09
+	IL_0383:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0388:  ldarg.0 
+	IL_0389:  ldstr "<="
+	IL_038e:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0393:  ldarg.0 
+	IL_0394:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_0399:  pop 
+	IL_039a:  br IL_041c
 
-	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_039f:  ldloc.1 
+	IL_03a0:  ldc.i4.s 0x3e
+	IL_03a2:  bne.un IL_03cf
 
-	IL_00ad:  ldarg.2 
-	IL_00ae:  brfalse IL_0101
+	IL_03a7:  ldloc.0 
+	IL_03a8:  ldc.i4.s 0x3d
+	IL_03aa:  bne.un IL_03cf
 
-	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_03af:  nop 
+	IL_03b0:  ldarg.0 
+	IL_03b1:  ldc.i4.s 0x0a
+	IL_03b3:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_03b8:  ldarg.0 
+	IL_03b9:  ldstr ">="
+	IL_03be:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_03c3:  ldarg.0 
+	IL_03c4:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_03c9:  pop 
+	IL_03ca:  br IL_041c
 
-	IL_00c2:  ldloc.s 4
-	IL_00c4:  brfalse IL_00df
+	IL_03cf:  nop 
+	IL_03d0:  br IL_03de
 
-	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_03d5:  nop 
+	IL_03d6:  ldarg.0 
+	IL_03d7:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_03dc:  pop 
+	IL_03dd:  nop 
+	IL_03de:  ldarg.0 
+	IL_03df:  ldloc.1 
+	IL_03e0:  ldc.i4.1 
+	IL_03e1:  newobj instance void string::'.ctor'(char, int32)
+	IL_03e6:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_03eb:  ldloc.1 
+	IL_03ec:  ldc.i4.s 0x20
+	IL_03ee:  blt IL_0412
 
-	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_03f3:  ldloc.1 
+	IL_03f4:  ldc.i4 128
+	IL_03f9:  bge IL_0412
 
-	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_03fe:  nop 
+	IL_03ff:  ldarg.0 
+	IL_0400:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
+	IL_0405:  ldloc.1 
+	IL_0406:  ldelem.i4 
+	IL_0407:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_040c:  nop 
+	IL_040d:  br IL_041c
 
-	IL_0126:  ldloc.3 
-	IL_0127:  ret 
-    } // end of method ConsoleDriver::GetBuildFileName
+	IL_0412:  nop 
+	IL_0413:  ldarg.0 
+	IL_0414:  ldc.i4.s 0x15
+	IL_0416:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_041b:  nop 
+	IL_041c:  ret 
+    } // end of method ExpressionTokenizer::GetNextToken
 
-    // method line 1840
-    .method private static hidebysig 
-           default void LoadExtensionAssemblies (class [System]System.Collections.Specialized.StringCollection extensionAssemblies, class NAnt.Core.Project project)  cil managed 
+    // method line 1722
+    .method public hidebysig 
+           instance default bool IsKeyword (string k)  cil managed 
     {
-        // Method begins at RVA 0x2407c
-	// Code size 153 (0x99)
-	.maxstack 3
+        // Method begins at RVA 0x1df58
+	// Code size 36 (0x24)
+	.maxstack 2
 	.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)
+		bool	V_0)
 	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_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0007:  ldc.i4.4 
+	IL_0008:  bne.un IL_001b
 
-	  IL_0079:  leave IL_0092
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0013:  ldarg.1 
+	IL_0014:  call bool string::op_Equality(string, string)
+	IL_0019:  br.s IL_001c
 
-	} // 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_001b:  ldc.i4.0 
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_0022
 
-	  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_0022:  ldloc.0 
+	IL_0023:  ret 
+    } // end of method ExpressionTokenizer::IsKeyword
 
-    // method line 1841
-    .method public static hidebysig 
-           default class NAnt.Core.IBuildLogger CreateLogger (string typeName)  cil managed 
+    // method line 1723
+    .method private hidebysig 
+           instance default int32 ReadChar ()  cil managed 
     {
-        // Method begins at RVA 0x24134
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 144 (0x90)
+        // Method begins at RVA 0x1df88
+	// Code size 66 (0x42)
 	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		object	V_1,
-		class NAnt.Core.IBuildLogger	V_2)
+		int32	V_0,
+		int32	V_1)
 	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_0002:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld string NAnt.Core.ExpressionTokenizer::_text
+	IL_000d:  callvirt instance int32 string::get_Length()
+	IL_0012:  bge IL_0039
 
-	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_0017:  ldarg.0 
+	IL_0018:  ldfld string NAnt.Core.ExpressionTokenizer::_text
+	IL_001d:  ldarg.0 
+	IL_001e:  dup 
+	IL_001f:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_0024:  dup 
+	IL_0025:  stloc.0 
+	IL_0026:  ldc.i4.1 
+	IL_0027:  add 
+	IL_0028:  stfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_002d:  ldloc.0 
+	IL_002e:  callvirt instance char string::get_Chars(int32)
+	IL_0033:  stloc.1 
+	IL_0034:  br IL_0040
 
-	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_0039:  ldc.i4.m1 
+	IL_003a:  stloc.1 
+	IL_003b:  br IL_0040
 
-	IL_008e:  ldloc.2 
-	IL_008f:  ret 
-    } // end of method ConsoleDriver::CreateLogger
+	IL_0040:  ldloc.1 
+	IL_0041:  ret 
+    } // end of method ExpressionTokenizer::ReadChar
 
-    // method line 1842
-    .method public static hidebysig 
-           default class NAnt.Core.IBuildListener CreateListener (string typeName)  cil managed 
+    // method line 1724
+    .method private hidebysig 
+           instance default int32 PeekChar ()  cil managed 
     {
-        // Method begins at RVA 0x241d0
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 144 (0x90)
-	.maxstack 4
+        // Method begins at RVA 0x1dfd8
+	// Code size 55 (0x37)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		object	V_1,
-		class NAnt.Core.IBuildListener	V_2)
+		int32	V_0)
 	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_0002:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld string NAnt.Core.ExpressionTokenizer::_text
+	IL_000d:  callvirt instance int32 string::get_Length()
+	IL_0012:  bge IL_002e
 
-	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_0017:  ldarg.0 
+	IL_0018:  ldfld string NAnt.Core.ExpressionTokenizer::_text
+	IL_001d:  ldarg.0 
+	IL_001e:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_0023:  callvirt instance char string::get_Chars(int32)
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_0035
 
-	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_002e:  ldc.i4.m1 
+	IL_002f:  stloc.0 
+	IL_0030:  br IL_0035
 
-	IL_008e:  ldloc.2 
-	IL_008f:  ret 
-    } // end of method ConsoleDriver::CreateListener
+	IL_0035:  ldloc.0 
+	IL_0036:  ret 
+    } // end of method ExpressionTokenizer::PeekChar
 
-    // method line 1843
-    .method private static hidebysig 
-           default void AddBuildListeners (class NAnt.Core.CommandLineOptions cmdlineOptions, class NAnt.Core.Project project)  cil managed 
+    // method line 1725
+    .method private hidebysig 
+           instance default void SkipWhitespace ()  cil managed 
     {
-        // Method begins at RVA 0x2426c
-	// Code size 412 (0x19c)
-	.maxstack 4
+        // Method begins at RVA 0x1e01c
+	// Code size 47 (0x2f)
+	.maxstack 2
 	.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)
+		int32	V_0)
 	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_0001:  br IL_0020
 
-	  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_0006:  nop 
+	IL_0007:  ldloc.0 
+	IL_0008:  conv.u2 
+	IL_0009:  call bool char::IsWhiteSpace(char)
+	IL_000e:  brtrue IL_0018
 
-	  } // 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_0013:  br IL_002e
 
-	  IL_0178:  leave IL_0194
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_001e:  pop 
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_0026:  dup 
+	IL_0027:  stloc.0 
+	IL_0028:  ldc.i4.m1 
+	IL_0029:  bne.un IL_0006
 
-	} // 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_002e:  ret 
+    } // end of method ExpressionTokenizer::SkipWhitespace
 
-	  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
+	.property instance bool IgnoreWhitespace ()
+	{
+		.get instance default bool NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace () 
+		.set instance default void NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace (bool 'value') 
+	}
+	.property instance bool SingleCharacterMode ()
+	{
+		.get instance default bool NAnt.Core.ExpressionTokenizer::get_SingleCharacterMode () 
+		.set instance default void NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode (bool 'value') 
+	}
+	.property instance valuetype NAnt.Core.ExpressionTokenizer/TokenType CurrentToken ()
+	{
+		.get instance default valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::get_CurrentToken () 
+	}
+	.property instance string TokenText ()
+	{
+		.get instance default string NAnt.Core.ExpressionTokenizer::get_TokenText () 
+	}
+	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position CurrentPosition ()
+	{
+		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::get_CurrentPosition () 
+	}
+  .class nested public sequential ansi sealed beforefieldinit Position
+  	extends [mscorlib]System.ValueType
+  {
+    .field  private  int32 _charIndex
 
-    // method line 1844
-    .method private static hidebysig 
-           default void ShowHelp (class NAnt.Core.Util.CommandLineParser parser)  cil managed 
+    // method line 1726
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 charIndex)  cil managed 
     {
-        // Method begins at RVA 0x24448
-	// Code size 68 (0x44)
-	.maxstack 1
+        // Method begins at RVA 0x1e057
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.ExpressionTokenizer/Position::_charIndex
+	IL_0008:  ret 
+    } // end of method Position::.ctor
 
-    // method line 1845
-    .method private static hidebysig 
-           default void WriteException (class [mscorlib]System.Exception cause)  cil managed 
+    // method line 1727
+    .method public hidebysig specialname 
+           instance default int32 get_CharIndex ()  cil managed 
     {
-        // Method begins at RVA 0x24498
-	// Code size 113 (0x71)
-	.maxstack 4
+        // Method begins at RVA 0x1e064
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_005a
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.ExpressionTokenizer/Position::_charIndex
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Position::get_CharIndex
 
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldc.i4.0 
-	IL_001c:  ble IL_002d
+	.property instance int32 CharIndex ()
+	{
+		.get instance default int32 NAnt.Core.ExpressionTokenizer/Position::get_CharIndex () 
+	}
+  } // end of class Position
 
-	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
+  .class nested public auto ansi sealed TokenType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType BOF = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType EOF = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Number = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType String = int32(0x00000003)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Keyword = int32(0x00000004)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType EQ = int32(0x00000005)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType NE = int32(0x00000006)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LT = int32(0x00000007)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType GT = int32(0x00000008)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LE = int32(0x00000009)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType GE = int32(0x0000000a)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Plus = int32(0x0000000b)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Minus = int32(0x0000000c)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Mul = int32(0x0000000d)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Div = int32(0x0000000e)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Mod = int32(0x0000000f)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LeftParen = int32(0x00000010)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType RightParen = int32(0x00000011)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LeftCurlyBrace = int32(0x00000012)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType RightCurlyBrace = int32(0x00000013)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Not = int32(0x00000014)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Punctuation = int32(0x00000015)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Whitespace = int32(0x00000016)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Dollar = int32(0x00000017)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Comma = int32(0x00000018)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Dot = int32(0x00000019)
+    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType DoubleColon = int32(0x0000001a)
 
-	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
+  } // end of class TokenType
 
-	IL_0070:  ret 
-    } // end of method ConsoleDriver::WriteException
+  .class nested private sequential ansi sealed beforefieldinit CharToTokenType
+  	extends [mscorlib]System.ValueType
+  {
+    .field  public initonly  char ch
+    .field  public initonly  valuetype NAnt.Core.ExpressionTokenizer/TokenType tokenType
 
-  } // end of class NAnt.Core.ConsoleDriver
+    // method line 1728
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (char ch, valuetype NAnt.Core.ExpressionTokenizer/TokenType tokenType)  cil managed 
+    {
+        // Method begins at RVA 0x1e07f
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld char NAnt.Core.ExpressionTokenizer/CharToTokenType::ch
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer/CharToTokenType::tokenType
+	IL_000f:  ret 
+    } // end of method CharToTokenType::.ctor
+
+  } // end of class CharToTokenType
+
+  } // end of class NAnt.Core.ExpressionTokenizer
 }
 
 .namespace NAnt.Core
 {
-  .class private auto ansi serializable beforefieldinit LocationMap
+  .class public auto ansi sealed serializable beforefieldinit PathScanner
   	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Collections.Hashtable _fileMap
+  	implements [mscorlib]System.ICloneable  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private  class [System]System.Collections.Specialized.StringCollection _unscannedNames
 
-    // method line 1846
+    // method line 1729
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x24515
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x1e090
+	// Code size 18 (0x12)
 	.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_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:  nop 
-	IL_0012:  ret 
-    } // end of method LocationMap::.ctor
+	IL_0011:  ret 
+    } // end of method PathScanner::.ctor
 
-    // method line 1847
+    // method line 1730
+    .method private final virtual hidebysig newslot 
+           instance default object System.ICloneable.Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x1e0a4
+	.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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PathScanner::System.ICloneable.Clone
+
+    // method line 1731
     .method public hidebysig 
-           instance default bool FileIsMapped (string fileOrUri)  cil managed 
+           instance default class NAnt.Core.PathScanner Clone ()  cil managed 
     {
-        // Method begins at RVA 0x2452c
+        // Method begins at RVA 0x1e0c0
 	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
-		class [System]System.Uri	V_0,
-		bool	V_1)
+		class NAnt.Core.PathScanner	V_0,
+		class NAnt.Core.PathScanner	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_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 [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_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_001f:  ldloc.1 
 	IL_0020:  ret 
-    } // end of method LocationMap::FileIsMapped
+    } // end of method PathScanner::Clone
 
-    // method line 1848
+    // method line 1732
     .method public hidebysig 
-           instance default void Add (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+           instance default void Add (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x2455c
-	// Code size 660 (0x294)
-	.maxstack 5
+        // Method begins at RVA 0x1e0ed
+	// Code size 15 (0xf)
+	.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
+
+    // method line 1733
+    .method public hidebysig 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x1e0fd
+	// 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 1734
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection Scan ()  cil managed 
+    {
+        // Method begins at RVA 0x1e10c
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		class [System]System.Uri	V_0,
+		class [System]System.Collections.Specialized.StringCollection	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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PathScanner::Scan
+
+    // method line 1735
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection Scan (string name)  cil managed 
+    {
+        // Method begins at RVA 0x1e12c
+	// Code size 371 (0x173)
+	.maxstack 4
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
 		string	V_1,
-		class [mscorlib]System.Collections.Hashtable	V_2,
-		string	V_3,
+		class [System]System.Collections.Specialized.StringCollection	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,
+		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,
-		int32	V_12,
-		int32	V_13,
-		string	V_14)
+		string[]	V_12,
+		class [mscorlib]System.UnauthorizedAccessException	V_13,
+		class [mscorlib]System.IDisposable	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_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_0011:  nop 
-	IL_0012:  br IL_0293
+	IL_0014:  nop 
+	IL_0015:  ldloc.0 
+	IL_0016:  stloc.2 
+	IL_0017:  br IL_0171
 
-	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_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:  ldloc.1 
-	IL_002c:  call instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
-	IL_0031:  brfalse IL_004d
+	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_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_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_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_0052:  nop 
+	  IL_0053:  ldloc.s 4
+	  IL_0055:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_005a:  brfalse IL_006f
 
-	  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_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_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_006f:  nop 
+	  IL_0070:  leave IL_0142
 
-	  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_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_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_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_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_00a8:  nop 
+	  IL_00a9:  leave IL_0130
 
-	  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_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_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_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_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_00d6:  nop 
+	  IL_00d7:  leave IL_0130
 
-	  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_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_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_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_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_0104:  nop 
+	    IL_0105:  leave IL_012f
 
-	  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
+	  } // 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_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
+	  } // 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_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_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_01f0:  nop 
-	  IL_01f1:  ldloc.3 
-	  IL_01f2:  stloc.s 9
-	  IL_01f4:  nop 
-	  IL_01f5:  br IL_0209
+	  IL_014e:  leave IL_016a
 
-	  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
+	} // 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_0276:  nop 
-	  IL_0277:  leave IL_0286
+	  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
 
-	} // 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
+	IL_0171:  ldloc.2 
+	IL_0172:  ret 
+    } // end of method PathScanner::Scan
 
-    // method line 1849
-    .method public hidebysig 
-           instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 1736
+    .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 0x24818
-	// Code size 170 (0xaa)
+        // Method begins at RVA 0x1e2e0
+	// Code size 43 (0x2b)
 	.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)
+		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.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_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_0011:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_00a8
+	IL_0029:  ldloc.2 
+	IL_002a:  ret 
+    } // end of method PathScanner::Clone
 
-	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
+    // method line 1737
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1e317
+	// 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_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 of class NAnt.Core.PathScanner
+}
 
-	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
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit TaskContainer
+  	extends NAnt.Core.Task
+  {
+    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
 
-	IL_00a8:  ldloc.0 
-	IL_00a9:  ret 
-    } // end of method LocationMap::GetLocation
+    // method line 1738
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa340
+	// 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 1850
-    .method private hidebysig 
-           instance default string GetXPathFromNode (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 1739
+    .method family virtual hidebysig specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
     {
-        // Method begins at RVA 0x248d0
-	// Code size 246 (0xf6)
+        // Method begins at RVA 0xa348
+	// 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 1740
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xa360
+	// Code size 141 (0x8d)
 	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.XPath.XPathNavigator	V_0,
-		string	V_1,
+		class [mscorlib]System.Reflection.MemberInfo	V_0,
+		class [mscorlib]System.Reflection.MemberInfo[]	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.Attributes.BuildElementAttribute	V_3)
 	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_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 1741
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xa3f9
+	// 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 1742
+    .method family virtual hidebysig newslot 
+           instance default void ExecuteChildTasks ()  cil managed 
+    {
+        // Method begins at RVA 0xa404
+	// 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 
-	IL_000e:  ldc.i4.0 
-	IL_000f:  stloc.2 
-	IL_0010:  br IL_00b6
+	.try { // 0
+	  IL_000e:  br IL_0169
 
-	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_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_003a:  nop 
-	IL_003b:  ldloc.s 4
-	IL_003d:  stloc.2 
-	IL_003e:  nop 
-	IL_003f:  br IL_005d
+	  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_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_004c:  nop 
+	  IL_004d:  leave IL_0169
 
-	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_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_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_005e:  nop 
+	  IL_005f:  leave IL_0169
 
-	IL_009b:  nop 
-	IL_009c:  ldloc.s 5
-	IL_009e:  stloc.1 
-	IL_009f:  nop 
-	IL_00a0:  br IL_00b5
+	  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_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_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_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_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_00f3:  ldloc.s 7
-	IL_00f5:  ret 
-    } // end of method LocationMap::GetXPathFromNode
+	  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
 
-  .class nested private sequential ansi sealed serializable beforefieldinit TextPosition
-  	extends [mscorlib]System.ValueType
-  {
-    .field  public  int32 Line
-    .field  public  int32 Column
+	  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 1851
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 line, int32 column)  cil managed 
+	  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 1743
+    .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 0x249d2
-	// Code size 16 (0x10)
+        // Method begins at RVA 0xa5bc
+	// 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 1744
+    .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 0xa5e0
+	// 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 1745
+    .method family virtual hidebysig newslot 
+           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0xa604
+	// 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 1746
+    .method family virtual hidebysig newslot 
+           instance default void AddPrivateXmlElementName (string name)  cil managed 
+    {
+        // Method begins at RVA 0xa638
+	// Code size 58 (0x3a)
 	.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
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0007:  brtrue IL_0019
 
-  } // end of class TextPosition
+	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
 
-  } // end of class NAnt.Core.LocationMap
+	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 serializable beforefieldinit Task
-  	extends NAnt.Core.Element
-  {
+  .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  bool _failOnError
-    .field  private  bool _verbose
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-    .field  private  valuetype NAnt.Core.Level _threshold
+    .field  private static  class [mscorlib]System.Collections.Hashtable cachedCaseSensitiveRegexes
+    .field  private static  class [mscorlib]System.Collections.Hashtable cachedCaseInsensitiveRegexes
 
-    // method line 1852
-    .method family hidebysig specialname rtspecialname 
+    // method line 1747
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x4928
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x1e32d
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Task::_failOnError
+	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 1748
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (bool caseSensitive)  cil managed 
+    {
+        // Method begins at RVA 0x1e33b
+	// 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
+
+    // method line 1749
+    .method public final virtual hidebysig newslot 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x1e368
+	// 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:  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_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_000d:  brfalse IL_002a
 
-    // method line 1853
+	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_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_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_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_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_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_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_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_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_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_01a4:  ldloc.1 
+	IL_01a5:  ret 
+    } // end of method DirectoryScanner::Clone
+
+    // method line 1750
     .method public hidebysig specialname 
-           instance default bool get_FailOnError ()  cil managed 
+           instance default bool get_CaseSensitive ()  cil managed 
     {
-        // Method begins at RVA 0x494c
+        // Method begins at RVA 0x1e51c
 	// 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_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 Task::get_FailOnError
+    } // end of method DirectoryScanner::get_CaseSensitive
 
-    // method line 1854
+    // method line 1751
     .method public hidebysig specialname 
-           instance default void set_FailOnError (bool 'value')  cil managed 
+           instance default void set_CaseSensitive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4967
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1e537
+	// Code size 29 (0x1d)
 	.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
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
+	IL_0008:  beq IL_001c
 
-    // method line 1855
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Verbose ()  cil managed 
+	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 1752
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
     {
-        // Method begins at RVA 0x4974
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x1e558
+	// 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.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
+	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1856
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Verbose (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x49a2
-	// 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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DirectoryScanner::get_Includes
 
-    // method line 1857
+    // method line 1753
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
     {
-        // Method begins at RVA 0x49ac
+        // Method begins at RVA 0x1e574
 	// 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.Task::_ifDefined
+	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 Task::get_IfDefined
+    } // end of method DirectoryScanner::get_Excludes
 
-    // method line 1858
+    // method line 1754
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x49c7
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x1e590
+	// Code size 54 (0x36)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	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
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_0007:  brtrue IL_0028
 
-    // method line 1859
+	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_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method DirectoryScanner::get_BaseDirectory
+
+    // method line 1755
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x49d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x1e5d2
+	// Code size 60 (0x3c)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Task::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0020
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Task::get_UnlessDefined
+	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
 
-    // method line 1860
+	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 1756
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
     {
-        // Method begins at RVA 0x49ef
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x1e610
+	// 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:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Task::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Task::set_UnlessDefined
+	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_0007:  brtrue IL_0014
 
-    // method line 1861
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  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.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method DirectoryScanner::get_FileNames
+
+    // method line 1757
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
     {
-        // Method begins at RVA 0x49fc
-	// Code size 54 (0x36)
-	.maxstack 2
+        // Method begins at RVA 0x1e640
+	// Code size 34 (0x22)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class NAnt.Core.Attributes.TaskNameAttribute	V_1,
-		string	V_2)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	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.TaskNameAttribute
-	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.TaskNameAttribute
-	IL_001d:  stloc.1 
-	IL_001e:  ldloc.1 
-	IL_001f:  brfalse IL_002d
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0007:  brtrue IL_0014
 
-	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_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_0034:  ldloc.2 
-	IL_0035:  ret 
-    } // end of method Task::get_Name
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method DirectoryScanner::get_DirectoryNames
 
-    // method line 1862
+    // method line 1758
     .method public hidebysig specialname 
-           instance default string get_LogPrefix ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
     {
-        // Method begins at RVA 0x4a40
-	// Code size 48 (0x30)
-	.maxstack 3
+        // Method begins at RVA 0x1e670
+	// Code size 34 (0x22)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "["
-	IL_0006:  ldarg.0 
-	IL_0007:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_000c:  ldstr "] "
-	IL_0011:  call string string::Concat(string, string, string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_001e:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
-	IL_0023:  callvirt instance string string::PadLeft(int32)
-	IL_0028:  stloc.1 
-	IL_0029:  br IL_002e
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_0007:  brtrue IL_0014
 
-	IL_002e:  ldloc.1 
-	IL_002f:  ret 
-    } // end of method Task::get_LogPrefix
+	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 1863
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method DirectoryScanner::get_ScannedDirectories
+
+    // method line 1759
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+           instance default bool get_IsEverythingIncluded ()  cil managed 
     {
-        // Method begins at RVA 0x4a7c
+        // Method begins at RVA 0x1e6a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.Task::_threshold
+	IL_0002:  ldfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Task::get_Threshold
+    } // end of method DirectoryScanner::get_IsEverythingIncluded
 
-    // method line 1864
-    .method public hidebysig specialname 
-           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    // method line 1760
+    .method public hidebysig 
+           instance default void Scan ()  cil managed 
     {
-        // Method begins at RVA 0x4a97
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x1e6bc
+	// Code size 234 (0xea)
+	.maxstack 5
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.Task::_threshold
-	IL_0008:  ret 
-    } // end of method Task::set_Threshold
+	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
 
-    // method line 1865
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_TaskBuilder ()  cil managed 
+	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 1761
+    .method private hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x4aa4
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x1e7b4
+	// Code size 72 (0x48)
 	.maxstack 2
-	.locals init (
-		class NAnt.Core.TaskBuilder	V_0)
 	IL_0000:  nop 
-	IL_0001:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	IL_0006:  ldarg.0 
-	IL_0007:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_000c:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method Task::get_TaskBuilder
+	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 1866
-    .method public hidebysig 
-           instance default void Execute ()  cil managed 
+    // method line 1762
+    .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 0x4acc
-	// Code size 329 (0x149)
-	.maxstack 4
+        // Method begins at RVA 0x1e808
+	// Code size 345 (0x159)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.Exception	V_0,
+		string	V_0,
 		string	V_1,
-		class [mscorlib]System.Exception	V_2,
-		int32	V_3)
+		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:  ldsfld class [log4net]log4net.ILog NAnt.Core.Task::logger
-	IL_0006:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000b:  ldstr "String_TaskExecute"
+	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_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_0141:  ldloc.s 5
+	  IL_0143:  isinst [mscorlib]System.IDisposable
+	  IL_0148:  dup 
+	  IL_0149:  stloc.s 9
+	  IL_014b:  brfalse IL_0157
+
+	  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
+
+    // method line 1763
+    .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 0x1e98c
+	// 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 1764
+    .method private hidebysig 
+           instance default void ScanDirectory (string path, bool recursive)  cil managed 
+    {
+        // Method begins at RVA 0x1eb84
+	// 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_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_0074:  br IL_0114
+
+	  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_0125:  ldloc.s 6
+	  IL_0127:  isinst [mscorlib]System.IDisposable
+	  IL_012c:  dup 
+	  IL_012d:  stloc.s 9
+	  IL_012f:  brfalse IL_013b
+
+	  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_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_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_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_0198:  nop 
+	  IL_0199:  ldloc.s 10
+	  IL_019b:  ldfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
+	  IL_01a0:  brtrue IL_01ab
+
+	  IL_01a5:  nop 
+	  IL_01a6:  leave IL_01fd
+
+	  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_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_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_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 1765
+    .method private hidebysig 
+           instance default bool TestRegex (string path, class NAnt.Core.DirectoryScanner/RegexEntry entry)  cil managed 
+    {
+        // Method begins at RVA 0x1eec8
+	// 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_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 1766
+    .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 0x1efc8
+	// 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_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_0063:  ldloc.s 4
+	  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:  ldloc.0 
+	IL_007b:  brtrue IL_00de
+
+	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 1767
+    .method private static hidebysig 
+           default class [mscorlib]System.Text.StringBuilder CleanPath (string nantPath)  cil managed 
+    {
+        // Method begins at RVA 0x1f1e0
+	// 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_002b:  ldloc.1 
+	IL_002c:  ret 
+    } // end of method DirectoryScanner::CleanPath
+
+    // method line 1768
+    .method private static hidebysig 
+           default string CleanPath (string baseDirectory, string nantPath)  cil managed 
+    {
+        // Method begins at RVA 0x1f21c
+	// 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_0022:  ldloc.0 
+	IL_0023:  ret 
+    } // end of method DirectoryScanner::CleanPath
+
+    // method line 1769
+    .method private static hidebysig 
+           default string ToRegexPattern (string nantPattern)  cil managed 
+    {
+        // Method begins at RVA 0x1f24c
+	// 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_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_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_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 1770
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1f49b
+	// 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 1771
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1f4c5
+	// 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 1772
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1f4cd
+	// 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 1773
+    .method public virtual hidebysig newslot 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x1f4d8
+	// 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_0029:  ldloc.2 
+	IL_002a:  ret 
+    } // end of method StringCollectionWithGoodToString::Clone
+
+    // method line 1774
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x1f510
+	// 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_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_005d:  ldloc.2 
+	  IL_005e:  isinst [mscorlib]System.IDisposable
+	  IL_0063:  dup 
+	  IL_0064:  stloc.3 
+	  IL_0065:  brfalse IL_0070
+
+	  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_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 1775
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (bool caseSensitive)  cil managed 
+    {
+        // Method begins at RVA 0x1f5b0
+	// 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 1776
+    .method public hidebysig specialname 
+           instance default bool get_CaseSensitive ()  cil managed 
+    {
+        // Method begins at RVA 0x1f5c0
+	// 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 1777
+    .method public virtual hidebysig 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x1f5dc
+	// 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_002f:  ldloc.2 
+	IL_0030:  ret 
+    } // end of method DirScannerStringCollection::Clone
+
+    // method line 1778
+    .method public virtual hidebysig newslot 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1f61c
+	// 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 1779
+    .method public virtual hidebysig newslot 
+           instance default int32 IndexOf (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1f63c
+	// 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_0007:  ldarg.0 
+	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.1 
+	IL_0015:  call instance int32 class [System]System.Collections.Specialized.StringCollection::IndexOf(string)
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0082
+
+	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_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:  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_0056:  nop 
+	  IL_0057:  ldloc.2 
+	  IL_0058:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_005d:  brtrue IL_002e
+
+	  IL_0062:  leave IL_007b
+
+	} // 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_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_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 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 1780
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x4928
+	// 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 1781
+    .method public hidebysig specialname 
+           instance default bool get_FailOnError ()  cil managed 
+    {
+        // Method begins at RVA 0x494c
+	// 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 1782
+    .method public hidebysig specialname 
+           instance default void set_FailOnError (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4967
+	// 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 1783
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Verbose ()  cil managed 
+    {
+        // Method begins at RVA 0x4974
+	// 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 1784
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Verbose (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x49a2
+	// 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 1785
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x49ac
+	// 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 1786
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x49c7
+	// 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 1787
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x49d4
+	// 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::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Task::get_UnlessDefined
+
+    // method line 1788
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x49ef
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Task::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Task::set_UnlessDefined
+
+    // method line 1789
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x49fc
+	// Code size 54 (0x36)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		class NAnt.Core.Attributes.TaskNameAttribute	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.TaskNameAttribute
+	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.TaskNameAttribute
+	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 Task::get_Name
+
+    // method line 1790
+    .method public hidebysig specialname 
+           instance default string get_LogPrefix ()  cil managed 
+    {
+        // Method begins at RVA 0x4a40
+	// Code size 48 (0x30)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldstr "["
+	IL_0006:  ldarg.0 
+	IL_0007:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_000c:  ldstr "] "
+	IL_0011:  call string string::Concat(string, string, string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_001e:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
+	IL_0023:  callvirt instance string string::PadLeft(int32)
+	IL_0028:  stloc.1 
+	IL_0029:  br IL_002e
+
+	IL_002e:  ldloc.1 
+	IL_002f:  ret 
+    } // end of method Task::get_LogPrefix
+
+    // method line 1791
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+    {
+        // Method begins at RVA 0x4a7c
+	// 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.Task::_threshold
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Task::get_Threshold
+
+    // method line 1792
+    .method public hidebysig specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4a97
+	// 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.Task::_threshold
+	IL_0008:  ret 
+    } // end of method Task::set_Threshold
+
+    // method line 1793
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.TaskBuilder get_TaskBuilder ()  cil managed 
+    {
+        // Method begins at RVA 0x4aa4
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.TaskBuilder	V_0)
+	IL_0000:  nop 
+	IL_0001:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	IL_0006:  ldarg.0 
+	IL_0007:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_000c:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method Task::get_TaskBuilder
+
+    // method line 1794
+    .method public hidebysig 
+           instance default void Execute ()  cil managed 
+    {
+        // Method begins at RVA 0x4acc
+	// Code size 329 (0x149)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Exception	V_0,
+		string	V_1,
+		class [mscorlib]System.Exception	V_2,
+		int32	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [log4net]log4net.ILog NAnt.Core.Task::logger
+	IL_0006:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000b:  ldstr "String_TaskExecute"
 	IL_0010:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
 	IL_0015:  ldarg.0 
 	IL_0016:  callvirt instance string class NAnt.Core.Element::get_Name()
@@ -70700,7 +67801,7 @@
 	IL_0148:  ret 
     } // end of method Task::Execute
 
-    // method line 1867
+    // method line 1795
     .method public virtual hidebysig 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
     {
@@ -70751,7 +67852,7 @@
 	IL_0067:  ret 
     } // end of method Task::Log
 
-    // method line 1868
+    // method line 1796
     .method public virtual hidebysig 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
@@ -70773,7 +67874,7 @@
 	IL_0016:  ret 
     } // end of method Task::Log
 
-    // method line 1869
+    // method line 1797
     .method public hidebysig 
            instance default bool IsLogEnabledFor (valuetype NAnt.Core.Level messageLevel)  cil managed 
     {
@@ -70814,7 +67915,7 @@
 	IL_0041:  ret 
     } // end of method Task::IsLogEnabledFor
 
-    // method line 1870
+    // method line 1798
     .method public hidebysig 
            instance default void InitializeTaskConfiguration ()  cil managed 
     {
@@ -71177,7 +68278,7 @@
 	IL_033f:  ret 
     } // end of method Task::InitializeTaskConfiguration
 
-    // method line 1871
+    // method line 1799
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
@@ -71192,7 +68293,7 @@
 	IL_000d:  ret 
     } // end of method Task::Initialize
 
-    // method line 1872
+    // method line 1800
     .method family virtual hidebysig newslot 
            instance default void InitializeTask (class [System.Xml]System.Xml.XmlNode taskNode)  cil managed 
     {
@@ -71208,14 +68309,14 @@
 	IL_0001:  ret 
     } // end of method Task::InitializeTask
 
-    // method line 1873
+    // method line 1801
     .method family virtual hidebysig newslot abstract 
            instance default void ExecuteTask ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method Task::ExecuteTask
 
-    // method line 1874
+    // method line 1802
     .method family virtual hidebysig 
            instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
     {
@@ -71254,7 +68355,7 @@
 	IL_0037:  ret 
     } // end of method Task::GetAttributeConfigurationNode
 
-    // method line 1875
+    // method line 1803
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
@@ -71331,2879 +68432,7909 @@
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit ElementContainer
+  .class public auto ansi sealed serializable beforefieldinit Target
   	extends NAnt.Core.Element
-  {
-    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
+  	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
 
-    // method line 1876
+    // method line 1804
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa8d4
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1f6dc
+	// Code size 19 (0x13)
 	.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_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
 
-    // method line 1877
-    .method family virtual hidebysig specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
+    // method line 1805
+    .method public hidebysig specialname 
+           instance default bool get_Executed ()  cil managed 
     {
-        // Method begins at RVA 0xa8dc
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x1f6f0
+	// Code size 15 (0xf)
 	.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_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Target::_executed
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ElementContainer::get_CustomXmlProcessing
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Executed
 
-    // method line 1878
-    .method public virtual hidebysig newslot 
-           instance default void Execute ()  cil managed 
+    // method line 1806
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xa8f2
-	// Code size 8 (0x8)
+        // Method begins at RVA 0x1f70c
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Name
+
+    // method line 1807
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1f727
+	// Code size 9 (0x9)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Target::_name
+	IL_0008:  ret 
+    } // end of method Target::set_Name
 
-    // method line 1879
-    .method family virtual hidebysig newslot 
-           instance default void ExecuteChildTasks ()  cil managed 
+    // method line 1808
+    .method public hidebysig specialname 
+           instance default string get_IfCondition ()  cil managed 
     {
-        // Method begins at RVA 0xa8fc
-	// Code size 400 (0x190)
-	.maxstack 7
+        // Method begins at RVA 0x1f734
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		string	V_0)
 	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_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Target::_ifCondition
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_IfCondition
 
-    // method line 1880
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.Task CreateChildTask (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 1809
+    .method public hidebysig specialname 
+           instance default void set_IfCondition (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xaab4
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Task	V_0)
+        // Method begins at RVA 0x1f74f
+	// Code size 14 (0xe)
+	.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:  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
+	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 1881
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.DataTypeBase CreateChildDataTypeBase (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 1810
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xaad8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x1f760
+	// Code size 104 (0x68)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+		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:  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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ElementContainer::CreateChildDataTypeBase
+	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
 
-    // method line 1882
-    .method family virtual hidebysig newslot 
-           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+	} // 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 1811
+    .method public hidebysig specialname 
+           instance default string get_UnlessCondition ()  cil managed 
     {
-        // Method begins at RVA 0xaafc
-	// Code size 40 (0x28)
-	.maxstack 2
+        // Method begins at RVA 0x1f7e4
+	// 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 [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_0002:  ldfld string NAnt.Core.Target::_unlessCondition
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method ElementContainer::IsPrivateXmlElement
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_UnlessCondition
 
-    // method line 1883
-    .method family virtual hidebysig newslot 
-           instance default void AddPrivateXmlElementName (string name)  cil managed 
+    // method line 1812
+    .method public hidebysig specialname 
+           instance default void set_UnlessCondition (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xab30
-	// Code size 54 (0x36)
+        // Method begins at RVA 0x1f7ff
+	// Code size 14 (0xe)
 	.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_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 1813
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x1f810
+	// 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:  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_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_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
+	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
 
-	.property instance bool CustomXmlProcessing ()
-	{
-		.get instance default bool NAnt.Core.ElementContainer::get_CustomXmlProcessing () 
-	}
-  } // end of class NAnt.Core.ElementContainer
-}
+	} // 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
 
-.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_0066:  ldloc.1 
+	IL_0067:  ret 
+    } // end of method Target::get_UnlessDefined
 
-    // method line 1884
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    // method line 1814
+    .method public hidebysig specialname 
+           instance default void set_Description (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1fce8
-	// Code size 39 (0x27)
+        // Method begins at RVA 0x1f894
+	// Code size 9 (0x9)
 	.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:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Target::_description
+	IL_0008:  ret 
+    } // end of method Target::set_Description
 
-    // method line 1885
+    // method line 1815
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+           instance default string get_Description ()  cil managed 
     {
-        // Method begins at RVA 0x1fd10
+        // Method begins at RVA 0x1f8a0
 	// 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.ExpressionEvalBase::_project
+	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 ExpressionEvalBase::get_Project
-
-    // method line 1886
-    .method public hidebysig 
-           instance default object Evaluate (class NAnt.Core.ExpressionTokenizer tokenizer)  cil managed 
-    {
-        // Method begins at RVA 0x1fd2c
-	// Code size 29 (0x1d)
-	.maxstack 2
-	.locals init (
-		object	V_0)
-	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_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_001b:  ldloc.0 
-	IL_001c:  ret 
-    } // end of method ExpressionEvalBase::Evaluate
+    } // end of method Target::get_Description
 
-    // method line 1887
-    .method public hidebysig 
-           instance default object Evaluate (string s)  cil managed 
+    // method line 1816
+    .method public hidebysig specialname 
+           instance default void set_DependsListString (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1fd58
-	// Code size 88 (0x58)
-	.maxstack 3
+        // Method begins at RVA 0x1f8bc
+	// Code size 86 (0x56)
+	.maxstack 5
 	.locals init (
-		object	V_0,
-		object	V_1)
+		string	V_0,
+		string[]	V_1,
+		int32	V_2,
+		string	V_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.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_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_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_0056:  ldloc.1 
-	IL_0057:  ret 
-    } // end of method ExpressionEvalBase::Evaluate
+	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
 
-    // method line 1888
-    .method public hidebysig 
-           instance default void CheckSyntax (string s)  cil managed 
-    {
-        // Method begins at RVA 0x1fdbc
-	// Code size 80 (0x50)
-	.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_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_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_0055:  ret 
+    } // end of method Target::set_DependsListString
 
-    // method line 1889
-    .method private hidebysig 
-           instance default bool SyntaxCheckOnly ()  cil managed 
+    // method line 1817
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Dependencies ()  cil managed 
     {
-        // Method begins at RVA 0x1fe18
-	// Code size 18 (0x12)
-	.maxstack 2
+        // Method begins at RVA 0x1f920
+	// 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 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.Target::_dependencies
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method ExpressionEvalBase::SyntaxCheckOnly
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Dependencies
 
-    // method line 1890
-    .method private hidebysig 
-           instance default object ParseExpression ()  cil managed 
+    // method line 1818
+    .method private final virtual hidebysig newslot 
+           instance default object System.ICloneable.Clone ()  cil managed 
     {
-        // Method begins at RVA 0x1fe38
+        // Method begins at RVA 0x1f93c
+	.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 object class NAnt.Core.ExpressionEvalBase::ParseBooleanOr()
+	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 ExpressionEvalBase::ParseExpression
+    } // end of method Target::System.ICloneable.Clone
 
-    // method line 1891
-    .method private hidebysig 
-           instance default object ParseBooleanOr ()  cil managed 
+    // method line 1819
+    .method public hidebysig 
+           instance default class NAnt.Core.Target Clone ()  cil managed 
     {
-        // Method begins at RVA 0x1fe54
-	// Code size 256 (0x100)
-	.maxstack 6
+        // Method begins at RVA 0x1f958
+	// Code size 95 (0x5f)
+	.maxstack 2
 	.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 NAnt.Core.Target	V_0,
+		class NAnt.Core.Target	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::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 
-	.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 '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_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_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_00c9:  ldloc.s 7
-	  IL_00cb:  br.s IL_00ce
-
-	  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_00eb:  ldloc.1 
-	  IL_00ec:  stloc.s 8
-	  IL_00ee:  leave IL_00fd
+	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
 
-	} // 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
+	IL_005d:  ldloc.1 
+	IL_005e:  ret 
+    } // end of method Target::Clone
 
-    // method line 1892
-    .method private hidebysig 
-           instance default object ParseBooleanAnd ()  cil managed 
+    // method line 1820
+    .method public hidebysig 
+           instance default void Execute ()  cil managed 
     {
-        // Method begins at RVA 0x1ff70
-	// Code size 256 (0x100)
-	.maxstack 6
+        // Method begins at RVA 0x1f9c4
+	// Code size 473 (0x1d9)
+	.maxstack 7
 	.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 [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:  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_0002:  call instance bool class NAnt.Core.Target::get_IfDefined()
+	IL_0007:  brfalse IL_01d8
 
-	  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_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Target::get_UnlessDefined()
+	IL_0012:  brtrue IL_01d8
 
-	  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_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_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_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_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_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_00c9:  ldloc.s 7
-	  IL_00cb:  br.s IL_00ce
+	    IL_0076:  nop 
+	    IL_0077:  leave IL_018f
 
-	  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_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_00eb:  ldloc.1 
-	  IL_00ec:  stloc.s 8
-	  IL_00ee:  leave IL_00fd
+	    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
 
-	} // 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_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
 
-    // method line 1893
-    .method private hidebysig 
-           instance default object ParseRelationalExpression ()  cil managed 
-    {
-        // Method begins at RVA 0x2008c
-	// 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_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_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_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_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_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_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_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_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_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_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_019a:  leave IL_01b5
 
-	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 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_00b3:  nop 
-	IL_00b4:  ldnull 
-	IL_00b5:  stloc.s 5
-	IL_00b7:  br IL_1536
+	    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_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
+	} // 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_00e1:  ldloc.1 
-	IL_00e2:  isinst [mscorlib]System.String
-	IL_00e7:  brfalse IL_010b
+	.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_00ec:  ldloc.3 
-	IL_00ed:  isinst [mscorlib]System.String
-	IL_00f2:  brfalse IL_010b
+		.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_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_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_010b:  ldloc.1 
-	IL_010c:  isinst [mscorlib]System.Boolean
-	IL_0111:  brfalse IL_0135
+		.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_0116:  ldloc.3 
-	IL_0117:  isinst [mscorlib]System.Boolean
-	IL_011c:  brfalse IL_0135
+		.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_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
+		.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_0135:  ldloc.1 
-	IL_0136:  isinst [mscorlib]System.Int32
-	IL_013b:  brfalse IL_015f
+		.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_0140:  ldloc.3 
-	IL_0141:  isinst [mscorlib]System.Int32
-	IL_0146:  brfalse IL_015f
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit BuildException
+  	extends [mscorlib]System.ApplicationException
+  {
+    .field  private  class NAnt.Core.Location _location
 
-	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 1821
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1ce98
+	// 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
 
-	IL_015f:  ldloc.1 
-	IL_0160:  isinst [mscorlib]System.Int32
-	IL_0165:  brfalse IL_0198
+    // method line 1822
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message)  cil managed 
+    {
+        // Method begins at RVA 0x1ceac
+	// 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
 
-	IL_016a:  ldloc.3 
-	IL_016b:  isinst [mscorlib]System.Int64
-	IL_0170:  brfalse IL_0198
+    // method line 1823
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
+    {
+        // Method begins at RVA 0x1cec1
+	// 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
 
-	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
+    // method line 1824
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x1ced7
+	// 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
 
-	IL_0198:  ldloc.1 
-	IL_0199:  isinst [mscorlib]System.Int32
-	IL_019e:  brfalse IL_01d1
+    // method line 1825
+    .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 0x1cef3
+	// 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
 
-	IL_01a3:  ldloc.3 
-	IL_01a4:  isinst [mscorlib]System.Double
-	IL_01a9:  brfalse IL_01d1
+    // method line 1826
+    .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 0x1cf10
+	// 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
 
-	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
+    // method line 1827
+    .method public hidebysig specialname 
+           instance default string get_RawMessage ()  cil managed 
+    {
+        // Method begins at RVA 0x1cf48
+	// 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_01d1:  ldloc.1 
-	IL_01d2:  isinst [mscorlib]System.Int64
-	IL_01d7:  brfalse IL_01fb
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildException::get_RawMessage
 
-	IL_01dc:  ldloc.3 
-	IL_01dd:  isinst [mscorlib]System.Int64
-	IL_01e2:  brfalse IL_01fb
+    // method line 1828
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Location get_Location ()  cil managed 
+    {
+        // Method begins at RVA 0x1cf64
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildException::get_Location
 
-	IL_01fb:  ldloc.1 
-	IL_01fc:  isinst [mscorlib]System.Int64
-	IL_0201:  brfalse IL_022f
+    // method line 1829
+    .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 0x1cf7f
+        .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
 
-	IL_0206:  ldloc.3 
-	IL_0207:  isinst [mscorlib]System.Int32
-	IL_020c:  brfalse IL_022f
+    // method line 1830
+    .method public virtual hidebysig specialname 
+           instance default string get_Message ()  cil managed 
+    {
+        // Method begins at RVA 0x1cf9c
+	// 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_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_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_022f:  ldloc.1 
-	IL_0230:  isinst [mscorlib]System.Int64
-	IL_0235:  brfalse IL_0268
+	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_023a:  ldloc.3 
-	IL_023b:  isinst [mscorlib]System.Double
-	IL_0240:  brfalse IL_0268
+	IL_0048:  ldloc.2 
+	IL_0049:  ret 
+    } // end of method BuildException::get_Message
 
-	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 1831
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x1cff4
+	// 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_0268:  ldloc.1 
-	IL_0269:  isinst [mscorlib]System.Double
-	IL_026e:  brfalse IL_0292
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method BuildException::ToString
 
-	IL_0273:  ldloc.3 
-	IL_0274:  isinst [mscorlib]System.Double
-	IL_0279:  brfalse IL_0292
+	.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
+}
 
-	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
+.namespace NAnt.Core
+{
+  .class private auto ansi serializable beforefieldinit LocationMap
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Collections.Hashtable _fileMap
 
-	IL_0292:  ldloc.1 
-	IL_0293:  isinst [mscorlib]System.Double
-	IL_0298:  brfalse IL_02c6
+    // method line 1832
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1fbe0
+	// 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_029d:  ldloc.3 
-	IL_029e:  isinst [mscorlib]System.Int32
-	IL_02a3:  brfalse IL_02c6
+    // method line 1833
+    .method public hidebysig 
+           instance default bool FileIsMapped (string fileOrUri)  cil managed 
+    {
+        // Method begins at RVA 0x1fbf4
+	// 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_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_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method LocationMap::FileIsMapped
 
-	IL_02c6:  ldloc.1 
-	IL_02c7:  isinst [mscorlib]System.Double
-	IL_02cc:  brfalse IL_02fa
+    // method line 1834
+    .method public hidebysig 
+           instance default void Add (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+    {
+        // Method begins at RVA 0x1fc24
+	// 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_02d1:  ldloc.3 
-	IL_02d2:  isinst [mscorlib]System.Int64
-	IL_02d7:  brfalse IL_02fa
+	IL_0011:  nop 
+	IL_0012:  br IL_0293
 
-	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_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_02fa:  ldloc.1 
-	IL_02fb:  isinst [mscorlib]System.DateTime
-	IL_0300:  brfalse IL_0324
+	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_0305:  ldloc.3 
-	IL_0306:  isinst [mscorlib]System.DateTime
-	IL_030b:  brfalse IL_0324
+	  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_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_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_0324:  ldloc.1 
-	IL_0325:  isinst [mscorlib]System.TimeSpan
-	IL_032a:  brfalse IL_034e
+	  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_032f:  ldloc.3 
-	IL_0330:  isinst [mscorlib]System.TimeSpan
-	IL_0335:  brfalse IL_034e
+	  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_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_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_034e:  ldloc.1 
-	IL_034f:  isinst [mscorlib]System.Version
-	IL_0354:  brfalse IL_0378
+	  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_0359:  ldloc.3 
-	IL_035a:  isinst [mscorlib]System.Version
-	IL_035f:  brfalse IL_0378
+	  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_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_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_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_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_0388:  nop 
-	IL_0389:  ldloc.3 
-	IL_038a:  isinst [mscorlib]System.String
-	IL_038f:  brfalse IL_03b9
+	  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_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
+	  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_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_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_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_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_03e8:  nop 
-	IL_03e9:  ldloc.1 
-	IL_03ea:  isinst [mscorlib]System.String
-	IL_03ef:  brfalse IL_0419
+	  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_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
+	  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_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_01f0:  nop 
+	  IL_01f1:  ldloc.3 
+	  IL_01f2:  stloc.s 9
+	  IL_01f4:  nop 
+	  IL_01f5:  br IL_0209
 
-	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_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_0479:  ldloc.3 
-	IL_047a:  isinst [mscorlib]System.String
-	IL_047f:  brfalse IL_049b
+	  IL_0276:  nop 
+	  IL_0277:  leave IL_0286
 
-	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
+	} // 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
 
-	IL_049b:  ldloc.1 
-	IL_049c:  isinst [mscorlib]System.Boolean
-	IL_04a1:  brfalse IL_04c8
+    // method line 1835
+    .method public hidebysig 
+           instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x1fee0
+	// 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_04a6:  ldloc.3 
-	IL_04a7:  isinst [mscorlib]System.Boolean
-	IL_04ac:  brfalse IL_04c8
+	IL_0011:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_00a8
 
-	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_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_04c8:  ldloc.1 
-	IL_04c9:  isinst [mscorlib]System.Int32
-	IL_04ce:  brfalse IL_04f5
+	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_04d3:  ldloc.3 
-	IL_04d4:  isinst [mscorlib]System.Int32
-	IL_04d9:  brfalse IL_04f5
+	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_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
+	IL_00a8:  ldloc.0 
+	IL_00a9:  ret 
+    } // end of method LocationMap::GetLocation
 
-	IL_04f5:  ldloc.1 
-	IL_04f6:  isinst [mscorlib]System.Int32
-	IL_04fb:  brfalse IL_0531
+    // method line 1836
+    .method private hidebysig 
+           instance default string GetXPathFromNode (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x1ff98
+	// 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_0500:  ldloc.3 
-	IL_0501:  isinst [mscorlib]System.Int64
-	IL_0506:  brfalse IL_0531
+	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_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_003a:  nop 
+	IL_003b:  ldloc.s 4
+	IL_003d:  stloc.2 
+	IL_003e:  nop 
+	IL_003f:  br IL_005d
 
-	IL_0531:  ldloc.1 
-	IL_0532:  isinst [mscorlib]System.Int32
-	IL_0537:  brfalse IL_056d
+	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_053c:  ldloc.3 
-	IL_053d:  isinst [mscorlib]System.Double
-	IL_0542:  brfalse IL_056d
+	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_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_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_056d:  ldloc.1 
-	IL_056e:  isinst [mscorlib]System.Int64
-	IL_0573:  brfalse IL_059a
+	IL_009b:  nop 
+	IL_009c:  ldloc.s 5
+	IL_009e:  stloc.1 
+	IL_009f:  nop 
+	IL_00a0:  br IL_00b5
 
-	IL_0578:  ldloc.3 
-	IL_0579:  isinst [mscorlib]System.Int64
-	IL_057e:  brfalse IL_059a
+	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_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_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_059a:  ldloc.1 
-	IL_059b:  isinst [mscorlib]System.Int64
-	IL_05a0:  brfalse IL_05d1
+	IL_00f3:  ldloc.s 7
+	IL_00f5:  ret 
+    } // end of method LocationMap::GetXPathFromNode
 
-	IL_05a5:  ldloc.3 
-	IL_05a6:  isinst [mscorlib]System.Int32
-	IL_05ab:  brfalse IL_05d1
+  .class nested private sequential ansi sealed serializable beforefieldinit TextPosition
+  	extends [mscorlib]System.ValueType
+  {
+    .field  public  int32 Line
+    .field  public  int32 Column
 
-	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 1837
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 line, int32 column)  cil managed 
+    {
+        // Method begins at RVA 0x2009a
+	// 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
 
-	IL_05d1:  ldloc.1 
-	IL_05d2:  isinst [mscorlib]System.Int64
-	IL_05d7:  brfalse IL_060d
+  } // end of class TextPosition
 
-	IL_05dc:  ldloc.3 
-	IL_05dd:  isinst [mscorlib]System.Double
-	IL_05e2:  brfalse IL_060d
+  } // end of class NAnt.Core.LocationMap
+}
 
-	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
+.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_060d:  ldloc.1 
-	IL_060e:  isinst [mscorlib]System.Double
-	IL_0613:  brfalse IL_063a
+    .field  public static initonly  bool IsUnix
 
-	IL_0618:  ldloc.3 
-	IL_0619:  isinst [mscorlib]System.Double
-	IL_061e:  brfalse IL_063a
+    // method line 1838
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x200ac
+	// 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_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
+	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_063a:  ldloc.1 
-	IL_063b:  isinst [mscorlib]System.Double
-	IL_0640:  brfalse IL_0671
+	IL_0031:  ldloc.0 
+	IL_0032:  ldc.i4.6 
+	IL_0033:  beq IL_0043
 
-	IL_0645:  ldloc.3 
-	IL_0646:  isinst [mscorlib]System.Int32
-	IL_064b:  brfalse IL_0671
+	IL_0038:  ldloc.0 
+	IL_0039:  ldc.i4 128
+	IL_003e:  bne.un IL_0049
 
-	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_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_0671:  ldloc.1 
-	IL_0672:  isinst [mscorlib]System.Double
-	IL_0677:  brfalse IL_06a8
+    // method line 1839
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2010f
+	// 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_067c:  ldloc.3 
-	IL_067d:  isinst [mscorlib]System.Int64
-	IL_0682:  brfalse IL_06a8
+    // method line 1840
+    .method public static hidebysig 
+           default bool IsVolumeCaseSensitive (string path)  cil managed 
+    {
+        // Method begins at RVA 0x20118
+	// 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_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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformHelper::IsVolumeCaseSensitive
 
-	IL_06a8:  ldloc.1 
-	IL_06a9:  isinst [mscorlib]System.DateTime
-	IL_06ae:  brfalse IL_06d5
+    // method line 1841
+    .method assembly static hidebysig specialname 
+           default bool get_Is64Bit ()  cil managed 
+    {
+        // Method begins at RVA 0x20134
+	// 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_06b3:  ldloc.3 
-	IL_06b4:  isinst [mscorlib]System.DateTime
-	IL_06b9:  brfalse IL_06d5
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method PlatformHelper::get_Is64Bit
 
-	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 1842
+    .method assembly static hidebysig specialname 
+           default bool get_Is32Bit ()  cil managed 
+    {
+        // Method begins at RVA 0x20154
+	// 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_06d5:  ldloc.1 
-	IL_06d6:  isinst [mscorlib]System.TimeSpan
-	IL_06db:  brfalse IL_0702
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method PlatformHelper::get_Is32Bit
 
-	IL_06e0:  ldloc.3 
-	IL_06e1:  isinst [mscorlib]System.TimeSpan
-	IL_06e6:  brfalse IL_0702
+    // method line 1843
+    .method public static hidebysig specialname 
+           default bool get_IsWindows ()  cil managed 
+    {
+        // Method begins at RVA 0x20174
+	// 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_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_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method PlatformHelper::get_IsWindows
 
-	IL_0702:  ldloc.1 
-	IL_0703:  isinst [mscorlib]System.Version
-	IL_0708:  brfalse IL_072f
+	.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_070d:  ldloc.3 
-	IL_070e:  isinst [mscorlib]System.Version
-	IL_0713:  brfalse IL_072f
+.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_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
+    // method line 1844
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x20191
+	// 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
 
-	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 1845
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.StopWatchStack stopWatchStack)  cil managed 
+    {
+        // Method begins at RVA 0x201a4
+	// 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_073f:  nop 
-	IL_0740:  ldloc.3 
-	IL_0741:  isinst [mscorlib]System.String
-	IL_0746:  brfalse IL_0773
+    // method line 1846
+    .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 0x201f4
+	// 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_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
+    // method line 1847
+    .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 0x202bc
+	// 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
 
-	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 1848
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x20314
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		string	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_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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlLogger::ToString
 
-	IL_07a5:  nop 
-	IL_07a6:  ldloc.1 
-	IL_07a7:  isinst [mscorlib]System.String
-	IL_07ac:  brfalse IL_07d9
+    // method line 1849
+    .method public final virtual hidebysig newslot 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x20334
+	// Code size 102 (0x66)
+	.maxstack 3
+	.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:  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_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
+	} // end .try 0
+	finally  { // 0
+	  IL_004f:  ldloc.1 
+	  IL_0050:  brfalse.s IL_0058
 
-	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
+	  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
 
-	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
+    // method line 1850
+    .method public final virtual hidebysig newslot 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x203b8
+	// Code size 332 (0x14c)
+	.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)
+	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.2 
+	  IL_0014:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
+	  IL_0019:  brfalse IL_0047
 
-	IL_083c:  ldloc.3 
-	IL_083d:  isinst [mscorlib]System.String
-	IL_0842:  brfalse IL_086e
+	  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_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
+	} // end .try 0
+	finally  { // 0
+	  IL_0069:  ldloc.1 
+	  IL_006a:  brfalse.s IL_0072
 
-	IL_086e:  ldloc.1 
-	IL_086f:  isinst [mscorlib]System.Boolean
-	IL_0874:  brfalse IL_08a0
+	  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_0879:  ldloc.3 
-	IL_087a:  isinst [mscorlib]System.Boolean
-	IL_087f:  brfalse IL_08a0
+	IL_008f:  nop 
+	IL_0090:  br IL_014b
 
-	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
+	.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_08a0:  ldloc.1 
-	IL_08a1:  isinst [mscorlib]System.Int32
-	IL_08a6:  brfalse IL_08d2
+	  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_08ab:  ldloc.3 
-	IL_08ac:  isinst [mscorlib]System.Int32
-	IL_08b1:  brfalse IL_08d2
+	  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_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_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_08d2:  ldloc.1 
-	IL_08d3:  isinst [mscorlib]System.Int32
-	IL_08d8:  brfalse IL_0909
+	  } // end .try 1
+	  finally  { // 1
+	    IL_0127:  ldloc.3 
+	    IL_0128:  brfalse IL_0133
 
-	IL_08dd:  ldloc.3 
-	IL_08de:  isinst [mscorlib]System.Int64
-	IL_08e3:  brfalse IL_0909
+	    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_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
+	} // 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_0909:  ldloc.1 
-	IL_090a:  isinst [mscorlib]System.Int32
-	IL_090f:  brfalse IL_0940
+    // method line 1851
+    .method public final virtual hidebysig newslot 
+           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x20538
+	// Code size 91 (0x5b)
+	.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:  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_0914:  ldloc.3 
-	IL_0915:  isinst [mscorlib]System.Double
-	IL_091a:  brfalse IL_0940
+	} // end .try 0
+	finally  { // 0
+	  IL_0050:  ldloc.1 
+	  IL_0051:  brfalse.s IL_0059
 
-	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_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
 
-	IL_0940:  ldloc.1 
-	IL_0941:  isinst [mscorlib]System.Int64
-	IL_0946:  brfalse IL_0972
+    // method line 1852
+    .method public final virtual hidebysig newslot 
+           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x205b0
+	// 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
 
-	IL_094b:  ldloc.3 
-	IL_094c:  isinst [mscorlib]System.Int64
-	IL_0951:  brfalse IL_0972
+	} // end .try 0
+	finally  { // 0
+	  IL_0035:  ldloc.1 
+	  IL_0036:  brfalse.s IL_003e
 
-	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_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_0972:  ldloc.1 
-	IL_0973:  isinst [mscorlib]System.Int64
-	IL_0978:  brfalse IL_09ae
+    // method line 1853
+    .method public final virtual hidebysig newslot 
+           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2060c
+	// Code size 91 (0x5b)
+	.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:  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_097d:  ldloc.3 
-	IL_097e:  isinst [mscorlib]System.Int32
-	IL_0983:  brfalse IL_09ae
+	} // end .try 0
+	finally  { // 0
+	  IL_0050:  ldloc.1 
+	  IL_0051:  brfalse.s IL_0059
 
-	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_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_09ae:  ldloc.1 
-	IL_09af:  isinst [mscorlib]System.Int64
-	IL_09b4:  brfalse IL_09e5
+    // method line 1854
+    .method public final virtual hidebysig newslot 
+           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x20684
+	// 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
 
-	IL_09b9:  ldloc.3 
-	IL_09ba:  isinst [mscorlib]System.Double
-	IL_09bf:  brfalse IL_09e5
+	} // end .try 0
+	finally  { // 0
+	  IL_0035:  ldloc.1 
+	  IL_0036:  brfalse.s IL_003e
 
-	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_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
 
-	IL_09e5:  ldloc.1 
-	IL_09e6:  isinst [mscorlib]System.Double
-	IL_09eb:  brfalse IL_0a17
+    // method line 1855
+    .method private hidebysig 
+           instance default void WriteDuration ()  cil managed 
+    {
+        // Method begins at RVA 0x206e0
+	// 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
 
-	IL_09f0:  ldloc.3 
-	IL_09f1:  isinst [mscorlib]System.Double
-	IL_09f6:  brfalse IL_0a17
+    // method line 1856
+    .method public final virtual hidebysig newslot 
+           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x20718
+	// 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
 
-	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_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_0a17:  ldloc.1 
-	IL_0a18:  isinst [mscorlib]System.Double
-	IL_0a1d:  brfalse IL_0a53
+	IL_0031:  nop 
+	IL_0032:  br IL_00ed
 
-	IL_0a22:  ldloc.3 
-	IL_0a23:  isinst [mscorlib]System.Int32
-	IL_0a28:  brfalse IL_0a53
+	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
 
-	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_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_0a53:  ldloc.1 
-	IL_0a54:  isinst [mscorlib]System.Double
-	IL_0a59:  brfalse IL_0a8f
+	  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_0a5e:  ldloc.3 
-	IL_0a5f:  isinst [mscorlib]System.Int64
-	IL_0a64:  brfalse IL_0a8f
+	} // end .try 0
+	finally  { // 0
+	  IL_00e2:  ldloc.2 
+	  IL_00e3:  brfalse.s IL_00eb
 
-	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_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
 
-	IL_0a8f:  ldloc.1 
-	IL_0a90:  isinst [mscorlib]System.DateTime
-	IL_0a95:  brfalse IL_0ac1
+    // method line 1857
+    .method public final virtual hidebysig newslot specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+    {
+        // Method begins at RVA 0x20824
+	// 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.XmlLogger::_threshold
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0a9a:  ldloc.3 
-	IL_0a9b:  isinst [mscorlib]System.DateTime
-	IL_0aa0:  brfalse IL_0ac1
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XmlLogger::get_Threshold
 
-	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 1858
+    .method public final virtual hidebysig newslot specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2083f
+	// 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_0008:  ret 
+    } // end of method XmlLogger::set_Threshold
 
-	IL_0ac1:  ldloc.1 
-	IL_0ac2:  isinst [mscorlib]System.TimeSpan
-	IL_0ac7:  brfalse IL_0af3
+    // method line 1859
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_EmacsMode ()  cil managed 
+    {
+        // Method begins at RVA 0x2084c
+	// 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_0acc:  ldloc.3 
-	IL_0acd:  isinst [mscorlib]System.TimeSpan
-	IL_0ad2:  brfalse IL_0af3
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method XmlLogger::get_EmacsMode
 
-	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
+    // method line 1860
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20862
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method XmlLogger::set_EmacsMode
 
-	IL_0af3:  ldloc.1 
-	IL_0af4:  isinst [mscorlib]System.Version
-	IL_0af9:  brfalse IL_0b25
+    // method line 1861
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    {
+        // Method begins at RVA 0x20868
+	// 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.XmlLogger::_outputWriter
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0afe:  ldloc.3 
-	IL_0aff:  isinst [mscorlib]System.Version
-	IL_0b04:  brfalse IL_0b25
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XmlLogger::get_OutputWriter
 
-	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
+    // method line 1862
+    .method public final virtual hidebysig newslot specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20883
+	// 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_0008:  ret 
+    } // end of method XmlLogger::set_OutputWriter
 
-	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 1863
+    .method public final virtual hidebysig newslot 
+           instance default void Flush ()  cil managed 
+    {
+        // Method begins at RVA 0x20890
+	// Code size 47 (0x2f)
+	.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:  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_0b66:  ldloc.3 
-	IL_0b67:  isinst [mscorlib]System.String
-	IL_0b6c:  brfalse IL_0b98
+	} // end .try 0
+	finally  { // 0
+	  IL_0024:  ldloc.1 
+	  IL_0025:  brfalse.s IL_002d
 
-	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_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
 
-	IL_0b98:  ldloc.1 
-	IL_0b99:  isinst [mscorlib]System.Boolean
-	IL_0b9e:  brfalse IL_0bca
+    // method line 1864
+    .method public hidebysig 
+           instance default string StripFormatting (string message)  cil managed 
+    {
+        // Method begins at RVA 0x208dc
+	// Code size 119 (0x77)
+	.maxstack 3
+	.locals init (
+		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:  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_0ba3:  ldloc.3 
-	IL_0ba4:  isinst [mscorlib]System.Boolean
-	IL_0ba9:  brfalse IL_0bca
+	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_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_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_0bca:  ldloc.1 
-	IL_0bcb:  isinst [mscorlib]System.Int32
-	IL_0bd0:  brfalse IL_0bfc
+	IL_0075:  ldloc.3 
+	IL_0076:  ret 
+    } // end of method XmlLogger::StripFormatting
 
-	IL_0bd5:  ldloc.3 
-	IL_0bd6:  isinst [mscorlib]System.Int32
-	IL_0bdb:  brfalse IL_0bfc
+    // method line 1865
+    .method public hidebysig 
+           instance default bool IsJustWhiteSpace (string message)  cil managed 
+    {
+        // Method begins at RVA 0x20960
+	// Code size 32 (0x20)
+	.maxstack 2
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		bool	V_1)
+	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_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_001e:  ldloc.1 
+	IL_001f:  ret 
+    } // end of method XmlLogger::IsJustWhiteSpace
 
-	IL_0bfc:  ldloc.1 
-	IL_0bfd:  isinst [mscorlib]System.Int32
-	IL_0c02:  brfalse IL_0c33
+    // method line 1866
+    .method private hidebysig 
+           instance default void WriteErrorNode (class [mscorlib]System.Exception exception)  cil managed 
+    {
+        // Method begins at RVA 0x2098c
+	// Code size 505 (0x1f9)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.BuildException	V_0,
+		int32	V_1,
+		int32	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000d
 
-	IL_0c07:  ldloc.3 
-	IL_0c08:  isinst [mscorlib]System.Int64
-	IL_0c0d:  brfalse IL_0c33
+	IL_0007:  nop 
+	IL_0008:  br IL_01f8
 
-	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_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_0c33:  ldloc.1 
-	IL_0c34:  isinst [mscorlib]System.Int32
-	IL_0c39:  brfalse IL_0c6a
+	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_0c3e:  ldloc.3 
-	IL_0c3f:  isinst [mscorlib]System.Double
-	IL_0c44:  brfalse IL_0c6a
+	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_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_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_0c6a:  ldloc.1 
-	IL_0c6b:  isinst [mscorlib]System.Int64
-	IL_0c70:  brfalse IL_0c9c
+	IL_0083:  nop 
+	IL_0084:  ldloc.0 
+	IL_0085:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
+	IL_008a:  brfalse IL_00c3
 
-	IL_0c75:  ldloc.3 
-	IL_0c76:  isinst [mscorlib]System.Int64
-	IL_0c7b:  brfalse IL_0c9c
+	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_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_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_0c9c:  ldloc.1 
-	IL_0c9d:  isinst [mscorlib]System.Int64
-	IL_0ca2:  brfalse IL_0cd8
+	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_0ca7:  ldloc.3 
-	IL_0ca8:  isinst [mscorlib]System.Int32
-	IL_0cad:  brfalse IL_0cd8
+	IL_0173:  nop 
+	IL_0174:  ldarg.1 
+	IL_0175:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_017a:  brfalse IL_01b3
 
-	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_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
 
-	IL_0cd8:  ldloc.1 
-	IL_0cd9:  isinst [mscorlib]System.Int64
-	IL_0cde:  brfalse IL_0d0f
+    // method line 1867
+    .method private hidebysig 
+           instance default bool IsValidXml (string message)  cil managed 
+    {
+        // Method begins at RVA 0x20b94
+	// Code size 96 (0x60)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XmlValidatingReader	V_0,
+		bool	V_1)
+	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_0ce3:  ldloc.3 
-	IL_0ce4:  isinst [mscorlib]System.Double
-	IL_0ce9:  brfalse IL_0d0f
+	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_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_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_0d0f:  ldloc.1 
-	IL_0d10:  isinst [mscorlib]System.Double
-	IL_0d15:  brfalse IL_0d41
+	    IL_0036:  ldc.i4.1 
+	    IL_0037:  stloc.1 
+	    IL_0038:  leave IL_005e
 
-	IL_0d1a:  ldloc.3 
-	IL_0d1b:  isinst [mscorlib]System.Double
-	IL_0d20:  brfalse IL_0d41
+	  } // 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_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
+	  } // end handler 0
+	} // end .try 1
+	finally  { // 1
+	  IL_0046:  nop 
+	  IL_0047:  ldloc.0 
+	  IL_0048:  brfalse IL_0055
 
-	IL_0d41:  ldloc.1 
-	IL_0d42:  isinst [mscorlib]System.Double
-	IL_0d47:  brfalse IL_0d7d
+	  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_0d4c:  ldloc.3 
-	IL_0d4d:  isinst [mscorlib]System.Int32
-	IL_0d52:  brfalse IL_0d7d
+	IL_005e:  ldloc.1 
+	IL_005f:  ret 
+    } // end of method XmlLogger::IsValidXml
 
-	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 1868
+    .method private hidebysig 
+           instance default string StripCData (string message)  cil managed 
+    {
+        // Method begins at RVA 0x20c1c
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1)
+	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_0d7d:  ldloc.1 
-	IL_0d7e:  isinst [mscorlib]System.Double
-	IL_0d83:  brfalse IL_0db9
+	IL_0028:  ldloc.1 
+	IL_0029:  ret 
+    } // end of method XmlLogger::StripCData
 
-	IL_0d88:  ldloc.3 
-	IL_0d89:  isinst [mscorlib]System.Int64
-	IL_0d8e:  brfalse IL_0db9
+    // method line 1869
+    .method private hidebysig 
+           instance default void WriteNameAttribute (string name)  cil managed 
+    {
+        // Method begins at RVA 0x20c52
+	// 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
 
-	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
+	.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_0db9:  ldloc.1 
-	IL_0dba:  isinst [mscorlib]System.DateTime
-	IL_0dbf:  brfalse IL_0deb
+    // method line 1870
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x20c66
+	// 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
 
-	IL_0dc4:  ldloc.3 
-	IL_0dc5:  isinst [mscorlib]System.DateTime
-	IL_0dca:  brfalse IL_0deb
+  } // end of class Elements
 
-	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
+  .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_0deb:  ldloc.1 
-	IL_0dec:  isinst [mscorlib]System.TimeSpan
-	IL_0df1:  brfalse IL_0e1d
+    // method line 1871
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x20c6e
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method Attributes::.ctor
 
-	IL_0df6:  ldloc.3 
-	IL_0df7:  isinst [mscorlib]System.TimeSpan
-	IL_0dfc:  brfalse IL_0e1d
+  } // end of class Attributes
 
-	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
+  } // end of class NAnt.Core.XmlLogger
+}
 
-	IL_0e1d:  ldloc.1 
-	IL_0e1e:  isinst [mscorlib]System.Version
-	IL_0e23:  brfalse IL_0e4f
+.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_0e28:  ldloc.3 
-	IL_0e29:  isinst [mscorlib]System.Version
-	IL_0e2e:  brfalse IL_0e4f
+    .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
 
-	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 1872
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x20c76
+	// 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_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
+    // method line 1873
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary original)  cil managed 
+    {
+        // Method begins at RVA 0x20c8a
+	// 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_0e90:  ldloc.3 
-	IL_0e91:  isinst [mscorlib]System.String
-	IL_0e96:  brfalse IL_0ec5
+    // method line 1874
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary)  cil managed 
+    {
+        // Method begins at RVA 0x20ca4
+	// 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_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
+    // method line 1875
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity)  cil managed 
+    {
+        // Method begins at RVA 0x20cb9
+	// 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_0ec5:  ldloc.1 
-	IL_0ec6:  isinst [mscorlib]System.Boolean
-	IL_0ecb:  brfalse IL_0efa
+    // method line 1876
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor)  cil managed 
+    {
+        // Method begins at RVA 0x20cce
+	// 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_0ed0:  ldloc.3 
-	IL_0ed1:  isinst [mscorlib]System.Boolean
-	IL_0ed6:  brfalse IL_0efa
+    // method line 1877
+    .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 0x20ce4
+	// 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_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 1878
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity, int32 loadFactor)  cil managed 
+    {
+        // Method begins at RVA 0x20cfa
+	// 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_0efa:  ldloc.1 
-	IL_0efb:  isinst [mscorlib]System.Int32
-	IL_0f00:  brfalse IL_0f2f
+    // method line 1879
+    .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 0x20d11
+	// 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_0f05:  ldloc.3 
-	IL_0f06:  isinst [mscorlib]System.Int32
-	IL_0f0b:  brfalse IL_0f2f
+    // method line 1880
+    .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 0x20d28
+	// 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_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
+    // method line 1881
+    .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 0x20d3f
+	// 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_0f2f:  ldloc.1 
-	IL_0f30:  isinst [mscorlib]System.Int32
-	IL_0f35:  brfalse IL_0f69
+    // method line 1882
+    .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 0x20d58
+	// 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
 
-	IL_0f3a:  ldloc.3 
-	IL_0f3b:  isinst [mscorlib]System.Int64
-	IL_0f40:  brfalse IL_0f69
+    // method line 1883
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+    {
+        // Method begins at RVA 0x20d74
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::get_InnerHash
 
-	IL_0f69:  ldloc.1 
-	IL_0f6a:  isinst [mscorlib]System.Int32
-	IL_0f6f:  brfalse IL_0fa3
+    // method line 1884
+    .method assembly hidebysig specialname 
+           instance default void set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20d8f
+	// 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_0f74:  ldloc.3 
-	IL_0f75:  isinst [mscorlib]System.Double
-	IL_0f7a:  brfalse IL_0fa3
+    // method line 1885
+    .method public hidebysig 
+           instance default class NAnt.Core.FrameworkInfoDictionaryEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x20d9c
+	// 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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::GetEnumerator
 
-	IL_0fa3:  ldloc.1 
-	IL_0fa4:  isinst [mscorlib]System.Int64
-	IL_0fa9:  brfalse IL_0fd8
+    // method line 1886
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x20db8
+	.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_0fae:  ldloc.3 
-	IL_0faf:  isinst [mscorlib]System.Int64
-	IL_0fb4:  brfalse IL_0fd8
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.GetEnumerator
 
-	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
+    // method line 1887
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x20dd4
+	.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_0fd8:  ldloc.1 
-	IL_0fd9:  isinst [mscorlib]System.Int64
-	IL_0fde:  brfalse IL_1017
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IEnumerable.GetEnumerator
 
-	IL_0fe3:  ldloc.3 
-	IL_0fe4:  isinst [mscorlib]System.Int32
-	IL_0fe9:  brfalse IL_1017
+    // method line 1888
+    .method public hidebysig 
+           instance default void Remove (string key)  cil managed 
+    {
+        // Method begins at RVA 0x20def
+	// 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_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
+    // method line 1889
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+    {
+        // Method begins at RVA 0x20dfe
+	.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_1017:  ldloc.1 
-	IL_1018:  isinst [mscorlib]System.Int64
-	IL_101d:  brfalse IL_1051
+    // method line 1890
+    .method public hidebysig 
+           instance default bool Contains (string key)  cil managed 
+    {
+        // Method begins at RVA 0x20e10
+	// 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
 
-	IL_1022:  ldloc.3 
-	IL_1023:  isinst [mscorlib]System.Double
-	IL_1028:  brfalse IL_1051
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::Contains
 
-	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
+    // method line 1891
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+    {
+        // Method begins at RVA 0x20e34
+	.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.FrameworkInfoDictionary::Contains(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_1051:  ldloc.1 
-	IL_1052:  isinst [mscorlib]System.Double
-	IL_1057:  brfalse IL_1086
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Contains
 
-	IL_105c:  ldloc.3 
-	IL_105d:  isinst [mscorlib]System.Double
-	IL_1062:  brfalse IL_1086
+    // method line 1892
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x20e55
+	// 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_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
+    // method line 1893
+    .method public hidebysig 
+           instance default void Add (string key, class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20e63
+	// 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_1086:  ldloc.1 
-	IL_1087:  isinst [mscorlib]System.Double
-	IL_108c:  brfalse IL_10c5
+    // method line 1894
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20e73
+	.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_1091:  ldloc.3 
-	IL_1092:  isinst [mscorlib]System.Int32
-	IL_1097:  brfalse IL_10c5
+    // method line 1895
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
+    {
+        // Method begins at RVA 0x20e88
+	// 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
 
-	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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_IsReadOnly
 
-	IL_10c5:  ldloc.1 
-	IL_10c6:  isinst [mscorlib]System.Double
-	IL_10cb:  brfalse IL_1104
+    // method line 1896
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_Item (string key)  cil managed 
+    {
+        // Method begins at RVA 0x20ea8
+	// 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
 
-	IL_10d0:  ldloc.3 
-	IL_10d1:  isinst [mscorlib]System.Int64
-	IL_10d6:  brfalse IL_1104
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FrameworkInfoDictionary::get_Item
 
-	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 1897
+    .method public hidebysig specialname 
+           instance default void set_Item (string key, class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20ece
+	// 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_1104:  ldloc.1 
-	IL_1105:  isinst [mscorlib]System.DateTime
-	IL_110a:  brfalse IL_1139
+    // method line 1898
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    {
+        // Method begins at RVA 0x20ee0
+	.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_110f:  ldloc.3 
-	IL_1110:  isinst [mscorlib]System.DateTime
-	IL_1115:  brfalse IL_1139
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.get_Item
 
-	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
+    // method line 1899
+    .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 0x20f01
+	.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_1139:  ldloc.1 
-	IL_113a:  isinst [mscorlib]System.TimeSpan
-	IL_113f:  brfalse IL_116e
+    // method line 1900
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    {
+        // Method begins at RVA 0x20f18
+	// 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_1144:  ldloc.3 
-	IL_1145:  isinst [mscorlib]System.TimeSpan
-	IL_114a:  brfalse IL_116e
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_Values
 
-	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
+    // method line 1901
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+    {
+        // Method begins at RVA 0x20f38
+	// 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_116e:  ldloc.1 
-	IL_116f:  isinst [mscorlib]System.Version
-	IL_1174:  brfalse IL_11a3
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_Keys
 
-	IL_1179:  ldloc.3 
-	IL_117a:  isinst [mscorlib]System.Version
-	IL_117f:  brfalse IL_11a3
+    // method line 1902
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
+    {
+        // Method begins at RVA 0x20f58
+	// 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_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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_IsFixedSize
 
-	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 1903
+    .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 0x20f78
+	.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_11e4:  ldloc.3 
-	IL_11e5:  isinst [mscorlib]System.String
-	IL_11ea:  brfalse IL_1219
+    // method line 1904
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsSynchronized ()  cil managed 
+    {
+        // Method begins at RVA 0x20f88
+	// 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_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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_IsSynchronized
 
-	IL_1219:  ldloc.1 
-	IL_121a:  isinst [mscorlib]System.Boolean
-	IL_121f:  brfalse IL_124e
+    // method line 1905
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
+    {
+        // Method begins at RVA 0x20fa8
+	// 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_1224:  ldloc.3 
-	IL_1225:  isinst [mscorlib]System.Boolean
-	IL_122a:  brfalse IL_124e
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_Count
 
-	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 1906
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_SyncRoot ()  cil managed 
+    {
+        // Method begins at RVA 0x20fc8
+	// 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_124e:  ldloc.1 
-	IL_124f:  isinst [mscorlib]System.Int32
-	IL_1254:  brfalse IL_1283
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_SyncRoot
 
-	IL_1259:  ldloc.3 
-	IL_125a:  isinst [mscorlib]System.Int32
-	IL_125f:  brfalse IL_1283
+    // method line 1907
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.FrameworkInfo[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x20fe8
+	// 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_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
+    // method line 1908
+    .method public hidebysig 
+           instance default class NAnt.Core.FrameworkInfoDictionary Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x20ff8
+	// 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_1283:  ldloc.1 
-	IL_1284:  isinst [mscorlib]System.Int32
-	IL_1289:  brfalse IL_12bd
+	IL_0024:  ldloc.1 
+	IL_0025:  ret 
+    } // end of method FrameworkInfoDictionary::Clone
 
-	IL_128e:  ldloc.3 
-	IL_128f:  isinst [mscorlib]System.Int64
-	IL_1294:  brfalse IL_12bd
+    // method line 1909
+    .method private final virtual hidebysig newslot 
+           instance default object System.ICloneable.Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x2102c
+	.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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.ICloneable.Clone
 
-	IL_12bd:  ldloc.1 
-	IL_12be:  isinst [mscorlib]System.Int32
-	IL_12c3:  brfalse IL_12f7
+    // method line 1910
+    .method public hidebysig 
+           instance default bool ContainsKey (string key)  cil managed 
+    {
+        // Method begins at RVA 0x21048
+	// 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_12c8:  ldloc.3 
-	IL_12c9:  isinst [mscorlib]System.Double
-	IL_12ce:  brfalse IL_12f7
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::ContainsKey
 
-	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 1911
+    .method public hidebysig 
+           instance default bool ContainsValue (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2106c
+	// 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_12f7:  ldloc.1 
-	IL_12f8:  isinst [mscorlib]System.Int64
-	IL_12fd:  brfalse IL_132c
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::ContainsValue
 
-	IL_1302:  ldloc.3 
-	IL_1303:  isinst [mscorlib]System.Int64
-	IL_1308:  brfalse IL_132c
+    // method line 1912
+    .method public static hidebysig 
+           default class NAnt.Core.FrameworkInfoDictionary Synchronized (class NAnt.Core.FrameworkInfoDictionary nonSync)  cil managed 
+    {
+        // Method begins at RVA 0x21090
+	// 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_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_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method FrameworkInfoDictionary::Synchronized
 
-	IL_132c:  ldloc.1 
-	IL_132d:  isinst [mscorlib]System.Int64
-	IL_1332:  brfalse IL_136b
+	.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_1337:  ldloc.3 
-	IL_1338:  isinst [mscorlib]System.Int32
-	IL_133d:  brfalse IL_136b
+.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_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 1913
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary enumerable)  cil managed 
+    {
+        // Method begins at RVA 0x210bd
+	// 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_136b:  ldloc.1 
-	IL_136c:  isinst [mscorlib]System.Int64
-	IL_1371:  brfalse IL_13a5
+    // method line 1914
+    .method public hidebysig specialname 
+           instance default string get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x210d8
+	// 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_1376:  ldloc.3 
-	IL_1377:  isinst [mscorlib]System.Double
-	IL_137c:  brfalse IL_13a5
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Key
 
-	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
+    // method line 1915
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x21100
+	.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_13a5:  ldloc.1 
-	IL_13a6:  isinst [mscorlib]System.Double
-	IL_13ab:  brfalse IL_13da
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
 
-	IL_13b0:  ldloc.3 
-	IL_13b1:  isinst [mscorlib]System.Double
-	IL_13b6:  brfalse IL_13da
+    // method line 1916
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x2111c
+	// 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_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_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Value
 
-	IL_13da:  ldloc.1 
-	IL_13db:  isinst [mscorlib]System.Double
-	IL_13e0:  brfalse IL_1419
+    // method line 1917
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x21144
+	.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_13e5:  ldloc.3 
-	IL_13e6:  isinst [mscorlib]System.Int32
-	IL_13eb:  brfalse IL_1419
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
 
-	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
+    // method line 1918
+    .method public final virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+    {
+        // Method begins at RVA 0x21160
+	// 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_1419:  ldloc.1 
-	IL_141a:  isinst [mscorlib]System.Double
-	IL_141f:  brfalse IL_1458
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Entry
 
-	IL_1424:  ldloc.3 
-	IL_1425:  isinst [mscorlib]System.Int64
-	IL_142a:  brfalse IL_1458
+    // method line 1919
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x21180
+	// 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
 
-	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 1920
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x21190
+	// 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_1458:  ldloc.1 
-	IL_1459:  isinst [mscorlib]System.DateTime
-	IL_145e:  brfalse IL_148d
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::MoveNext
 
-	IL_1463:  ldloc.3 
-	IL_1464:  isinst [mscorlib]System.DateTime
-	IL_1469:  brfalse IL_148d
+    // method line 1921
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x211b0
+	.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_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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IEnumerator.get_Current
 
-	IL_148d:  ldloc.1 
-	IL_148e:  isinst [mscorlib]System.TimeSpan
-	IL_1493:  brfalse IL_14c2
+    // method line 1922
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x211d0
+	// 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_1498:  ldloc.3 
-	IL_1499:  isinst [mscorlib]System.TimeSpan
-	IL_149e:  brfalse IL_14c2
+	IL_0024:  ldloc.1 
+	IL_0025:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Current
 
-	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
+	.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
+}
 
-	IL_14c2:  ldloc.1 
-	IL_14c3:  isinst [mscorlib]System.Version
-	IL_14c8:  brfalse IL_14f7
+.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_14cd:  ldloc.3 
-	IL_14ce:  isinst [mscorlib]System.Version
-	IL_14d3:  brfalse IL_14f7
 
-	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 1923
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x21202
+	// 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_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 1924
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2120b
+	// 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_1536:  ldloc.s 5
-	IL_1538:  ret 
-    } // end of method ExpressionEvalBase::ParseRelationalExpression
+    // method line 1925
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilder[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2121b
+	// 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 1894
-    .method private hidebysig 
-           instance default object ParseAddSubtract ()  cil managed 
+    // method line 1926
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x215d4
-	// Code size 1500 (0x5dc)
-	.maxstack 6
+        // Method begins at RVA 0x2122c
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.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)
+		class NAnt.Core.DataTypeBaseBuilder	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_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_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_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
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method DataTypeBaseBuilderCollection::get_Item
 
-	IL_0052:  nop 
-	IL_0053:  ldloc.1 
-	IL_0054:  isinst [mscorlib]System.String
-	IL_0059:  brfalse IL_0082
+    // method line 1927
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.DataTypeBaseBuilder 'value')  cil managed 
+    {
+        // Method begins at RVA 0x21252
+	// 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_005e:  ldloc.2 
-	IL_005f:  isinst [mscorlib]System.String
-	IL_0064:  brfalse IL_0082
+    // method line 1928
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (string dataTypeName)  cil managed 
+    {
+        // Method begins at RVA 0x21264
+	// 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_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
+	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 1929
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x212f0
+	// 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 1930
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilder[] items)  cil managed 
+    {
+        // Method begins at RVA 0x21314
+	// 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 1931
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilderCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x21344
+	// 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 1932
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x2137c
+	// 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 1933
+    .method public hidebysig 
+           instance default bool Contains (string taskName)  cil managed 
+    {
+        // Method begins at RVA 0x213a0
+	// 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 1934
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.DataTypeBaseBuilder[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x213c2
+	// 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 1935
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x213d4
+	// 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 1936
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x213f5
+	// 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 1937
+    .method public hidebysig 
+           instance default class NAnt.Core.DataTypeBaseBuilderEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x21408
+	// 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 1938
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x21423
+	// 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 1939
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x21434
+	// 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 1940
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseBuilder get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x21458
+	// 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 1941
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x21480
+	.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 1942
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x214a0
+	// 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 1943
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x214c0
+	.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 1944
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x214e0
+	// 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 1945
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x214ee
+	.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 ConfigurationSection
+  	extends [mscorlib]System.Object
+  	implements [System]System.Configuration.IConfigurationSectionHandler  {
+
+    // method line 1946
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x214fc
+	// 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
+
+    // method line 1947
+    .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 0x21504
+	// 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_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConfigurationSection::Create
+
+  } // end of class NAnt.Core.ConfigurationSection
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit ElementContainer
+  	extends NAnt.Core.Element
+  {
+    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
+
+    // method line 1948
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x5c4c
+	// 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 1949
+    .method family virtual hidebysig specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
+    {
+        // Method begins at RVA 0x5c54
+	// 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 1950
+    .method public virtual hidebysig newslot 
+           instance default void Execute ()  cil managed 
+    {
+        // Method begins at RVA 0x5c6a
+	// 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 1951
+    .method family virtual hidebysig newslot 
+           instance default void ExecuteChildTasks ()  cil managed 
+    {
+        // Method begins at RVA 0x5c74
+	// 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 1952
+    .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 0x5e2c
+	// 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 1953
+    .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 0x5e50
+	// 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 1954
+    .method family virtual hidebysig newslot 
+           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x5e74
+	// 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 1955
+    .method family virtual hidebysig newslot 
+           instance default void AddPrivateXmlElementName (string name)  cil managed 
+    {
+        // Method begins at RVA 0x5ea8
+	// 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 serializable beforefieldinit TargetCollection
+  	extends [mscorlib]System.Collections.ArrayList
+  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
+
+    // method line 1956
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2151a
+	// 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
+
+    // method line 1957
+    .method public virtual hidebysig newslot 
+           instance default int32 Add (class NAnt.Core.Target t)  cil managed 
+    {
+        // Method begins at RVA 0x21524
+	// Code size 121 (0x79)
+	.maxstack 4
+	.locals init (
+		int32	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_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
+
+    // method line 1958
+    .method public hidebysig 
+           instance default class NAnt.Core.Target Find (string targetName)  cil managed 
+    {
+        // Method begins at RVA 0x215ac
+	// 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_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
+
+    // method line 1959
+    .method public hidebysig 
+           instance default string ToString (string separator)  cil managed 
+    {
+        // Method begins at RVA 0x2162c
+	// 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_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_0047:  ldloc.2 
+	IL_0048:  ret 
+    } // end of method TargetCollection::ToString
+
+    // method line 1960
+    .method public virtual hidebysig 
+           instance default int32 Add (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x21684
+	// 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_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TargetCollection::Add
+
+    // method line 1961
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x216a8
+	// 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_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TargetCollection::ToString
+
+    // method line 1962
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x216c8
+	// 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
+
+  } // end of class NAnt.Core.TargetCollection
+}
+
+.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 1963
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
+    {
+        // Method begins at RVA 0x216de
+	// 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 1964
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
+    {
+        // Method begins at RVA 0x216ee
+	// 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 1965
+    .method public hidebysig specialname 
+           instance default string get_ClassName ()  cil managed 
+    {
+        // Method begins at RVA 0x21700
+	// 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 1966
+    .method public hidebysig specialname 
+           instance default string get_DataTypeName ()  cil managed 
+    {
+        // Method begins at RVA 0x2171c
+	// 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 1967
+    .method public hidebysig 
+           instance default class NAnt.Core.DataTypeBase CreateDataTypeBase ()  cil managed 
+    {
+        // Method begins at RVA 0x21778
+        .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 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 1968
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x217ae
+	// Code size 39 (0x27)
+	.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
+
+    // method line 1969
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x217d8
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionEvalBase::get_Project
+
+    // method line 1970
+    .method public hidebysig 
+           instance default object Evaluate (class NAnt.Core.ExpressionTokenizer tokenizer)  cil managed 
+    {
+        // Method begins at RVA 0x217f4
+	// Code size 29 (0x1d)
+	.maxstack 2
+	.locals init (
+		object	V_0)
+	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_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_001b:  ldloc.0 
+	IL_001c:  ret 
+    } // end of method ExpressionEvalBase::Evaluate
+
+    // method line 1971
+    .method public hidebysig 
+           instance default object Evaluate (string s)  cil managed 
+    {
+        // Method begins at RVA 0x21820
+	// Code size 88 (0x58)
+	.maxstack 3
+	.locals init (
+		object	V_0,
+		object	V_1)
+	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_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_0056:  ldloc.1 
+	IL_0057:  ret 
+    } // end of method ExpressionEvalBase::Evaluate
+
+    // method line 1972
+    .method public hidebysig 
+           instance default void CheckSyntax (string s)  cil managed 
+    {
+        // Method begins at RVA 0x21884
+	// Code size 80 (0x50)
+	.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_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 1973
+    .method private hidebysig 
+           instance default bool SyntaxCheckOnly ()  cil managed 
+    {
+        // Method begins at RVA 0x218e0
+	// Code size 18 (0x12)
+	.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_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method ExpressionEvalBase::SyntaxCheckOnly
+
+    // method line 1974
+    .method private hidebysig 
+           instance default object ParseExpression ()  cil managed 
+    {
+        // Method begins at RVA 0x21900
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionEvalBase::ParseExpression
+
+    // method line 1975
+    .method private hidebysig 
+           instance default object ParseBooleanOr ()  cil managed 
+    {
+        // Method begins at RVA 0x2191c
+	// Code size 256 (0x100)
+	.maxstack 6
+	.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)
+	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 
+	.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 '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_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_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_00c9:  ldloc.s 7
+	  IL_00cb:  br.s IL_00ce
+
+	  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_00eb:  ldloc.1 
+	  IL_00ec:  stloc.s 8
+	  IL_00ee:  leave IL_00fd
+
+	} // 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 1976
+    .method private hidebysig 
+           instance default object ParseBooleanAnd ()  cil managed 
+    {
+        // Method begins at RVA 0x21a38
+	// Code size 256 (0x100)
+	.maxstack 6
+	.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)
+	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::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_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_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_00c9:  ldloc.s 7
+	  IL_00cb:  br.s IL_00ce
+
+	  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_00eb:  ldloc.1 
+	  IL_00ec:  stloc.s 8
+	  IL_00ee:  leave IL_00fd
+
+	} // 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
+
+    // method line 1977
+    .method private hidebysig 
+           instance default object ParseRelationalExpression ()  cil managed 
+    {
+        // Method begins at RVA 0x21b54
+	// 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_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_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_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_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_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_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_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
+
+	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_015f:  ldloc.1 
+	IL_0160:  isinst [mscorlib]System.Int32
+	IL_0165:  brfalse IL_0198
+
+	IL_016a:  ldloc.3 
+	IL_016b:  isinst [mscorlib]System.Int64
+	IL_0170:  brfalse IL_0198
+
+	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_0198:  ldloc.1 
+	IL_0199:  isinst [mscorlib]System.Int32
+	IL_019e:  brfalse IL_01d1
+
+	IL_01a3:  ldloc.3 
+	IL_01a4:  isinst [mscorlib]System.Double
+	IL_01a9:  brfalse IL_01d1
+
+	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_01d1:  ldloc.1 
+	IL_01d2:  isinst [mscorlib]System.Int64
+	IL_01d7:  brfalse IL_01fb
+
+	IL_01dc:  ldloc.3 
+	IL_01dd:  isinst [mscorlib]System.Int64
+	IL_01e2:  brfalse IL_01fb
+
+	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_01fb:  ldloc.1 
+	IL_01fc:  isinst [mscorlib]System.Int64
+	IL_0201:  brfalse IL_022f
+
+	IL_0206:  ldloc.3 
+	IL_0207:  isinst [mscorlib]System.Int32
+	IL_020c:  brfalse IL_022f
+
+	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_022f:  ldloc.1 
+	IL_0230:  isinst [mscorlib]System.Int64
+	IL_0235:  brfalse IL_0268
+
+	IL_023a:  ldloc.3 
+	IL_023b:  isinst [mscorlib]System.Double
+	IL_0240:  brfalse IL_0268
+
+	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_0268:  ldloc.1 
+	IL_0269:  isinst [mscorlib]System.Double
+	IL_026e:  brfalse IL_0292
+
+	IL_0273:  ldloc.3 
+	IL_0274:  isinst [mscorlib]System.Double
+	IL_0279:  brfalse IL_0292
+
+	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_0292:  ldloc.1 
+	IL_0293:  isinst [mscorlib]System.Double
+	IL_0298:  brfalse IL_02c6
+
+	IL_029d:  ldloc.3 
+	IL_029e:  isinst [mscorlib]System.Int32
+	IL_02a3:  brfalse IL_02c6
+
+	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_02c6:  ldloc.1 
+	IL_02c7:  isinst [mscorlib]System.Double
+	IL_02cc:  brfalse IL_02fa
+
+	IL_02d1:  ldloc.3 
+	IL_02d2:  isinst [mscorlib]System.Int64
+	IL_02d7:  brfalse IL_02fa
+
+	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_02fa:  ldloc.1 
+	IL_02fb:  isinst [mscorlib]System.DateTime
+	IL_0300:  brfalse IL_0324
+
+	IL_0305:  ldloc.3 
+	IL_0306:  isinst [mscorlib]System.DateTime
+	IL_030b:  brfalse IL_0324
+
+	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_0324:  ldloc.1 
+	IL_0325:  isinst [mscorlib]System.TimeSpan
+	IL_032a:  brfalse IL_034e
+
+	IL_032f:  ldloc.3 
+	IL_0330:  isinst [mscorlib]System.TimeSpan
+	IL_0335:  brfalse IL_034e
+
+	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_034e:  ldloc.1 
+	IL_034f:  isinst [mscorlib]System.Version
+	IL_0354:  brfalse IL_0378
+
+	IL_0359:  ldloc.3 
+	IL_035a:  isinst [mscorlib]System.Version
+	IL_035f:  brfalse IL_0378
+
+	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_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_0388:  nop 
+	IL_0389:  ldloc.3 
+	IL_038a:  isinst [mscorlib]System.String
+	IL_038f:  brfalse IL_03b9
+
+	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
+
+	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_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_03e8:  nop 
+	IL_03e9:  ldloc.1 
+	IL_03ea:  isinst [mscorlib]System.String
+	IL_03ef:  brfalse IL_0419
+
+	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
+
+	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_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_0479:  ldloc.3 
+	IL_047a:  isinst [mscorlib]System.String
+	IL_047f:  brfalse IL_049b
+
+	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_049b:  ldloc.1 
+	IL_049c:  isinst [mscorlib]System.Boolean
+	IL_04a1:  brfalse IL_04c8
+
+	IL_04a6:  ldloc.3 
+	IL_04a7:  isinst [mscorlib]System.Boolean
+	IL_04ac:  brfalse IL_04c8
+
+	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_04c8:  ldloc.1 
+	IL_04c9:  isinst [mscorlib]System.Int32
+	IL_04ce:  brfalse IL_04f5
+
+	IL_04d3:  ldloc.3 
+	IL_04d4:  isinst [mscorlib]System.Int32
+	IL_04d9:  brfalse IL_04f5
+
+	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
+
+	IL_04f5:  ldloc.1 
+	IL_04f6:  isinst [mscorlib]System.Int32
+	IL_04fb:  brfalse IL_0531
+
+	IL_0500:  ldloc.3 
+	IL_0501:  isinst [mscorlib]System.Int64
+	IL_0506:  brfalse IL_0531
+
+	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_0531:  ldloc.1 
+	IL_0532:  isinst [mscorlib]System.Int32
+	IL_0537:  brfalse IL_056d
+
+	IL_053c:  ldloc.3 
+	IL_053d:  isinst [mscorlib]System.Double
+	IL_0542:  brfalse IL_056d
+
+	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_056d:  ldloc.1 
+	IL_056e:  isinst [mscorlib]System.Int64
+	IL_0573:  brfalse IL_059a
+
+	IL_0578:  ldloc.3 
+	IL_0579:  isinst [mscorlib]System.Int64
+	IL_057e:  brfalse IL_059a
+
+	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_059a:  ldloc.1 
+	IL_059b:  isinst [mscorlib]System.Int64
+	IL_05a0:  brfalse IL_05d1
+
+	IL_05a5:  ldloc.3 
+	IL_05a6:  isinst [mscorlib]System.Int32
+	IL_05ab:  brfalse IL_05d1
+
+	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
+
+	IL_05d1:  ldloc.1 
+	IL_05d2:  isinst [mscorlib]System.Int64
+	IL_05d7:  brfalse IL_060d
+
+	IL_05dc:  ldloc.3 
+	IL_05dd:  isinst [mscorlib]System.Double
+	IL_05e2:  brfalse IL_060d
+
+	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_060d:  ldloc.1 
+	IL_060e:  isinst [mscorlib]System.Double
+	IL_0613:  brfalse IL_063a
+
+	IL_0618:  ldloc.3 
+	IL_0619:  isinst [mscorlib]System.Double
+	IL_061e:  brfalse IL_063a
+
+	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
+
+	IL_063a:  ldloc.1 
+	IL_063b:  isinst [mscorlib]System.Double
+	IL_0640:  brfalse IL_0671
+
+	IL_0645:  ldloc.3 
+	IL_0646:  isinst [mscorlib]System.Int32
+	IL_064b:  brfalse IL_0671
+
+	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_0671:  ldloc.1 
+	IL_0672:  isinst [mscorlib]System.Double
+	IL_0677:  brfalse IL_06a8
+
+	IL_067c:  ldloc.3 
+	IL_067d:  isinst [mscorlib]System.Int64
+	IL_0682:  brfalse IL_06a8
+
+	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_06a8:  ldloc.1 
+	IL_06a9:  isinst [mscorlib]System.DateTime
+	IL_06ae:  brfalse IL_06d5
+
+	IL_06b3:  ldloc.3 
+	IL_06b4:  isinst [mscorlib]System.DateTime
+	IL_06b9:  brfalse IL_06d5
+
+	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_06d5:  ldloc.1 
+	IL_06d6:  isinst [mscorlib]System.TimeSpan
+	IL_06db:  brfalse IL_0702
+
+	IL_06e0:  ldloc.3 
+	IL_06e1:  isinst [mscorlib]System.TimeSpan
+	IL_06e6:  brfalse IL_0702
+
+	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_0702:  ldloc.1 
+	IL_0703:  isinst [mscorlib]System.Version
+	IL_0708:  brfalse IL_072f
+
+	IL_070d:  ldloc.3 
+	IL_070e:  isinst [mscorlib]System.Version
+	IL_0713:  brfalse IL_072f
+
+	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_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_073f:  nop 
+	IL_0740:  ldloc.3 
+	IL_0741:  isinst [mscorlib]System.String
+	IL_0746:  brfalse IL_0773
+
+	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_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
+
+	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_07a5:  nop 
+	IL_07a6:  ldloc.1 
+	IL_07a7:  isinst [mscorlib]System.String
+	IL_07ac:  brfalse IL_07d9
+
+	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
+
+	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
+
+	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_083c:  ldloc.3 
+	IL_083d:  isinst [mscorlib]System.String
+	IL_0842:  brfalse IL_086e
+
+	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_086e:  ldloc.1 
+	IL_086f:  isinst [mscorlib]System.Boolean
+	IL_0874:  brfalse IL_08a0
+
+	IL_0879:  ldloc.3 
+	IL_087a:  isinst [mscorlib]System.Boolean
+	IL_087f:  brfalse IL_08a0
+
+	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_08a0:  ldloc.1 
+	IL_08a1:  isinst [mscorlib]System.Int32
+	IL_08a6:  brfalse IL_08d2
+
+	IL_08ab:  ldloc.3 
+	IL_08ac:  isinst [mscorlib]System.Int32
+	IL_08b1:  brfalse IL_08d2
+
+	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_08d2:  ldloc.1 
+	IL_08d3:  isinst [mscorlib]System.Int32
+	IL_08d8:  brfalse IL_0909
+
+	IL_08dd:  ldloc.3 
+	IL_08de:  isinst [mscorlib]System.Int64
+	IL_08e3:  brfalse IL_0909
+
+	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_0909:  ldloc.1 
+	IL_090a:  isinst [mscorlib]System.Int32
+	IL_090f:  brfalse IL_0940
+
+	IL_0914:  ldloc.3 
+	IL_0915:  isinst [mscorlib]System.Double
+	IL_091a:  brfalse IL_0940
+
+	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_0940:  ldloc.1 
+	IL_0941:  isinst [mscorlib]System.Int64
+	IL_0946:  brfalse IL_0972
+
+	IL_094b:  ldloc.3 
+	IL_094c:  isinst [mscorlib]System.Int64
+	IL_0951:  brfalse IL_0972
+
+	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_0972:  ldloc.1 
+	IL_0973:  isinst [mscorlib]System.Int64
+	IL_0978:  brfalse IL_09ae
+
+	IL_097d:  ldloc.3 
+	IL_097e:  isinst [mscorlib]System.Int32
+	IL_0983:  brfalse IL_09ae
+
+	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_09ae:  ldloc.1 
+	IL_09af:  isinst [mscorlib]System.Int64
+	IL_09b4:  brfalse IL_09e5
+
+	IL_09b9:  ldloc.3 
+	IL_09ba:  isinst [mscorlib]System.Double
+	IL_09bf:  brfalse IL_09e5
+
+	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_09e5:  ldloc.1 
+	IL_09e6:  isinst [mscorlib]System.Double
+	IL_09eb:  brfalse IL_0a17
+
+	IL_09f0:  ldloc.3 
+	IL_09f1:  isinst [mscorlib]System.Double
+	IL_09f6:  brfalse IL_0a17
+
+	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_0a17:  ldloc.1 
+	IL_0a18:  isinst [mscorlib]System.Double
+	IL_0a1d:  brfalse IL_0a53
+
+	IL_0a22:  ldloc.3 
+	IL_0a23:  isinst [mscorlib]System.Int32
+	IL_0a28:  brfalse IL_0a53
+
+	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_0a53:  ldloc.1 
+	IL_0a54:  isinst [mscorlib]System.Double
+	IL_0a59:  brfalse IL_0a8f
+
+	IL_0a5e:  ldloc.3 
+	IL_0a5f:  isinst [mscorlib]System.Int64
+	IL_0a64:  brfalse IL_0a8f
+
+	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_0a8f:  ldloc.1 
+	IL_0a90:  isinst [mscorlib]System.DateTime
+	IL_0a95:  brfalse IL_0ac1
+
+	IL_0a9a:  ldloc.3 
+	IL_0a9b:  isinst [mscorlib]System.DateTime
+	IL_0aa0:  brfalse IL_0ac1
+
+	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_0ac1:  ldloc.1 
+	IL_0ac2:  isinst [mscorlib]System.TimeSpan
+	IL_0ac7:  brfalse IL_0af3
+
+	IL_0acc:  ldloc.3 
+	IL_0acd:  isinst [mscorlib]System.TimeSpan
+	IL_0ad2:  brfalse IL_0af3
+
+	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_0af3:  ldloc.1 
+	IL_0af4:  isinst [mscorlib]System.Version
+	IL_0af9:  brfalse IL_0b25
+
+	IL_0afe:  ldloc.3 
+	IL_0aff:  isinst [mscorlib]System.Version
+	IL_0b04:  brfalse IL_0b25
+
+	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_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_0b66:  ldloc.3 
+	IL_0b67:  isinst [mscorlib]System.String
+	IL_0b6c:  brfalse IL_0b98
+
+	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_0b98:  ldloc.1 
+	IL_0b99:  isinst [mscorlib]System.Boolean
+	IL_0b9e:  brfalse IL_0bca
+
+	IL_0ba3:  ldloc.3 
+	IL_0ba4:  isinst [mscorlib]System.Boolean
+	IL_0ba9:  brfalse IL_0bca
+
+	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_0bca:  ldloc.1 
+	IL_0bcb:  isinst [mscorlib]System.Int32
+	IL_0bd0:  brfalse IL_0bfc
+
+	IL_0bd5:  ldloc.3 
+	IL_0bd6:  isinst [mscorlib]System.Int32
+	IL_0bdb:  brfalse IL_0bfc
+
+	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_0bfc:  ldloc.1 
+	IL_0bfd:  isinst [mscorlib]System.Int32
+	IL_0c02:  brfalse IL_0c33
+
+	IL_0c07:  ldloc.3 
+	IL_0c08:  isinst [mscorlib]System.Int64
+	IL_0c0d:  brfalse IL_0c33
+
+	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_0c33:  ldloc.1 
+	IL_0c34:  isinst [mscorlib]System.Int32
+	IL_0c39:  brfalse IL_0c6a
+
+	IL_0c3e:  ldloc.3 
+	IL_0c3f:  isinst [mscorlib]System.Double
+	IL_0c44:  brfalse IL_0c6a
+
+	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_0c6a:  ldloc.1 
+	IL_0c6b:  isinst [mscorlib]System.Int64
+	IL_0c70:  brfalse IL_0c9c
+
+	IL_0c75:  ldloc.3 
+	IL_0c76:  isinst [mscorlib]System.Int64
+	IL_0c7b:  brfalse IL_0c9c
+
+	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_0c9c:  ldloc.1 
+	IL_0c9d:  isinst [mscorlib]System.Int64
+	IL_0ca2:  brfalse IL_0cd8
+
+	IL_0ca7:  ldloc.3 
+	IL_0ca8:  isinst [mscorlib]System.Int32
+	IL_0cad:  brfalse IL_0cd8
+
+	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_0cd8:  ldloc.1 
+	IL_0cd9:  isinst [mscorlib]System.Int64
+	IL_0cde:  brfalse IL_0d0f
+
+	IL_0ce3:  ldloc.3 
+	IL_0ce4:  isinst [mscorlib]System.Double
+	IL_0ce9:  brfalse IL_0d0f
+
+	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_0d0f:  ldloc.1 
+	IL_0d10:  isinst [mscorlib]System.Double
+	IL_0d15:  brfalse IL_0d41
+
+	IL_0d1a:  ldloc.3 
+	IL_0d1b:  isinst [mscorlib]System.Double
+	IL_0d20:  brfalse IL_0d41
+
+	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_0d41:  ldloc.1 
+	IL_0d42:  isinst [mscorlib]System.Double
+	IL_0d47:  brfalse IL_0d7d
+
+	IL_0d4c:  ldloc.3 
+	IL_0d4d:  isinst [mscorlib]System.Int32
+	IL_0d52:  brfalse IL_0d7d
+
+	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
+
+	IL_0d7d:  ldloc.1 
+	IL_0d7e:  isinst [mscorlib]System.Double
+	IL_0d83:  brfalse IL_0db9
+
+	IL_0d88:  ldloc.3 
+	IL_0d89:  isinst [mscorlib]System.Int64
+	IL_0d8e:  brfalse IL_0db9
+
+	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_0db9:  ldloc.1 
+	IL_0dba:  isinst [mscorlib]System.DateTime
+	IL_0dbf:  brfalse IL_0deb
+
+	IL_0dc4:  ldloc.3 
+	IL_0dc5:  isinst [mscorlib]System.DateTime
+	IL_0dca:  brfalse IL_0deb
+
+	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_0deb:  ldloc.1 
+	IL_0dec:  isinst [mscorlib]System.TimeSpan
+	IL_0df1:  brfalse IL_0e1d
+
+	IL_0df6:  ldloc.3 
+	IL_0df7:  isinst [mscorlib]System.TimeSpan
+	IL_0dfc:  brfalse IL_0e1d
+
+	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_0e1d:  ldloc.1 
+	IL_0e1e:  isinst [mscorlib]System.Version
+	IL_0e23:  brfalse IL_0e4f
+
+	IL_0e28:  ldloc.3 
+	IL_0e29:  isinst [mscorlib]System.Version
+	IL_0e2e:  brfalse IL_0e4f
+
+	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_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_0e90:  ldloc.3 
+	IL_0e91:  isinst [mscorlib]System.String
+	IL_0e96:  brfalse IL_0ec5
+
+	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_0ec5:  ldloc.1 
+	IL_0ec6:  isinst [mscorlib]System.Boolean
+	IL_0ecb:  brfalse IL_0efa
+
+	IL_0ed0:  ldloc.3 
+	IL_0ed1:  isinst [mscorlib]System.Boolean
+	IL_0ed6:  brfalse IL_0efa
+
+	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_0efa:  ldloc.1 
+	IL_0efb:  isinst [mscorlib]System.Int32
+	IL_0f00:  brfalse IL_0f2f
+
+	IL_0f05:  ldloc.3 
+	IL_0f06:  isinst [mscorlib]System.Int32
+	IL_0f0b:  brfalse IL_0f2f
+
+	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_0f2f:  ldloc.1 
+	IL_0f30:  isinst [mscorlib]System.Int32
+	IL_0f35:  brfalse IL_0f69
+
+	IL_0f3a:  ldloc.3 
+	IL_0f3b:  isinst [mscorlib]System.Int64
+	IL_0f40:  brfalse IL_0f69
+
+	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_0f69:  ldloc.1 
+	IL_0f6a:  isinst [mscorlib]System.Int32
+	IL_0f6f:  brfalse IL_0fa3
+
+	IL_0f74:  ldloc.3 
+	IL_0f75:  isinst [mscorlib]System.Double
+	IL_0f7a:  brfalse IL_0fa3
+
+	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_0fa3:  ldloc.1 
+	IL_0fa4:  isinst [mscorlib]System.Int64
+	IL_0fa9:  brfalse IL_0fd8
+
+	IL_0fae:  ldloc.3 
+	IL_0faf:  isinst [mscorlib]System.Int64
+	IL_0fb4:  brfalse IL_0fd8
+
+	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_0fd8:  ldloc.1 
+	IL_0fd9:  isinst [mscorlib]System.Int64
+	IL_0fde:  brfalse IL_1017
+
+	IL_0fe3:  ldloc.3 
+	IL_0fe4:  isinst [mscorlib]System.Int32
+	IL_0fe9:  brfalse IL_1017
+
+	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_1017:  ldloc.1 
+	IL_1018:  isinst [mscorlib]System.Int64
+	IL_101d:  brfalse IL_1051
+
+	IL_1022:  ldloc.3 
+	IL_1023:  isinst [mscorlib]System.Double
+	IL_1028:  brfalse IL_1051
+
+	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_1051:  ldloc.1 
+	IL_1052:  isinst [mscorlib]System.Double
+	IL_1057:  brfalse IL_1086
+
+	IL_105c:  ldloc.3 
+	IL_105d:  isinst [mscorlib]System.Double
+	IL_1062:  brfalse IL_1086
+
+	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_1086:  ldloc.1 
+	IL_1087:  isinst [mscorlib]System.Double
+	IL_108c:  brfalse IL_10c5
+
+	IL_1091:  ldloc.3 
+	IL_1092:  isinst [mscorlib]System.Int32
+	IL_1097:  brfalse IL_10c5
+
+	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_10c5:  ldloc.1 
+	IL_10c6:  isinst [mscorlib]System.Double
+	IL_10cb:  brfalse IL_1104
+
+	IL_10d0:  ldloc.3 
+	IL_10d1:  isinst [mscorlib]System.Int64
+	IL_10d6:  brfalse IL_1104
+
+	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_1104:  ldloc.1 
+	IL_1105:  isinst [mscorlib]System.DateTime
+	IL_110a:  brfalse IL_1139
+
+	IL_110f:  ldloc.3 
+	IL_1110:  isinst [mscorlib]System.DateTime
+	IL_1115:  brfalse IL_1139
+
+	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_1139:  ldloc.1 
+	IL_113a:  isinst [mscorlib]System.TimeSpan
+	IL_113f:  brfalse IL_116e
+
+	IL_1144:  ldloc.3 
+	IL_1145:  isinst [mscorlib]System.TimeSpan
+	IL_114a:  brfalse IL_116e
+
+	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_116e:  ldloc.1 
+	IL_116f:  isinst [mscorlib]System.Version
+	IL_1174:  brfalse IL_11a3
+
+	IL_1179:  ldloc.3 
+	IL_117a:  isinst [mscorlib]System.Version
+	IL_117f:  brfalse IL_11a3
+
+	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_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_11e4:  ldloc.3 
+	IL_11e5:  isinst [mscorlib]System.String
+	IL_11ea:  brfalse IL_1219
+
+	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_1219:  ldloc.1 
+	IL_121a:  isinst [mscorlib]System.Boolean
+	IL_121f:  brfalse IL_124e
+
+	IL_1224:  ldloc.3 
+	IL_1225:  isinst [mscorlib]System.Boolean
+	IL_122a:  brfalse IL_124e
+
+	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_124e:  ldloc.1 
+	IL_124f:  isinst [mscorlib]System.Int32
+	IL_1254:  brfalse IL_1283
+
+	IL_1259:  ldloc.3 
+	IL_125a:  isinst [mscorlib]System.Int32
+	IL_125f:  brfalse IL_1283
+
+	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_1283:  ldloc.1 
+	IL_1284:  isinst [mscorlib]System.Int32
+	IL_1289:  brfalse IL_12bd
+
+	IL_128e:  ldloc.3 
+	IL_128f:  isinst [mscorlib]System.Int64
+	IL_1294:  brfalse IL_12bd
+
+	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_12bd:  ldloc.1 
+	IL_12be:  isinst [mscorlib]System.Int32
+	IL_12c3:  brfalse IL_12f7
+
+	IL_12c8:  ldloc.3 
+	IL_12c9:  isinst [mscorlib]System.Double
+	IL_12ce:  brfalse IL_12f7
+
+	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
+
+	IL_12f7:  ldloc.1 
+	IL_12f8:  isinst [mscorlib]System.Int64
+	IL_12fd:  brfalse IL_132c
+
+	IL_1302:  ldloc.3 
+	IL_1303:  isinst [mscorlib]System.Int64
+	IL_1308:  brfalse IL_132c
+
+	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_132c:  ldloc.1 
+	IL_132d:  isinst [mscorlib]System.Int64
+	IL_1332:  brfalse IL_136b
+
+	IL_1337:  ldloc.3 
+	IL_1338:  isinst [mscorlib]System.Int32
+	IL_133d:  brfalse IL_136b
+
+	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
+
+	IL_136b:  ldloc.1 
+	IL_136c:  isinst [mscorlib]System.Int64
+	IL_1371:  brfalse IL_13a5
+
+	IL_1376:  ldloc.3 
+	IL_1377:  isinst [mscorlib]System.Double
+	IL_137c:  brfalse IL_13a5
+
+	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_13a5:  ldloc.1 
+	IL_13a6:  isinst [mscorlib]System.Double
+	IL_13ab:  brfalse IL_13da
+
+	IL_13b0:  ldloc.3 
+	IL_13b1:  isinst [mscorlib]System.Double
+	IL_13b6:  brfalse IL_13da
+
+	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_13da:  ldloc.1 
+	IL_13db:  isinst [mscorlib]System.Double
+	IL_13e0:  brfalse IL_1419
+
+	IL_13e5:  ldloc.3 
+	IL_13e6:  isinst [mscorlib]System.Int32
+	IL_13eb:  brfalse IL_1419
+
+	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_1419:  ldloc.1 
+	IL_141a:  isinst [mscorlib]System.Double
+	IL_141f:  brfalse IL_1458
+
+	IL_1424:  ldloc.3 
+	IL_1425:  isinst [mscorlib]System.Int64
+	IL_142a:  brfalse IL_1458
+
+	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_1458:  ldloc.1 
+	IL_1459:  isinst [mscorlib]System.DateTime
+	IL_145e:  brfalse IL_148d
+
+	IL_1463:  ldloc.3 
+	IL_1464:  isinst [mscorlib]System.DateTime
+	IL_1469:  brfalse IL_148d
+
+	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_148d:  ldloc.1 
+	IL_148e:  isinst [mscorlib]System.TimeSpan
+	IL_1493:  brfalse IL_14c2
+
+	IL_1498:  ldloc.3 
+	IL_1499:  isinst [mscorlib]System.TimeSpan
+	IL_149e:  brfalse IL_14c2
+
+	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
+
+	IL_14c2:  ldloc.1 
+	IL_14c3:  isinst [mscorlib]System.Version
+	IL_14c8:  brfalse IL_14f7
+
+	IL_14cd:  ldloc.3 
+	IL_14ce:  isinst [mscorlib]System.Version
+	IL_14d3:  brfalse IL_14f7
+
+	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_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
+
+	IL_1536:  ldloc.s 5
+	IL_1538:  ret 
+    } // end of method ExpressionEvalBase::ParseRelationalExpression
+
+    // method line 1978
+    .method private hidebysig 
+           instance default object ParseAddSubtract ()  cil managed 
+    {
+        // Method begins at RVA 0x2309c
+	// 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)
+	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::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_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
+
+	IL_0052:  nop 
+	IL_0053:  ldloc.1 
+	IL_0054:  isinst [mscorlib]System.String
+	IL_0059:  brfalse IL_0082
+
+	IL_005e:  ldloc.2 
+	IL_005f:  isinst [mscorlib]System.String
+	IL_0064:  brfalse IL_0082
+
+	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
 
 	IL_0082:  ldloc.1 
 	IL_0083:  isinst [mscorlib]System.Int32
@@ -74734,11 +76865,11 @@
 	IL_05db:  ret 
     } // end of method ExpressionEvalBase::ParseAddSubtract
 
-    // method line 1895
+    // method line 1979
     .method private hidebysig 
            instance default object ParseMulDiv ()  cil managed 
     {
-        // Method begins at RVA 0x21bbc
+        // Method begins at RVA 0x23684
 	// Code size 2743 (0xab7)
 	.maxstack 6
 	.locals init (
@@ -75736,11 +77867,11 @@
 	IL_0ab6:  ret 
     } // end of method ExpressionEvalBase::ParseMulDiv
 
-    // method line 1896
+    // method line 1980
     .method private hidebysig 
            instance default object ParseConditional ()  cil managed 
     {
-        // Method begins at RVA 0x22680
+        // Method begins at RVA 0x24148
 	// Code size 437 (0x1b5)
 	.maxstack 6
 	.locals init (
@@ -75923,11 +78054,11 @@
 	IL_01b4:  ret 
     } // end of method ExpressionEvalBase::ParseConditional
 
-    // method line 1897
+    // method line 1981
     .method private hidebysig 
            instance default object ParseValue ()  cil managed 
     {
-        // Method begins at RVA 0x22854
+        // Method begins at RVA 0x2431c
 	// Code size 1978 (0x7ba)
 	.maxstack 8
 	.locals init (
@@ -76698,11 +78829,11 @@
 	IL_07b9:  ret 
     } // end of method ExpressionEvalBase::ParseValue
 
-    // method line 1898
+    // method line 1982
     .method family hidebysig 
            instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0)  cil managed 
     {
-        // Method begins at RVA 0x2305c
+        // Method begins at RVA 0x24b24
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -76719,11 +78850,11 @@
 	IL_0015:  ret 
     } // end of method ExpressionEvalBase::BuildParseError
 
-    // method line 1899
+    // method line 1983
     .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 0x23080
+        // Method begins at RVA 0x24b48
 	// Code size 29 (0x1d)
 	.maxstack 3
 	.locals init (
@@ -76742,11 +78873,11 @@
 	IL_001c:  ret 
     } // end of method ExpressionEvalBase::BuildParseError
 
-    // method line 1900
+    // method line 1984
     .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 0x230ac
+        // Method begins at RVA 0x24b74
 	// Code size 31 (0x1f)
 	.maxstack 4
 	.locals init (
@@ -76766,11 +78897,11 @@
 	IL_001e:  ret 
     } // end of method ExpressionEvalBase::BuildParseError
 
-    // method line 1901
+    // method line 1985
     .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 0x230d8
+        // Method begins at RVA 0x24ba0
 	// Code size 787 (0x313)
 	.maxstack 7
 	.locals init (
@@ -76927,6768 +79058,336 @@
 	  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
-	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 1902
-    .method family hidebysig 
-           instance default string GetSimpleTypeName (class [mscorlib]System.Type t)  cil managed 
-    {
-        // Method begins at RVA 0x2342c
-	// Code size 247 (0xf7)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	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_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_0037:  nop 
-	IL_0038:  ldstr "long"
-	IL_003d:  stloc.0 
-	IL_003e:  br IL_00f5
-
-	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_0058:  nop 
-	IL_0059:  ldstr "double"
-	IL_005e:  stloc.0 
-	IL_005f:  br IL_00f5
-
-	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_0079:  nop 
-	IL_007a:  ldstr "string"
-	IL_007f:  stloc.0 
-	IL_0080:  br IL_00f5
-
-	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_009a:  nop 
-	IL_009b:  ldstr "bool"
-	IL_00a0:  stloc.0 
-	IL_00a1:  br IL_00f5
-
-	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 1903
-    .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
-
-    // method line 1904
-    .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 1905
-    .method family virtual hidebysig newslot 
-           instance default object UnexpectedToken ()  cil managed 
-    {
-        // Method begins at RVA 0x2352f
-	// Code size 50 (0x32)
-	.maxstack 8
-	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
-
-	.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)
-
-  } // end of class EvalMode
-
-  } // end of class NAnt.Core.ExpressionEvalBase
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit BuildException
-  	extends [mscorlib]System.ApplicationException
-  {
-    .field  private  class NAnt.Core.Location _location
-
-    // method line 1906
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x249e3
-	// 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 1907
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message)  cil managed 
-    {
-        // Method begins at RVA 0x249f7
-	// 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 1908
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
-    {
-        // Method begins at RVA 0x24a0c
-	// 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 1909
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x24a22
-	// 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 1910
-    .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 0x24a3e
-	// 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 1911
-    .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 0x24a5b
-	// 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 1912
-    .method public hidebysig specialname 
-           instance default string get_RawMessage ()  cil managed 
-    {
-        // Method begins at RVA 0x24a94
-	// 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 1913
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Location get_Location ()  cil managed 
-    {
-        // Method begins at RVA 0x24ab0
-	// 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 1914
-    .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 0x24acb
-        .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 1915
-    .method public virtual hidebysig specialname 
-           instance default string get_Message ()  cil managed 
-    {
-        // Method begins at RVA 0x24ae8
-	// 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 1916
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x24b40
-	// 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 TargetCollection
-  	extends [mscorlib]System.Collections.ArrayList
-  {
-    .field  private static initonly  class [log4net]log4net.ILog logger
-
-    // method line 1917
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x24b75
-	// 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
-
-    // method line 1918
-    .method public virtual hidebysig newslot 
-           instance default int32 Add (class NAnt.Core.Target t)  cil managed 
-    {
-        // Method begins at RVA 0x24b80
-	// Code size 121 (0x79)
-	.maxstack 4
-	.locals init (
-		int32	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_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
-
-    // method line 1919
-    .method public hidebysig 
-           instance default class NAnt.Core.Target Find (string targetName)  cil managed 
-    {
-        // Method begins at RVA 0x24c08
-	// 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_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
-
-    // method line 1920
-    .method public hidebysig 
-           instance default string ToString (string separator)  cil managed 
-    {
-        // Method begins at RVA 0x24c88
-	// 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_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_0047:  ldloc.2 
-	IL_0048:  ret 
-    } // end of method TargetCollection::ToString
-
-    // method line 1921
-    .method public virtual hidebysig 
-           instance default int32 Add (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x24ce0
-	// 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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TargetCollection::Add
-
-    // method line 1922
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x24d04
-	// 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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TargetCollection::ToString
-
-    // method line 1923
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x24d24
-	// 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
-
-  } // end of class NAnt.Core.TargetCollection
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit TaskContainer
-  	extends NAnt.Core.Task
-  {
-    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
-
-    // method line 1924
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x7ce0
-	// 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 1925
-    .method family virtual hidebysig specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
-    {
-        // Method begins at RVA 0x7ce8
-	// 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 1926
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x7d00
-	// 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 1927
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x7d99
-	// 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 1928
-    .method family virtual hidebysig newslot 
-           instance default void ExecuteChildTasks ()  cil managed 
-    {
-        // Method begins at RVA 0x7da4
-	// 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 1929
-    .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 0x7f5c
-	// 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 1930
-    .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 0x7f80
-	// 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 1931
-    .method family virtual hidebysig newslot 
-           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0x7fa4
-	// 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 1932
-    .method family virtual hidebysig newslot 
-           instance default void AddPrivateXmlElementName (string name)  cil managed 
-    {
-        // Method begins at RVA 0x7fd8
-	// 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 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 1933
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x24d3a
-	// 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 line 1934
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.StopWatchStack stopWatchStack)  cil managed 
-    {
-        // Method begins at RVA 0x24d50
-	// 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
-
-    // method line 1935
-    .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 0x24da0
-	// 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
-
-    // method line 1936
-    .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 0x24e68
-	// 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 1937
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x24ec0
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		string	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method XmlLogger::ToString
-
-    // method line 1938
-    .method public final virtual hidebysig newslot 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x24ee0
-	// Code size 102 (0x66)
-	.maxstack 3
-	.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:  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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_004f:  ldloc.1 
-	  IL_0050:  brfalse.s IL_0058
-
-	  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 1939
-    .method public final virtual hidebysig newslot 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x24f64
-	// Code size 332 (0x14c)
-	.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)
-	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.2 
-	  IL_0014:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
-	  IL_0019:  brfalse IL_0047
-
-	  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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0069:  ldloc.1 
-	  IL_006a:  brfalse.s IL_0072
-
-	  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 1940
-    .method public final virtual hidebysig newslot 
-           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x250e4
-	// Code size 91 (0x5b)
-	.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:  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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0050:  ldloc.1 
-	  IL_0051:  brfalse.s IL_0059
-
-	  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 1941
-    .method public final virtual hidebysig newslot 
-           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2515c
-	// 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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0035:  ldloc.1 
-	  IL_0036:  brfalse.s IL_003e
-
-	  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 1942
-    .method public final virtual hidebysig newslot 
-           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x251b8
-	// Code size 91 (0x5b)
-	.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:  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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0050:  ldloc.1 
-	  IL_0051:  brfalse.s IL_0059
-
-	  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 1943
-    .method public final virtual hidebysig newslot 
-           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x25230
-	// 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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0035:  ldloc.1 
-	  IL_0036:  brfalse.s IL_003e
-
-	  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 1944
-    .method private hidebysig 
-           instance default void WriteDuration ()  cil managed 
-    {
-        // Method begins at RVA 0x2528c
-	// 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 1945
-    .method public final virtual hidebysig newslot 
-           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x252c4
-	// 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
-
-	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_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
-
-	  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_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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00e2:  ldloc.2 
-	  IL_00e3:  brfalse.s IL_00eb
-
-	  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 1946
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
-    {
-        // Method begins at RVA 0x253d0
-	// 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.XmlLogger::_threshold
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlLogger::get_Threshold
-
-    // method line 1947
-    .method public final virtual hidebysig newslot specialname 
-           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
-    {
-        // Method begins at RVA 0x253eb
-	// 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_0008:  ret 
-    } // end of method XmlLogger::set_Threshold
-
-    // method line 1948
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_EmacsMode ()  cil managed 
-    {
-        // Method begins at RVA 0x253f8
-	// 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 XmlLogger::get_EmacsMode
-
-    // method line 1949
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_EmacsMode (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2540e
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method XmlLogger::set_EmacsMode
-
-    // method line 1950
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
-    {
-        // Method begins at RVA 0x25414
-	// 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.XmlLogger::_outputWriter
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlLogger::get_OutputWriter
-
-    // method line 1951
-    .method public final virtual hidebysig newslot specialname 
-           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2542f
-	// 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_0008:  ret 
-    } // end of method XmlLogger::set_OutputWriter
-
-    // method line 1952
-    .method public final virtual hidebysig newslot 
-           instance default void Flush ()  cil managed 
-    {
-        // Method begins at RVA 0x2543c
-	// Code size 47 (0x2f)
-	.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:  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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0024:  ldloc.1 
-	  IL_0025:  brfalse.s IL_002d
-
-	  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 1953
-    .method public hidebysig 
-           instance default string StripFormatting (string message)  cil managed 
-    {
-        // Method begins at RVA 0x25488
-	// Code size 119 (0x77)
-	.maxstack 3
-	.locals init (
-		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:  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_0075:  ldloc.3 
-	IL_0076:  ret 
-    } // end of method XmlLogger::StripFormatting
-
-    // method line 1954
-    .method public hidebysig 
-           instance default bool IsJustWhiteSpace (string message)  cil managed 
-    {
-        // Method begins at RVA 0x2550c
-	// Code size 32 (0x20)
-	.maxstack 2
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		bool	V_1)
-	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
-
-    // method line 1955
-    .method private hidebysig 
-           instance default void WriteErrorNode (class [mscorlib]System.Exception exception)  cil managed 
-    {
-        // Method begins at RVA 0x25538
-	// Code size 505 (0x1f9)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.BuildException	V_0,
-		int32	V_1,
-		int32	V_2)
-	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_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 1956
-    .method private hidebysig 
-           instance default bool IsValidXml (string message)  cil managed 
-    {
-        // Method begins at RVA 0x25740
-	// Code size 96 (0x60)
-	.maxstack 3
-	.locals init (
-		class [System.Xml]System.Xml.XmlValidatingReader	V_0,
-		bool	V_1)
-	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_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_005e:  ldloc.1 
-	IL_005f:  ret 
-    } // end of method XmlLogger::IsValidXml
-
-    // method line 1957
-    .method private hidebysig 
-           instance default string StripCData (string message)  cil managed 
-    {
-        // Method begins at RVA 0x257c8
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1)
-	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_0028:  ldloc.1 
-	IL_0029:  ret 
-    } // end of method XmlLogger::StripCData
-
-    // method line 1958
-    .method private hidebysig 
-           instance default void WriteNameAttribute (string name)  cil managed 
-    {
-        // Method begins at RVA 0x257fe
-	// 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.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"
-
-    // method line 1959
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x25812
-	// 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
-
-  .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"
-
-    // method line 1960
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2581a
-	// Code size 7 (0x7)
-	.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
-
-  } // end of class NAnt.Core.XmlLogger
-}
-
-.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 1961
-    .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 0x25824
-	// 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 1962
-    .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 0x25954
-	// 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_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 1963
-    .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 0x25b54
-	.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 1964
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x25c90
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Name
-
-    // method line 1965
-    .method public hidebysig specialname 
-           instance default string get_Family ()  cil managed 
-    {
-        // Method begins at RVA 0x25cac
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Family
-
-    // method line 1966
-    .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
-    {
-        // Method begins at RVA 0x25cc8
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Description
-
-    // method line 1967
-    .method assembly hidebysig specialname 
-           instance default valuetype NAnt.Core.VendorType get_Vendor ()  cil managed 
-    {
-        // Method begins at RVA 0x25ce4
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Vendor
-
-    // method line 1968
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Version get_Version ()  cil managed 
-    {
-        // Method begins at RVA 0x25d00
-	// 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::_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_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 1969
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Version get_ClrVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x25d6c
-	// 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_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 "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
-
-	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
-
-	IL_005c:  ldloc.1 
-	IL_005d:  ret 
-    } // end of method FrameworkInfo::get_ClrVersion
-
-    // method line 1970
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ClrType get_ClrType ()  cil managed 
-    {
-        // Method begins at RVA 0x25dd8
-	// 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_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_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_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
-
-	} // 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_007b:  ldloc.2 
-	IL_007c:  ret 
-    } // end of method FrameworkInfo::get_ClrType
-
-    // method line 1971
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Version get_VisualStudioVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x25e74
-	// 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_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_0031:  ldloc.0 
-	IL_0032:  ldstr "1.0"
-	IL_0037:  call bool string::op_Equality(string, string)
-	IL_003c:  brtrue IL_0076
-
-	IL_0041:  ldloc.0 
-	IL_0042:  ldstr "1.1"
-	IL_0047:  call bool string::op_Equality(string, string)
-	IL_004c:  brtrue IL_0083
-
-	IL_0051:  ldloc.0 
-	IL_0052:  ldstr "2.0"
-	IL_0057:  call bool string::op_Equality(string, string)
-	IL_005c:  brtrue IL_0090
-
-	IL_0061:  ldloc.0 
-	IL_0062:  ldstr "4.0"
-	IL_0067:  call bool string::op_Equality(string, string)
-	IL_006c:  brtrue IL_009d
-
-	IL_0071:  br IL_00ab
-
-	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_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_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_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_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 1972
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x25f54
-	// 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_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 1973
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.Configuration.Runtime get_Runtime ()  cil managed 
-    {
-        // Method begins at RVA 0x25fe0
-	// 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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FrameworkInfo::get_Runtime
-
-    // method line 1974
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkAssemblyDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x26004
-	// 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_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 1975
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_SdkDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x260c4
-	// Code size 27 (0x1b)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	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_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method FrameworkInfo::get_SdkDirectory
-
-    // method line 1976
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x260ec
-	// Code size 27 (0x1b)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Project	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_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method FrameworkInfo::get_Project
-
-    // method line 1977
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_TaskAssemblies ()  cil managed 
-    {
-        // Method begins at RVA 0x26114
-	// Code size 167 (0xa7)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class NAnt.Core.Types.FileSet	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 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_00a5:  ldloc.1 
-	IL_00a6:  ret 
-    } // end of method FrameworkInfo::get_TaskAssemblies
-
-    // method line 1978
-    .method public hidebysig specialname 
-           instance default bool get_IsValid ()  cil managed 
-    {
-        // Method begins at RVA 0x261c8
-	// Code size 26 (0x1a)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	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
-
-	} // 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
-
-	} // end handler 0
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FrameworkInfo::get_IsValid
-
-    // method line 1979
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet[] get_ReferenceAssemblies ()  cil managed 
-    {
-        // Method begins at RVA 0x26200
-	// Code size 207 (0xcf)
-	.maxstack 4
-	.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)
-	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_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_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_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_00cc:  ldloc.s 4
-	IL_00ce:  ret 
-    } // end of method FrameworkInfo::get_ReferenceAssemblies
-
-    // method line 1980
-    .method assembly hidebysig specialname 
-           instance default string[] get_ToolPaths ()  cil managed 
-    {
-        // Method begins at RVA 0x262dc
-	// 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_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_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_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_009b:  ldloc.2 
-	IL_009c:  ret 
-    } // end of method FrameworkInfo::get_ToolPaths
-
-    // method line 1981
-    .method assembly hidebysig specialname 
-           instance default string get_RuntimeEngine ()  cil managed 
-    {
-        // Method begins at RVA 0x26388
-	// 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)
-	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_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_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_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_0055:  nop 
-	IL_0056:  ldsfld string [mscorlib]System.String::Empty
-	IL_005b:  stloc.0 
-	IL_005c:  br IL_0061
-
-	IL_0061:  ldloc.0 
-	IL_0062:  ret 
-    } // end of method FrameworkInfo::get_RuntimeEngine
-
-    // method line 1982
-    .method private hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
-    {
-        // Method begins at RVA 0x263f8
-	// 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.FrameworkInfo::_nsMgr
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_NamespaceManager
-
-    // method line 1983
-    .method assembly static hidebysig specialname 
-           default class [mscorlib]System.Collections.IComparer get_NameComparer ()  cil managed 
-    {
-        // Method begins at RVA 0x26414
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.IComparer	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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method FrameworkInfo::get_NameComparer
-
-    // method line 1984
-    .method public hidebysig 
-           instance default string ResolveAssembly (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x26430
-	// 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)
-	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_0039:  ldloc.0 
-	IL_003a:  stloc.s 4
-	IL_003c:  br IL_0041
-
-	IL_0041:  ldloc.s 4
-	IL_0043:  ret 
-    } // end of method FrameworkInfo::ResolveAssembly
-
-    // method line 1985
-    .method assembly hidebysig 
-           instance default void Validate ()  cil managed 
-    {
-        // Method begins at RVA 0x26480
-	// Code size 199 (0xc7)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Exception	V_0)
-	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_000d:  nop 
-	IL_000e:  br IL_00c6
-
-	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_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_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_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_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 1986
-    .method assembly hidebysig 
-           instance default string GetToolPath (string tool)  cil managed 
-    {
-        // Method begins at RVA 0x26564
-	// Code size 39 (0x27)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0012
-
-	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_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FrameworkInfo::GetToolPath
-
-    // method line 1987
-    .method private hidebysig 
-           instance default void Init ()  cil managed 
-    {
-        // Method begins at RVA 0x26598
-	// Code size 79 (0x4f)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Exception	V_0)
-	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_000c:  nop 
-	IL_000d:  br IL_004e
-
-	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.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_004e:  ret 
-    } // end of method FrameworkInfo::Init
-
-    // method line 1988
-    .method private hidebysig 
-           instance default void PerformInit ()  cil managed 
-    {
-        // Method begins at RVA 0x26604
-	// Code size 290 (0x122)
-	.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)
-	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_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_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
-
-	} // end .try 0
-	catch class NAnt.Core.BuildException { // 0
-	  IL_00eb:  pop 
-	  IL_00ec:  nop 
-	  IL_00ed:  nop 
-	  IL_00ee:  leave IL_00f3
-
-	} // end handler 0
-	IL_00f3:  ldloc.s 5
-	IL_00f5:  brfalse IL_0113
-
-	IL_00fa:  ldloc.s 5
-	IL_00fc:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0101:  brfalse IL_0113
-
-	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 1989
-    .method private hidebysig 
-           instance default void AssertNotInvalid ()  cil managed 
-    {
-        // Method begins at RVA 0x26744
-	// Code size 48 (0x30)
-	.maxstack 8
-	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_0018:  ldarg.0 
-	IL_0019:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_001e:  brtrue IL_002f
-
-	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 1990
-    .method private static hidebysig 
-           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
-    {
-        // Method begins at RVA 0x26778
-	// 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 FrameworkInfo::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 () 
-	}
-	.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)
-
-  } // end of class InitStatus
-
-  .class nested private auto ansi beforefieldinit FrameworkNameComparer
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IComparer  {
-
-    // method line 1991
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x267be
-	// 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 1992
-    .method public final virtual hidebysig newslot 
-           instance default int32 Compare (object x, object y)  cil managed 
-    {
-        // Method begins at RVA 0x267c8
-	// Code size 46 (0x2e)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		int32	V_2)
-	IL_0000:  nop 
-	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
-
-	IL_002c:  ldloc.2 
-	IL_002d:  ret 
-    } // end of method FrameworkNameComparer::Compare
-
-  } // end of class FrameworkNameComparer
-
-  } // end of class NAnt.Core.FrameworkInfo
-}
-
-.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
-}
-
-.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
-
-    // method line 1993
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x26802
-	// 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
-
-    // method line 1994
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (bool caseSensitive)  cil managed 
-    {
-        // Method begins at RVA 0x26810
-	// 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
-
-    // method line 1995
-    .method public final virtual hidebysig newslot 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x26840
-	// 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_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_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_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_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_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_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_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_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_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_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_01a4:  ldloc.1 
-	IL_01a5:  ret 
-    } // end of method DirectoryScanner::Clone
-
-    // method line 1996
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
-    {
-        // Method begins at RVA 0x269f4
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_CaseSensitive
-
-    // method line 1997
-    .method public hidebysig specialname 
-           instance default void set_CaseSensitive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x26a0f
-	// 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 1998
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
-    {
-        // Method begins at RVA 0x26a30
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_Includes
-
-    // method line 1999
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
-    {
-        // Method begins at RVA 0x26a4c
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_Excludes
-
-    // method line 2000
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x26a68
-	// 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_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_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method DirectoryScanner::get_BaseDirectory
-
-    // method line 2001
-    .method public hidebysig specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x26aaa
-	// Code size 60 (0x3c)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0020
-
-	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_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 2002
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
-    {
-        // Method begins at RVA 0x26ae8
-	// 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_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_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method DirectoryScanner::get_FileNames
-
-    // method line 2003
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
-    {
-        // Method begins at RVA 0x26b18
-	// 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_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 2004
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
-    {
-        // Method begins at RVA 0x26b48
-	// 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_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_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method DirectoryScanner::get_ScannedDirectories
-
-    // method line 2005
-    .method public hidebysig specialname 
-           instance default bool get_IsEverythingIncluded ()  cil managed 
-    {
-        // Method begins at RVA 0x26b78
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_IsEverythingIncluded
-
-    // method line 2006
-    .method public hidebysig 
-           instance default void Scan ()  cil managed 
-    {
-        // Method begins at RVA 0x26b94
-	// 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 2007
-    .method private hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x26c8c
-	// 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 2008
-    .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 0x26ce0
-	// 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_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_0141:  ldloc.s 5
-	  IL_0143:  isinst [mscorlib]System.IDisposable
-	  IL_0148:  dup 
-	  IL_0149:  stloc.s 9
-	  IL_014b:  brfalse IL_0157
-
-	  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
-
-    // method line 2009
-    .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 0x26e64
-	// 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 2010
-    .method private hidebysig 
-           instance default void ScanDirectory (string path, bool recursive)  cil managed 
-    {
-        // Method begins at RVA 0x2705c
-	// 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_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_0074:  br IL_0114
-
-	  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_0125:  ldloc.s 6
-	  IL_0127:  isinst [mscorlib]System.IDisposable
-	  IL_012c:  dup 
-	  IL_012d:  stloc.s 9
-	  IL_012f:  brfalse IL_013b
-
-	  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_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_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_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_0198:  nop 
-	  IL_0199:  ldloc.s 10
-	  IL_019b:  ldfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
-	  IL_01a0:  brtrue IL_01ab
-
-	  IL_01a5:  nop 
-	  IL_01a6:  leave IL_01fd
-
-	  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_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_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_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 2011
-    .method private hidebysig 
-           instance default bool TestRegex (string path, class NAnt.Core.DirectoryScanner/RegexEntry entry)  cil managed 
-    {
-        // Method begins at RVA 0x273a0
-	// 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_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 2012
-    .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 0x274a0
-	// 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_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_0063:  ldloc.s 4
-	  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:  ldloc.0 
-	IL_007b:  brtrue IL_00de
-
-	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 2013
-    .method private static hidebysig 
-           default class [mscorlib]System.Text.StringBuilder CleanPath (string nantPath)  cil managed 
-    {
-        // Method begins at RVA 0x276b8
-	// 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_002b:  ldloc.1 
-	IL_002c:  ret 
-    } // end of method DirectoryScanner::CleanPath
-
-    // method line 2014
-    .method private static hidebysig 
-           default string CleanPath (string baseDirectory, string nantPath)  cil managed 
-    {
-        // Method begins at RVA 0x276f4
-	// 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_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method DirectoryScanner::CleanPath
-
-    // method line 2015
-    .method private static hidebysig 
-           default string ToRegexPattern (string nantPattern)  cil managed 
-    {
-        // Method begins at RVA 0x27724
-	// 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_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_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_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
+	  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
 
-    // method line 2016
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x27973
-	// 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_0188:  nop 
+	  IL_0189:  ldarg.2 
+	  IL_018a:  isinst [mscorlib]System.IO.DirectoryInfo
+	  IL_018f:  brfalse IL_01a6
 
-	.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_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
 
-    // method line 2017
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2799d
-	// 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_01a6:  ldarg.2 
+	  IL_01a7:  isinst [mscorlib]System.IO.FileInfo
+	  IL_01ac:  brfalse IL_01c3
 
-  } // end of class RegexEntry
+	  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 of class NAnt.Core.DirectoryScanner
-}
+	  IL_01c3:  nop 
+	  IL_01c4:  ldarg.1 
+	  IL_01c5:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	  IL_01ca:  brfalse IL_027b
 
-.namespace NAnt.Core
-{
-  .class private auto ansi serializable beforefieldinit StringCollectionWithGoodToString
-  	extends [System]System.Collections.Specialized.StringCollection
-  	implements [mscorlib]System.ICloneable  {
+	  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
 
-    // method line 2018
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x279a5
-	// 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_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
 
-    // method line 2019
-    .method public virtual hidebysig newslot 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x279b0
-	// 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_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_0029:  ldloc.2 
-	IL_002a:  ret 
-    } // end of method StringCollectionWithGoodToString::Clone
+	  IL_0222:  leave IL_0249
 
-    // method line 2020
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x279e8
-	// 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_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_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_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_0058:  leave IL_0071
+	  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
 
-	} // 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_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_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_027b:  ldloc.0 
+	  IL_027c:  brfalse IL_02b0
 
-	IL_007e:  ldloc.s 4
-	IL_0080:  ret 
-    } // end of method StringCollectionWithGoodToString::ToString
+	  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
 
-  } // end of class NAnt.Core.StringCollectionWithGoodToString
-}
+	  IL_02c1:  ldarg.2 
+	  IL_02c2:  stloc.1 
+	  IL_02c3:  leave IL_0311
 
-.namespace NAnt.Core
-{
-  .class private auto ansi serializable beforefieldinit DirScannerStringCollection
-  	extends NAnt.Core.StringCollectionWithGoodToString
-  {
-    .field  private initonly  bool _caseSensitive
+	  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
 
-    // method line 2021
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (bool caseSensitive)  cil managed 
-    {
-        // Method begins at RVA 0x27a88
-	// 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
+	} // 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 2022
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
+    // method line 1986
+    .method family hidebysig 
+           instance default string GetSimpleTypeName (class [mscorlib]System.Type t)  cil managed 
     {
-        // Method begins at RVA 0x27a98
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x24ef4
+	// Code size 247 (0xf7)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirScannerStringCollection::get_CaseSensitive
+	IL_0016:  nop 
+	IL_0017:  ldstr "int"
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_00f5
 
-    // method line 2023
-    .method public virtual hidebysig 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x27ab4
-	// 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_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_002f:  ldloc.2 
-	IL_0030:  ret 
-    } // end of method DirScannerStringCollection::Clone
+	IL_0037:  nop 
+	IL_0038:  ldstr "long"
+	IL_003d:  stloc.0 
+	IL_003e:  br IL_00f5
 
-    // method line 2024
-    .method public virtual hidebysig newslot 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x27af4
-	// 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_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_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method DirScannerStringCollection::Contains
+	IL_0058:  nop 
+	IL_0059:  ldstr "double"
+	IL_005e:  stloc.0 
+	IL_005f:  br IL_00f5
 
-    // method line 2025
-    .method public virtual hidebysig newslot 
-           instance default int32 IndexOf (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x27b14
-	// 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_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_0007:  ldarg.0 
-	IL_0008:  call instance bool class NAnt.Core.DirScannerStringCollection::get_CaseSensitive()
-	IL_000d:  brfalse IL_0020
+	IL_0079:  nop 
+	IL_007a:  ldstr "string"
+	IL_007f:  stloc.0 
+	IL_0080:  br IL_00f5
 
-	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_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_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_009a:  nop 
+	IL_009b:  ldstr "bool"
+	IL_00a0:  stloc.0 
+	IL_00a1:  br IL_00f5
 
-	  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_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_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_00bb:  nop 
+	IL_00bc:  ldstr "datetime"
+	IL_00c1:  stloc.0 
+	IL_00c2:  br IL_00f5
 
-	  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_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_0062:  leave IL_007b
+	IL_00dc:  nop 
+	IL_00dd:  ldstr "timespan"
+	IL_00e2:  stloc.0 
+	IL_00e3:  br IL_00f5
 
-	} // 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_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_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_00f5:  ldloc.0 
+	IL_00f6:  ret 
+    } // end of method ExpressionEvalBase::GetSimpleTypeName
 
-	IL_0082:  ldloc.0 
-	IL_0083:  ret 
-    } // end of method DirScannerStringCollection::IndexOf
+    // method line 1987
+    .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
 
-	.property instance bool CaseSensitive ()
+    // method line 1988
+    .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 1989
+    .method family virtual hidebysig newslot 
+           instance default object UnexpectedToken ()  cil managed 
+    {
+        // Method begins at RVA 0x24ff7
+	// Code size 50 (0x32)
+	.maxstack 8
+	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
+
+	.property instance class NAnt.Core.Project Project ()
 	{
-		.get instance default bool NAnt.Core.DirScannerStringCollection::get_CaseSensitive () 
+		.get instance default class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::get_Project () 
 	}
-  } // end of class NAnt.Core.DirScannerStringCollection
+  .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)
+
+  } // end of class EvalMode
+
+  } // end of class NAnt.Core.ExpressionEvalBase
 }
 
 .namespace NAnt.Core
@@ -83772,11 +79471,11 @@
     .field  private notserialized  class NAnt.Core.DataTypeBaseDictionary _dataTypeReferences
     .field  private  valuetype NAnt.Core.Level _threshold
 
-    // method line 2026
+    // method line 1990
     .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 0x27bb4
+        // Method begins at RVA 0x2502c
 	// Code size 148 (0x94)
 	.maxstack 5
 	IL_0000:  ldarg.0 
@@ -83829,11 +79528,11 @@
 	IL_0093:  ret 
     } // end of method Project::.ctor
 
-    // method line 2027
+    // method line 1991
     .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 0x27c54
+        // Method begins at RVA 0x250cc
 	// Code size 144 (0x90)
 	.maxstack 5
 	IL_0000:  ldarg.0 
@@ -83885,11 +79584,11 @@
 	IL_008f:  ret 
     } // end of method Project::.ctor
 
-    // method line 2028
+    // method line 1992
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string uriOrFilePath, valuetype NAnt.Core.Level threshold, int32 indentLevel)  cil managed 
     {
-        // Method begins at RVA 0x27cf0
+        // Method begins at RVA 0x25168
 	// Code size 154 (0x9a)
 	.maxstack 5
 	IL_0000:  ldarg.0 
@@ -83944,11 +79643,11 @@
 	IL_0099:  ret 
     } // end of method Project::.ctor
 
-    // method line 2029
+    // method line 1993
     .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 0x27d98
+        // Method begins at RVA 0x25210
 	// Code size 150 (0x96)
 	.maxstack 5
 	IL_0000:  ldarg.0 
@@ -84002,11 +79701,11 @@
 	IL_0095:  ret 
     } // end of method Project::.ctor
 
-    // method line 2030
+    // method line 1994
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (string uriOrFilePath, class NAnt.Core.Project parent)  cil managed 
     {
-        // Method begins at RVA 0x27e3c
+        // Method begins at RVA 0x252b4
 	// Code size 283 (0x11b)
 	.maxstack 5
 	.locals init (
@@ -84118,11 +79817,11 @@
 	IL_011a:  ret 
     } // end of method Project::.ctor
 
-    // method line 2031
+    // method line 1995
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
     {
-        // Method begins at RVA 0x27f74
+        // Method begins at RVA 0x253ec
 	// Code size 140 (0x8c)
 	.maxstack 5
 	IL_0000:  ldarg.0 
@@ -84171,11 +79870,11 @@
 	IL_008b:  ret 
     } // end of method Project::.ctor
 
-    // method line 2032
+    // method line 1996
     .method public hidebysig specialname 
            instance default void add_BuildStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x2800c
+        // Method begins at RVA 0x25484
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84202,11 +79901,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_BuildStarted
 
-    // method line 2033
+    // method line 1997
     .method public hidebysig specialname 
            instance default void remove_BuildStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x28044
+        // Method begins at RVA 0x254bc
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84233,11 +79932,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_BuildStarted
 
-    // method line 2034
+    // method line 1998
     .method public hidebysig specialname 
            instance default void add_BuildFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x2807c
+        // Method begins at RVA 0x254f4
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84264,11 +79963,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_BuildFinished
 
-    // method line 2035
+    // method line 1999
     .method public hidebysig specialname 
            instance default void remove_BuildFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x280b4
+        // Method begins at RVA 0x2552c
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84295,11 +79994,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_BuildFinished
 
-    // method line 2036
+    // method line 2000
     .method public hidebysig specialname 
            instance default void add_TargetStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x280ec
+        // Method begins at RVA 0x25564
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84326,11 +80025,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_TargetStarted
 
-    // method line 2037
+    // method line 2001
     .method public hidebysig specialname 
            instance default void remove_TargetStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x28124
+        // Method begins at RVA 0x2559c
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84357,11 +80056,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_TargetStarted
 
-    // method line 2038
+    // method line 2002
     .method public hidebysig specialname 
            instance default void add_TargetFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x2815c
+        // Method begins at RVA 0x255d4
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84388,11 +80087,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_TargetFinished
 
-    // method line 2039
+    // method line 2003
     .method public hidebysig specialname 
            instance default void remove_TargetFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x28194
+        // Method begins at RVA 0x2560c
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84419,11 +80118,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_TargetFinished
 
-    // method line 2040
+    // method line 2004
     .method public hidebysig specialname 
            instance default void add_TaskStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x281cc
+        // Method begins at RVA 0x25644
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84450,11 +80149,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_TaskStarted
 
-    // method line 2041
+    // method line 2005
     .method public hidebysig specialname 
            instance default void remove_TaskStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x28204
+        // Method begins at RVA 0x2567c
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84481,11 +80180,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_TaskStarted
 
-    // method line 2042
+    // method line 2006
     .method public hidebysig specialname 
            instance default void add_TaskFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x2823c
+        // Method begins at RVA 0x256b4
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84512,11 +80211,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_TaskFinished
 
-    // method line 2043
+    // method line 2007
     .method public hidebysig specialname 
            instance default void remove_TaskFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x28274
+        // Method begins at RVA 0x256ec
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84543,11 +80242,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_TaskFinished
 
-    // method line 2044
+    // method line 2008
     .method public hidebysig specialname 
            instance default void add_MessageLogged (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x282ac
+        // Method begins at RVA 0x25724
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84574,11 +80273,11 @@
 	IL_0029:  ret 
     } // end of method Project::add_MessageLogged
 
-    // method line 2045
+    // method line 2009
     .method public hidebysig specialname 
            instance default void remove_MessageLogged (class NAnt.Core.BuildEventHandler 'value')  cil managed 
     {
-        // Method begins at RVA 0x282e4
+        // Method begins at RVA 0x2575c
 	// Code size 42 (0x2a)
 	.maxstack 3
 	.locals init (
@@ -84605,11 +80304,11 @@
 	IL_0029:  ret 
     } // end of method Project::remove_MessageLogged
 
-    // method line 2046
+    // method line 2010
     .method public hidebysig specialname 
            instance default int32 get_IndentationLevel ()  cil managed 
     {
-        // Method begins at RVA 0x2831c
+        // Method begins at RVA 0x25794
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -84624,11 +80323,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_IndentationLevel
 
-    // method line 2047
+    // method line 2011
     .method public hidebysig specialname 
            instance default int32 get_IndentationSize ()  cil managed 
     {
-        // Method begins at RVA 0x28338
+        // Method begins at RVA 0x257b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -84643,11 +80342,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_IndentationSize
 
-    // method line 2048
+    // method line 2012
     .method public hidebysig specialname 
            instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
     {
-        // Method begins at RVA 0x28354
+        // Method begins at RVA 0x257cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -84662,11 +80361,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_Threshold
 
-    // method line 2049
+    // method line 2013
     .method public hidebysig specialname 
            instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0x2836f
+        // Method begins at RVA 0x257e7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -84676,11 +80375,11 @@
 	IL_0008:  ret 
     } // end of method Project::set_Threshold
 
-    // method line 2050
+    // method line 2014
     .method public hidebysig specialname 
            instance default string get_ProjectName ()  cil managed 
     {
-        // Method begins at RVA 0x2837c
+        // Method begins at RVA 0x257f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -84695,11 +80394,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_ProjectName
 
-    // method line 2051
+    // method line 2015
     .method public hidebysig specialname 
            instance default string get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x28398
+        // Method begins at RVA 0x25810
 	// Code size 83 (0x53)
 	.maxstack 3
 	.locals init (
@@ -84737,11 +80436,11 @@
 	IL_0052:  ret 
     } // end of method Project::get_BaseDirectory
 
-    // method line 2052
+    // method line 2016
     .method public hidebysig specialname 
            instance default void set_BaseDirectory (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x283f8
+        // Method begins at RVA 0x25870
 	// Code size 67 (0x43)
 	.maxstack 5
 	.locals init (
@@ -84772,11 +80471,11 @@
 	IL_0042:  ret 
     } // end of method Project::set_BaseDirectory
 
-    // method line 2053
+    // method line 2017
     .method public hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
     {
-        // Method begins at RVA 0x28448
+        // Method begins at RVA 0x258c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -84791,11 +80490,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_NamespaceManager
 
-    // method line 2054
+    // method line 2018
     .method public hidebysig specialname 
            instance default class [System]System.Uri get_BuildFileUri ()  cil managed 
     {
-        // Method begins at RVA 0x28464
+        // Method begins at RVA 0x258dc
 	// Code size 85 (0x55)
 	.maxstack 3
 	.locals init (
@@ -84835,11 +80534,11 @@
 	IL_0054:  ret 
     } // end of method Project::get_BuildFileUri
 
-    // method line 2055
+    // method line 2019
     .method public hidebysig specialname 
            instance default class NAnt.Core.FrameworkInfoDictionary get_Frameworks ()  cil managed 
     {
-        // Method begins at RVA 0x284c8
+        // Method begins at RVA 0x25940
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -84854,11 +80553,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_Frameworks
 
-    // method line 2056
+    // method line 2020
     .method assembly hidebysig 
            instance default class NAnt.Core.FrameworkInfo[] GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
     {
-        // Method begins at RVA 0x284e4
+        // Method begins at RVA 0x2595c
 	// Code size 411 (0x19b)
 	.maxstack 3
 	.locals init (
@@ -85052,11 +80751,11 @@
 	IL_019a:  ret 
     } // end of method Project::GetFrameworks
 
-    // method line 2057
+    // method line 2021
     .method public hidebysig specialname 
            instance default class NAnt.Core.FrameworkInfo get_RuntimeFramework ()  cil managed 
     {
-        // Method begins at RVA 0x286a8
+        // Method begins at RVA 0x25b20
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85071,11 +80770,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_RuntimeFramework
 
-    // method line 2058
+    // method line 2022
     .method public hidebysig specialname 
            instance default void set_RuntimeFramework (class NAnt.Core.FrameworkInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x286c3
+        // Method begins at RVA 0x25b3b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85085,11 +80784,11 @@
 	IL_0008:  ret 
     } // end of method Project::set_RuntimeFramework
 
-    // method line 2059
+    // method line 2023
     .method public hidebysig specialname 
            instance default class NAnt.Core.FrameworkInfo get_TargetFramework ()  cil managed 
     {
-        // Method begins at RVA 0x286d0
+        // Method begins at RVA 0x25b48
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85104,11 +80803,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_TargetFramework
 
-    // method line 2060
+    // method line 2024
     .method public hidebysig specialname 
            instance default void set_TargetFramework (class NAnt.Core.FrameworkInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x286eb
+        // Method begins at RVA 0x25b63
 	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85129,11 +80828,11 @@
 	IL_0026:  ret 
     } // end of method Project::set_TargetFramework
 
-    // method line 2061
+    // method line 2025
     .method public hidebysig specialname 
            instance default string get_PlatformName ()  cil managed 
     {
-        // Method begins at RVA 0x28714
+        // Method begins at RVA 0x25b8c
 	// Code size 118 (0x76)
 	.maxstack 4
 	.locals init (
@@ -85177,11 +80876,11 @@
 	IL_0075:  ret 
     } // end of method Project::get_PlatformName
 
-    // method line 2062
+    // method line 2026
     .method public hidebysig specialname 
            instance default class NAnt.Core.Target get_CurrentTarget ()  cil managed 
     {
-        // Method begins at RVA 0x28798
+        // Method begins at RVA 0x25c10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85196,11 +80895,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_CurrentTarget
 
-    // method line 2063
+    // method line 2027
     .method public hidebysig specialname 
            instance default string get_BuildFileLocalName ()  cil managed 
     {
-        // Method begins at RVA 0x287b4
+        // Method begins at RVA 0x25c2c
 	// Code size 62 (0x3e)
 	.maxstack 2
 	.locals init (
@@ -85233,11 +80932,11 @@
 	IL_003d:  ret 
     } // end of method Project::get_BuildFileLocalName
 
-    // method line 2064
+    // method line 2028
     .method public hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlDocument get_Document ()  cil managed 
     {
-        // Method begins at RVA 0x28800
+        // Method begins at RVA 0x25c78
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85252,11 +80951,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_Document
 
-    // method line 2065
+    // method line 2029
     .method public hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationNode ()  cil managed 
     {
-        // Method begins at RVA 0x2881c
+        // Method begins at RVA 0x25c94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85271,11 +80970,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_ConfigurationNode
 
-    // method line 2066
+    // method line 2030
     .method public hidebysig specialname 
            instance default string get_DefaultTargetName ()  cil managed 
     {
-        // Method begins at RVA 0x28838
+        // Method begins at RVA 0x25cb0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85290,11 +80989,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_DefaultTargetName
 
-    // method line 2067
+    // method line 2031
     .method public hidebysig specialname 
            instance default bool get_Verbose ()  cil managed 
     {
-        // Method begins at RVA 0x28854
+        // Method begins at RVA 0x25ccc
 	// Code size 25 (0x19)
 	.maxstack 2
 	.locals init (
@@ -85313,11 +81012,11 @@
 	IL_0018:  ret 
     } // end of method Project::get_Verbose
 
-    // method line 2068
+    // method line 2032
     .method public hidebysig specialname 
            instance default class [System]System.Collections.Specialized.StringCollection get_BuildTargets ()  cil managed 
     {
-        // Method begins at RVA 0x2887c
+        // Method begins at RVA 0x25cf4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85332,11 +81031,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_BuildTargets
 
-    // method line 2069
+    // method line 2033
     .method public hidebysig specialname 
            instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
     {
-        // Method begins at RVA 0x28898
+        // Method begins at RVA 0x25d10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85351,11 +81050,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_Properties
 
-    // method line 2070
+    // method line 2034
     .method public hidebysig specialname 
            instance default class NAnt.Core.PropertyDictionary get_FrameworkNeutralProperties ()  cil managed 
     {
-        // Method begins at RVA 0x288b4
+        // Method begins at RVA 0x25d2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85370,11 +81069,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_FrameworkNeutralProperties
 
-    // method line 2071
+    // method line 2035
     .method public hidebysig specialname 
            instance default class NAnt.Core.DataTypeBaseDictionary get_DataTypeReferences ()  cil managed 
     {
-        // Method begins at RVA 0x288d0
+        // Method begins at RVA 0x25d48
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85389,11 +81088,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_DataTypeReferences
 
-    // method line 2072
+    // method line 2036
     .method public hidebysig specialname 
            instance default class NAnt.Core.TargetCollection get_Targets ()  cil managed 
     {
-        // Method begins at RVA 0x288ec
+        // Method begins at RVA 0x25d64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85408,11 +81107,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_Targets
 
-    // method line 2073
+    // method line 2037
     .method public hidebysig specialname 
            instance default class NAnt.Core.BuildListenerCollection get_BuildListeners ()  cil managed 
     {
-        // Method begins at RVA 0x28908
+        // Method begins at RVA 0x25d80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85427,11 +81126,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_BuildListeners
 
-    // method line 2074
+    // method line 2038
     .method assembly hidebysig specialname 
            instance default class NAnt.Core.LocationMap get_LocationMap ()  cil managed 
     {
-        // Method begins at RVA 0x28924
+        // Method begins at RVA 0x25d9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -85446,11 +81145,11 @@
 	IL_000e:  ret 
     } // end of method Project::get_LocationMap
 
-    // method line 2075
+    // method line 2039
     .method public hidebysig 
            instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
     {
-        // Method begins at RVA 0x28940
+        // Method begins at RVA 0x25db8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -85467,11 +81166,11 @@
 	IL_0014:  ret 
     } // end of method Project::GetLocation
 
-    // method line 2076
+    // method line 2040
     .method public hidebysig 
            instance default void OnBuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x28961
+        // Method begins at RVA 0x25dd9
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85489,11 +81188,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnBuildStarted
 
-    // method line 2077
+    // method line 2041
     .method public hidebysig 
            instance default void OnBuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2897e
+        // Method begins at RVA 0x25df6
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85511,11 +81210,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnBuildFinished
 
-    // method line 2078
+    // method line 2042
     .method public hidebysig 
            instance default void OnTargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2899b
+        // Method begins at RVA 0x25e13
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85533,11 +81232,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnTargetStarted
 
-    // method line 2079
+    // method line 2043
     .method public hidebysig 
            instance default void OnTargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x289b8
+        // Method begins at RVA 0x25e30
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85555,11 +81254,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnTargetFinished
 
-    // method line 2080
+    // method line 2044
     .method public hidebysig 
            instance default void OnTaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x289d5
+        // Method begins at RVA 0x25e4d
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85577,11 +81276,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnTaskStarted
 
-    // method line 2081
+    // method line 2045
     .method public hidebysig 
            instance default void OnTaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x289f2
+        // Method begins at RVA 0x25e6a
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85599,11 +81298,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnTaskFinished
 
-    // method line 2082
+    // method line 2046
     .method public hidebysig 
            instance default void OnMessageLogged (class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x28a0f
+        // Method begins at RVA 0x25e87
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85621,11 +81320,11 @@
 	IL_001b:  ret 
     } // end of method Project::OnMessageLogged
 
-    // method line 2083
+    // method line 2047
     .method public hidebysig 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
     {
-        // Method begins at RVA 0x28a2c
+        // Method begins at RVA 0x25ea4
 	// Code size 30 (0x1e)
 	.maxstack 2
 	.locals init (
@@ -85646,14 +81345,14 @@
 	IL_001d:  ret 
     } // end of method Project::Log
 
-    // method line 2084
+    // method line 2048
     .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 ) // ....
 
-        // Method begins at RVA 0x28a58
+        // Method begins at RVA 0x25ed0
 	// Code size 41 (0x29)
 	.maxstack 4
 	.locals init (
@@ -85677,11 +81376,11 @@
 	IL_0028:  ret 
     } // end of method Project::Log
 
-    // method line 2085
+    // method line 2049
     .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 0x28a90
+        // Method begins at RVA 0x25f08
 	// Code size 30 (0x1e)
 	.maxstack 2
 	.locals init (
@@ -85702,11 +81401,11 @@
 	IL_001d:  ret 
     } // end of method Project::Log
 
-    // method line 2086
+    // method line 2050
     .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 0x28abc
+        // Method begins at RVA 0x25f34
 	// Code size 30 (0x1e)
 	.maxstack 2
 	.locals init (
@@ -85727,11 +81426,11 @@
 	IL_001d:  ret 
     } // end of method Project::Log
 
-    // method line 2087
+    // method line 2051
     .method public virtual hidebysig newslot 
            instance default void Execute ()  cil managed 
     {
-        // Method begins at RVA 0x28ae8
+        // Method begins at RVA 0x25f60
 	// Code size 352 (0x160)
 	.maxstack 4
 	.locals init (
@@ -85887,11 +81586,11 @@
 	IL_015f:  ret 
     } // end of method Project::Execute
 
-    // method line 2088
+    // method line 2052
     .method public hidebysig 
            instance default void Execute (string targetName)  cil managed 
     {
-        // Method begins at RVA 0x28c70
+        // Method begins at RVA 0x260e8
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  nop 
@@ -85902,11 +81601,11 @@
 	IL_0009:  ret 
     } // end of method Project::Execute
 
-    // method line 2089
+    // method line 2053
     .method public hidebysig 
            instance default void Execute (string targetName, bool forceDependencies)  cil managed 
     {
-        // Method begins at RVA 0x28c7c
+        // Method begins at RVA 0x260f4
 	// Code size 117 (0x75)
 	.maxstack 4
 	.locals init (
@@ -85969,11 +81668,11 @@
 	IL_0074:  ret 
     } // end of method Project::Execute
 
-    // method line 2090
+    // method line 2054
     .method public hidebysig 
            instance default bool Run ()  cil managed 
     {
-        // Method begins at RVA 0x28d00
+        // Method begins at RVA 0x26178
 	// Code size 371 (0x173)
 	.maxstack 7
 	.locals init (
@@ -86140,11 +81839,11 @@
 	IL_0172:  ret 
     } // end of method Project::Run
 
-    // method line 2091
+    // method line 2055
     .method public hidebysig 
            instance default class NAnt.Core.DataTypeBase CreateDataTypeBase (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
     {
-        // Method begins at RVA 0x28ea8
+        // Method begins at RVA 0x26320
 	// Code size 51 (0x33)
 	.maxstack 2
 	.locals init (
@@ -86176,11 +81875,11 @@
 	IL_0032:  ret 
     } // end of method Project::CreateDataTypeBase
 
-    // method line 2092
+    // method line 2056
     .method public hidebysig 
            instance default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode)  cil managed 
     {
-        // Method begins at RVA 0x28ee8
+        // Method begins at RVA 0x26360
 	// Code size 17 (0x11)
 	.maxstack 3
 	.locals init (
@@ -86197,11 +81896,11 @@
 	IL_0010:  ret 
     } // end of method Project::CreateTask
 
-    // method line 2093
+    // method line 2057
     .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 0x28f08
+        // Method begins at RVA 0x26380
 	// Code size 51 (0x33)
 	.maxstack 2
 	.locals init (
@@ -86233,11 +81932,11 @@
 	IL_0032:  ret 
     } // end of method Project::CreateTask
 
-    // method line 2094
+    // method line 2058
     .method public hidebysig 
            instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
     {
-        // Method begins at RVA 0x28f48
+        // Method begins at RVA 0x263c0
 	// Code size 22 (0x16)
 	.maxstack 3
 	.locals init (
@@ -86255,11 +81954,11 @@
 	IL_0015:  ret 
     } // end of method Project::ExpandProperties
 
-    // method line 2095
+    // method line 2059
     .method public hidebysig 
            instance default string GetFullPath (string path)  cil managed 
     {
-        // Method begins at RVA 0x28f6c
+        // Method begins at RVA 0x263e4
 	// Code size 153 (0x99)
 	.maxstack 4
 	.locals init (
@@ -86334,11 +82033,11 @@
 	IL_0098:  ret 
     } // end of method Project::GetFullPath
 
-    // method line 2096
+    // method line 2060
     .method public hidebysig 
            instance default void CreateDefaultLogger ()  cil managed 
     {
-        // Method begins at RVA 0x29024
+        // Method begins at RVA 0x2649c
 	// Code size 166 (0xa6)
 	.maxstack 3
 	.locals init (
@@ -86400,11 +82099,11 @@
 	IL_00a5:  ret 
     } // end of method Project::CreateDefaultLogger
 
-    // method line 2097
+    // method line 2061
     .method public hidebysig 
            instance default void Indent ()  cil managed 
     {
-        // Method begins at RVA 0x290d6
+        // Method begins at RVA 0x2654e
 	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
@@ -86417,11 +82116,11 @@
 	IL_000f:  ret 
     } // end of method Project::Indent
 
-    // method line 2098
+    // method line 2062
     .method public hidebysig 
            instance default void Unindent ()  cil managed 
     {
-        // Method begins at RVA 0x290e7
+        // Method begins at RVA 0x2655f
 	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
@@ -86434,11 +82133,11 @@
 	IL_000f:  ret 
     } // end of method Project::Unindent
 
-    // method line 2099
+    // method line 2063
     .method public hidebysig 
            instance default void DetachBuildListeners ()  cil managed 
     {
-        // Method begins at RVA 0x290f8
+        // Method begins at RVA 0x26570
 	// Code size 248 (0xf8)
 	.maxstack 3
 	.locals init (
@@ -86537,11 +82236,11 @@
 	IL_00f7:  ret 
     } // end of method Project::DetachBuildListeners
 
-    // method line 2100
+    // method line 2064
     .method public hidebysig 
            instance default void AttachBuildListeners (class NAnt.Core.BuildListenerCollection listeners)  cil managed 
     {
-        // Method begins at RVA 0x2920c
+        // Method begins at RVA 0x26684
 	// Code size 212 (0xd4)
 	.maxstack 3
 	.locals init (
@@ -86631,11 +82330,11 @@
 	IL_00d3:  ret 
     } // end of method Project::AttachBuildListeners
 
-    // method line 2101
+    // method line 2065
     .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 0x292fc
+        // Method begins at RVA 0x26774
 	// Code size 779 (0x30b)
 	.maxstack 4
 	.locals init (
@@ -86912,11 +82611,11 @@
 	IL_030a:  ret 
     } // end of method Project::CtorHelper
 
-    // method line 2102
+    // method line 2066
     .method assembly hidebysig 
            instance default void InitializeProjectDocument (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
     {
-        // Method begins at RVA 0x29614
+        // Method begins at RVA 0x26a8c
 	// Code size 602 (0x25a)
 	.maxstack 7
 	.locals init (
@@ -87150,11 +82849,11 @@
 	IL_0259:  ret 
     } // end of method Project::InitializeProjectDocument
 
-    // method line 2103
+    // method line 2067
     .method private hidebysig 
            instance default class [System.Xml]System.Xml.XmlDocument LoadBuildFile (string uriOrFilePath)  cil managed 
     {
-        // Method begins at RVA 0x298b0
+        // Method begins at RVA 0x26d28
 	// Code size 171 (0xab)
 	.maxstack 3
 	.locals init (
@@ -87260,11 +82959,11 @@
 	IL_00aa:  ret 
     } // end of method Project::LoadBuildFile
 
-    // method line 2104
+    // method line 2068
     .method private hidebysig 
            instance default void ConfigurePlatformProperties ()  cil managed 
     {
-        // Method begins at RVA 0x2999c
+        // Method begins at RVA 0x26e14
 	// Code size 260 (0x104)
 	.maxstack 4
 	.locals init (
@@ -87344,11 +83043,11 @@
 	IL_0103:  ret 
     } // end of method Project::ConfigurePlatformProperties
 
-    // method line 2105
+    // method line 2069
     .method private hidebysig 
            instance default void UpdateTargetFrameworkProperties ()  cil managed 
     {
-        // Method begins at RVA 0x29aac
+        // Method begins at RVA 0x26f24
 	// Code size 257 (0x101)
 	.maxstack 3
 	IL_0000:  nop 
@@ -87424,11 +83123,11 @@
 	IL_0100:  ret 
     } // end of method Project::UpdateTargetFrameworkProperties
 
-    // method line 2106
+    // method line 2070
     .method private hidebysig 
            instance default class [System.Xml]System.Xml.XmlNode GetConfigurationNode ()  cil managed 
     {
-        // Method begins at RVA 0x29bbc
+        // Method begins at RVA 0x27034
 	// Code size 69 (0x45)
 	.maxstack 3
 	.locals init (
@@ -87459,11 +83158,11 @@
 	IL_0044:  ret 
     } // end of method Project::GetConfigurationNode
 
-    // method line 2107
+    // method line 2071
     .method public hidebysig 
            instance default class NAnt.Core.TargetCollection TopologicalTargetSort (string root, class NAnt.Core.TargetCollection targets)  cil managed 
     {
-        // Method begins at RVA 0x29c10
+        // Method begins at RVA 0x27088
 	// Code size 267 (0x10b)
 	.maxstack 6
 	.locals init (
@@ -87518,552 +83217,3841 @@
 	.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_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 2072
+    .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 0x271b0
+	// 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
+
+	} // 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_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_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
+
+    // method line 2073
+    .method private static hidebysig 
+           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
+    {
+        // Method begins at RVA 0x27368
+	// 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_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 Project::CreateCircularException
+
+    // method line 2074
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x273c9
+	// 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
+
+	.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
+}
+
+.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)
+
+  } // end of class NAnt.Core.Optimizations
+}
+
+.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 2075
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x273df
+	// 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 2076
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Item (string name)  cil managed 
+    {
+        // Method begins at RVA 0x27408
+	// 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 2077
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Item (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27457
+	// 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 2078
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x27468
+	// 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 2079
+    .method family virtual hidebysig 
+           instance default void OnClear ()  cil managed 
+    {
+        // Method begins at RVA 0x27483
+	// 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 2080
+    .method family virtual hidebysig 
+           instance default void OnSet (object key, object oldValue, object newValue)  cil managed 
+    {
+        // Method begins at RVA 0x2749c
+	// 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 2081
+    .method family virtual hidebysig 
+           instance default void OnInsert (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x274e8
+	// 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 2082
+    .method family virtual hidebysig 
+           instance default void OnRemove (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2752c
+	// 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 2083
+    .method family virtual hidebysig 
+           instance default void OnValidate (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27568
+	// 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 2084
+    .method public virtual hidebysig newslot 
+           instance default void AddReadOnly (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x275b2
+	// 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 2085
+    .method public virtual hidebysig newslot 
+           instance default void MarkDynamic (string name)  cil managed 
+    {
+        // Method begins at RVA 0x275e0
+	// 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 2086
+    .method public virtual hidebysig newslot 
+           instance default void Add (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27635
+	// 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 2087
+    .method public virtual hidebysig newslot 
+           instance default bool IsReadOnlyProperty (string name)  cil managed 
+    {
+        // Method begins at RVA 0x27648
+	// 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 2088
+    .method public virtual hidebysig newslot 
+           instance default bool IsDynamicProperty (string name)  cil managed 
+    {
+        // Method begins at RVA 0x2766c
+	// 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 2089
+    .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 0x27690
+	// 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 2090
+    .method public hidebysig 
+           instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x2778c
+	// 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 2091
+    .method public hidebysig 
+           instance default bool Contains (string name)  cil managed 
+    {
+        // Method begins at RVA 0x277b8
+	// 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 2092
+    .method public hidebysig 
+           instance default void Remove (string name)  cil managed 
+    {
+        // Method begins at RVA 0x277d9
+	// 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 2093
+    .method assembly hidebysig 
+           instance default string GetPropertyValue (string propertyName)  cil managed 
+    {
+        // Method begins at RVA 0x277e8
+	// 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 2094
+    .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 0x27818
+	// 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 2095
+    .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 0x27838
+	// 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 2096
+    .method private hidebysig 
+           instance default void CheckDeprecation (string name)  cil managed 
+    {
+        // Method begins at RVA 0x27ac4
+	// 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 2097
+    .method private static hidebysig 
+           default void ValidatePropertyName (string propertyName, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x27e28
+	// 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 2098
+    .method private static hidebysig 
+           default void ValidatePropertyValue (object 'value', class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x27ea0
+	// 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 2099
+    .method assembly static hidebysig 
+           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
+    {
+        // Method begins at RVA 0x27ef4
+	// 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 TaskBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  {
+    .field  private initonly  string _className
+    .field  private  string _taskName
+
+    // method line 2100
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
+    {
+        // Method begins at RVA 0x27f55
+	// 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
+
+    // method line 2101
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
+    {
+        // Method begins at RVA 0x27f65
+	// 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
+
+    // method line 2102
+    .method public hidebysig specialname 
+           instance default string get_ClassName ()  cil managed 
+    {
+        // Method begins at RVA 0x27f78
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TaskBuilder::get_ClassName
+
+    // method line 2103
+    .method public hidebysig specialname 
+           instance default string get_TaskName ()  cil managed 
+    {
+        // Method begins at RVA 0x27f94
+	// 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 2104
+    .method public hidebysig 
+           instance default class NAnt.Core.Task CreateTask ()  cil managed 
+    {
+        // Method begins at RVA 0x27ff0
+        .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_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 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 2105
+    .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 0x28044
+	// 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 2106
+    .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 0x28174
+	// 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_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 2107
+    .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 0x28374
+	.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 2108
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x284b0
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfo::get_Name
+
+    // method line 2109
+    .method public hidebysig specialname 
+           instance default string get_Family ()  cil managed 
+    {
+        // Method begins at RVA 0x284cc
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfo::get_Family
+
+    // method line 2110
+    .method public hidebysig specialname 
+           instance default string get_Description ()  cil managed 
+    {
+        // Method begins at RVA 0x284e8
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfo::get_Description
+
+    // method line 2111
+    .method assembly hidebysig specialname 
+           instance default valuetype NAnt.Core.VendorType get_Vendor ()  cil managed 
+    {
+        // Method begins at RVA 0x28504
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfo::get_Vendor
+
+    // method line 2112
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Version get_Version ()  cil managed 
+    {
+        // Method begins at RVA 0x28520
+	// 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::_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_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 2113
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Version get_ClrVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x2858c
+	// 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_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 "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
+
+	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
+
+	IL_005c:  ldloc.1 
+	IL_005d:  ret 
+    } // end of method FrameworkInfo::get_ClrVersion
+
+    // method line 2114
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ClrType get_ClrType ()  cil managed 
+    {
+        // Method begins at RVA 0x285f8
+	// 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_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_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_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
+
+	} // 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_007b:  ldloc.2 
+	IL_007c:  ret 
+    } // end of method FrameworkInfo::get_ClrType
+
+    // method line 2115
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Version get_VisualStudioVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x28694
+	// 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_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_0031:  ldloc.0 
+	IL_0032:  ldstr "1.0"
+	IL_0037:  call bool string::op_Equality(string, string)
+	IL_003c:  brtrue IL_0076
+
+	IL_0041:  ldloc.0 
+	IL_0042:  ldstr "1.1"
+	IL_0047:  call bool string::op_Equality(string, string)
+	IL_004c:  brtrue IL_0083
+
+	IL_0051:  ldloc.0 
+	IL_0052:  ldstr "2.0"
+	IL_0057:  call bool string::op_Equality(string, string)
+	IL_005c:  brtrue IL_0090
+
+	IL_0061:  ldloc.0 
+	IL_0062:  ldstr "4.0"
+	IL_0067:  call bool string::op_Equality(string, string)
+	IL_006c:  brtrue IL_009d
+
+	IL_0071:  br IL_00ab
+
+	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_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_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_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_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 2116
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x28774
+	// 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_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 2117
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.Configuration.Runtime get_Runtime ()  cil managed 
+    {
+        // Method begins at RVA 0x28800
+	// 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_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfo::get_Runtime
+
+    // method line 2118
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkAssemblyDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x28824
+	// 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_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 2119
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_SdkDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x288e4
+	// Code size 27 (0x1b)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	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_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method FrameworkInfo::get_SdkDirectory
+
+    // method line 2120
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x2890c
+	// Code size 27 (0x1b)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Project	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_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method FrameworkInfo::get_Project
+
+    // method line 2121
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_TaskAssemblies ()  cil managed 
+    {
+        // Method begins at RVA 0x28934
+	// Code size 167 (0xa7)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class NAnt.Core.Types.FileSet	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 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_00a5:  ldloc.1 
+	IL_00a6:  ret 
+    } // end of method FrameworkInfo::get_TaskAssemblies
+
+    // method line 2122
+    .method public hidebysig specialname 
+           instance default bool get_IsValid ()  cil managed 
+    {
+        // Method begins at RVA 0x289e8
+	// Code size 26 (0x1a)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	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
+
+	} // 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
+
+	} // end handler 0
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FrameworkInfo::get_IsValid
+
+    // method line 2123
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet[] get_ReferenceAssemblies ()  cil managed 
+    {
+        // Method begins at RVA 0x28a20
+	// Code size 207 (0xcf)
+	.maxstack 4
+	.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)
+	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_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_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_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_00cc:  ldloc.s 4
+	IL_00ce:  ret 
+    } // end of method FrameworkInfo::get_ReferenceAssemblies
+
+    // method line 2124
+    .method assembly hidebysig specialname 
+           instance default string[] get_ToolPaths ()  cil managed 
+    {
+        // Method begins at RVA 0x28afc
+	// 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_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_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_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_009b:  ldloc.2 
+	IL_009c:  ret 
+    } // end of method FrameworkInfo::get_ToolPaths
+
+    // method line 2125
+    .method assembly hidebysig specialname 
+           instance default string get_RuntimeEngine ()  cil managed 
+    {
+        // Method begins at RVA 0x28ba8
+	// 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)
+	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_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_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_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_0055:  nop 
+	IL_0056:  ldsfld string [mscorlib]System.String::Empty
+	IL_005b:  stloc.0 
+	IL_005c:  br IL_0061
+
+	IL_0061:  ldloc.0 
+	IL_0062:  ret 
+    } // end of method FrameworkInfo::get_RuntimeEngine
+
+    // method line 2126
+    .method private hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+    {
+        // Method begins at RVA 0x28c18
+	// 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.FrameworkInfo::_nsMgr
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfo::get_NamespaceManager
+
+    // method line 2127
+    .method assembly static hidebysig specialname 
+           default class [mscorlib]System.Collections.IComparer get_NameComparer ()  cil managed 
+    {
+        // Method begins at RVA 0x28c34
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IComparer	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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method FrameworkInfo::get_NameComparer
+
+    // method line 2128
+    .method public hidebysig 
+           instance default string ResolveAssembly (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x28c50
+	// 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)
+	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_0039:  ldloc.0 
+	IL_003a:  stloc.s 4
+	IL_003c:  br IL_0041
+
+	IL_0041:  ldloc.s 4
+	IL_0043:  ret 
+    } // end of method FrameworkInfo::ResolveAssembly
+
+    // method line 2129
+    .method assembly hidebysig 
+           instance default void Validate ()  cil managed 
+    {
+        // Method begins at RVA 0x28ca0
+	// Code size 199 (0xc7)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Exception	V_0)
+	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_000d:  nop 
+	IL_000e:  br IL_00c6
+
+	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_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_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_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_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
 
-	  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
+    // method line 2130
+    .method assembly hidebysig 
+           instance default string GetToolPath (string tool)  cil managed 
+    {
+        // Method begins at RVA 0x28d84
+	// Code size 39 (0x27)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0012
 
-	  IL_0099:  ldloc.s 5
-	  IL_009b:  ldstr "VISITING"
-	  IL_00a0:  call bool string::op_Equality(string, string)
-	  IL_00a5:  brfalse IL_00c1
+	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_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_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FrameworkInfo::GetToolPath
 
-	  IL_00ce:  leave IL_00ea
+    // method line 2131
+    .method private hidebysig 
+           instance default void Init ()  cil managed 
+    {
+        // Method begins at RVA 0x28db8
+	// Code size 79 (0x4f)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Exception	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0007:  brfalse IL_0012
 
-	} // 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_000c:  nop 
+	IL_000d:  br IL_004e
 
-	  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_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_0108:  ldloc.s 7
-	IL_010a:  ret 
-    } // end of method Project::TopologicalTargetSort
+	} // 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 
+	} // end handler 0
+	IL_004e:  ret 
+    } // end of method FrameworkInfo::Init
 
-    // method line 2108
+    // method line 2132
     .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 
+           instance default void PerformInit ()  cil managed 
     {
-        // Method begins at RVA 0x29d38
-	// Code size 411 (0x19b)
-	.maxstack 6
+        // Method begins at RVA 0x28e24
+	// Code size 290 (0x122)
+	.maxstack 4
 	.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)
+		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 
-	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_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_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_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:  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_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_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
+	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_00d6:  br IL_0129
+	  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_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
+	} // end .try 0
+	catch class NAnt.Core.BuildException { // 0
+	  IL_00eb:  pop 
+	  IL_00ec:  nop 
+	  IL_00ed:  nop 
+	  IL_00ee:  leave IL_00f3
 
-	  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
+	} // end handler 0
+	IL_00f3:  ldloc.s 5
+	IL_00f5:  brfalse IL_0113
 
-	  IL_010d:  ldloc.s 5
-	  IL_010f:  ldstr "VISITING"
-	  IL_0114:  call bool string::op_Equality(string, string)
-	  IL_0119:  brfalse IL_0128
+	IL_00fa:  ldloc.s 5
+	IL_00fc:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0101:  brfalse IL_0113
 
-	  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_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_0135:  leave IL_0151
+    // method line 2133
+    .method private hidebysig 
+           instance default void AssertNotInvalid ()  cil managed 
+    {
+        // Method begins at RVA 0x28f64
+	// Code size 48 (0x30)
+	.maxstack 8
+	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
 
-	} // 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_000d:  ldarg.0 
+	IL_000e:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0013:  brtrue IL_002f
 
-	  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_0018:  ldarg.0 
+	IL_0019:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_001e:  brtrue IL_002f
 
-	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_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 2109
+    // method line 2134
     .method private static hidebysig 
-           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
+           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
     {
-        // Method begins at RVA 0x29ef0
-	// Code size 85 (0x55)
+        // Method begins at RVA 0x28f98
+	// Code size 58 (0x3a)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		class NAnt.Core.BuildException	V_2)
+		string	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1,
+		string	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_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  brfalse IL_0031
 
-	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_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_0053:  ldloc.2 
-	IL_0054:  ret 
-    } // end of method Project::CreateCircularException
+	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
 
-    // method line 2110
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x29f51
-	// 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_0038:  ldloc.2 
+	IL_0039:  ret 
+    } // end of method FrameworkInfo::GetXmlAttributeValue
 
-	.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 ()
+	.property instance string Name ()
 	{
-		.get instance default class NAnt.Core.Target NAnt.Core.Project::get_CurrentTarget () 
+		.get instance default string NAnt.Core.FrameworkInfo::get_Name () 
 	}
-	.property instance string BuildFileLocalName ()
+	.property instance string Family ()
 	{
-		.get instance default string NAnt.Core.Project::get_BuildFileLocalName () 
+		.get instance default string NAnt.Core.FrameworkInfo::get_Family () 
 	}
-	.property instance class [System.Xml]System.Xml.XmlDocument Document ()
+	.property instance string Description ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::get_Document () 
+		.get instance default string NAnt.Core.FrameworkInfo::get_Description () 
 	}
-	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationNode ()
+	.property instance valuetype NAnt.Core.VendorType Vendor ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::get_ConfigurationNode () 
+		.get instance default valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::get_Vendor () 
 	}
-	.property instance string DefaultTargetName ()
+	.property instance class [mscorlib]System.Version Version ()
 	{
-		.get instance default string NAnt.Core.Project::get_DefaultTargetName () 
+		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_Version () 
 	}
-	.property instance bool Verbose ()
+	.property instance class [mscorlib]System.Version ClrVersion ()
 	{
-		.get instance default bool NAnt.Core.Project::get_Verbose () 
+		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_ClrVersion () 
 	}
-	.property instance class [System]System.Collections.Specialized.StringCollection BuildTargets ()
+	.property instance valuetype NAnt.Core.ClrType ClrType ()
 	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::get_BuildTargets () 
+		.get instance default valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::get_ClrType () 
 	}
-	.property instance class NAnt.Core.PropertyDictionary Properties ()
+	.property instance class [mscorlib]System.Version VisualStudioVersion ()
 	{
-		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Project::get_Properties () 
+		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_VisualStudioVersion () 
 	}
-	.property instance class NAnt.Core.PropertyDictionary FrameworkNeutralProperties ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo FrameworkDirectory ()
 	{
-		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Project::get_FrameworkNeutralProperties () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_FrameworkDirectory () 
 	}
-	.property instance class NAnt.Core.DataTypeBaseDictionary DataTypeReferences ()
+	.property instance class NAnt.Core.Configuration.Runtime Runtime ()
 	{
-		.get instance default class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::get_DataTypeReferences () 
+		.get instance default class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::get_Runtime () 
 	}
-	.property instance class NAnt.Core.TargetCollection Targets ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo FrameworkAssemblyDirectory ()
 	{
-		.get instance default class NAnt.Core.TargetCollection NAnt.Core.Project::get_Targets () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory () 
 	}
-	.property instance class NAnt.Core.BuildListenerCollection BuildListeners ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo SdkDirectory ()
 	{
-		.get instance default class NAnt.Core.BuildListenerCollection NAnt.Core.Project::get_BuildListeners () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_SdkDirectory () 
 	}
-	.property instance class NAnt.Core.LocationMap LocationMap ()
+	.property instance class NAnt.Core.Project Project ()
 	{
-		.get instance default class NAnt.Core.LocationMap NAnt.Core.Project::get_LocationMap () 
+		.get instance default class NAnt.Core.Project NAnt.Core.FrameworkInfo::get_Project () 
 	}
-	.event NAnt.Core.BuildEventHandler BuildStarted
+	.property instance class NAnt.Core.Types.FileSet TaskAssemblies ()
 	{
-		.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 NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::get_TaskAssemblies () 
 	}
-	.event NAnt.Core.BuildEventHandler BuildFinished
+	.property instance bool IsValid ()
 	{
-		.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 bool NAnt.Core.FrameworkInfo::get_IsValid () 
 	}
-	.event NAnt.Core.BuildEventHandler TargetStarted
+	.property instance class NAnt.Core.Types.FileSet[] ReferenceAssemblies ()
 	{
-		.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 class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::get_ReferenceAssemblies () 
 	}
-	.event NAnt.Core.BuildEventHandler TargetFinished
+	.property instance string[] ToolPaths ()
 	{
-		.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 string[] NAnt.Core.FrameworkInfo::get_ToolPaths () 
 	}
-	.event NAnt.Core.BuildEventHandler TaskStarted
+	.property instance string RuntimeEngine ()
 	{
-		.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 string NAnt.Core.FrameworkInfo::get_RuntimeEngine () 
 	}
-	.event NAnt.Core.BuildEventHandler TaskFinished
+	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
 	{
-		.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 class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::get_NamespaceManager () 
 	}
-	.event NAnt.Core.BuildEventHandler MessageLogged
+	.property class [mscorlib]System.Collections.IComparer NameComparer ()
 	{
-		.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 default class [mscorlib]System.Collections.IComparer NAnt.Core.FrameworkInfo::get_NameComparer () 
 	}
-  } // end of class NAnt.Core.Project
-}
-
-.namespace NAnt.Core
-{
-  .class private auto ansi sealed Optimizations
+  .class nested private auto ansi sealed InitStatus
   	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)
+    .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)
 
-  } // end of class NAnt.Core.Optimizations
-}
+  } // end of class InitStatus
 
-.namespace NAnt.Core
-{
-  .class public auto ansi abstract beforefieldinit FunctionSetBase
+  .class nested private auto ansi beforefieldinit FrameworkNameComparer
   	extends [mscorlib]System.Object
-  {
-    .field  private  class NAnt.Core.Project _project
+  	implements [mscorlib]System.Collections.IComparer  {
 
-    // method line 2111
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 2135
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x10c36
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x28fde
+	// 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 class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
-	IL_000e:  ret 
-    } // end of method FunctionSetBase::.ctor
+	IL_0006:  ret 
+    } // end of method FrameworkNameComparer::.ctor
 
-    // method line 2112
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    // method line 2136
+    .method public final virtual hidebysig newslot 
+           instance default int32 Compare (object x, object y)  cil managed 
     {
-        // Method begins at RVA 0x10c48
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x28fe8
+	// Code size 46 (0x2e)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
+	IL_0001:  ldarg.1 
+	IL_0002:  isinst NAnt.Core.FrameworkInfo
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionSetBase::get_Project
+	IL_002c:  ldloc.2 
+	IL_002d:  ret 
+    } // end of method FrameworkNameComparer::Compare
 
-    // method line 2113
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
-    {
-        // Method begins at RVA 0x10c63
-	// 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.FunctionSetBase::_project
-	IL_0008:  ret 
-    } // end of method FunctionSetBase::set_Project
+  } // end of class FrameworkNameComparer
 
-	.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
+  } // end of class NAnt.Core.FrameworkInfo
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi sealed serializable beforefieldinit FrameworkInfoDictionary
+  .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
+}
+
+.namespace NAnt.Core
+{
+  .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..
 
     .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
 
-    // method line 2114
+    // method line 2137
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x29f67
+        // Method begins at RVA 0x29022
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88071,15 +87059,15 @@
 	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_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0012:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 2115
+    // method line 2138
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary original)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary original)  cil managed 
     {
-        // Method begins at RVA 0x29f7b
+        // Method begins at RVA 0x29036
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88087,17 +87075,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 2116
+    // method line 2139
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary)  cil managed 
     {
-        // Method begins at RVA 0x29f95
+        // Method begins at RVA 0x29050
 	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88106,15 +87094,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 2117
+    // method line 2140
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 capacity)  cil managed 
     {
-        // Method begins at RVA 0x29faa
+        // Method begins at RVA 0x29065
 	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88123,15 +87111,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 2118
+    // method line 2141
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor)  cil managed 
     {
-        // Method begins at RVA 0x29fbf
+        // Method begins at RVA 0x2907a
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88141,15 +87129,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 2119
+    // method line 2142
     .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 0x29fd5
+        // Method begins at RVA 0x29090
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88159,15 +87147,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 2120
+    // method line 2143
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 capacity, int32 loadFactor)  cil managed 
     {
-        // Method begins at RVA 0x29feb
+        // Method begins at RVA 0x290a6
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88178,15 +87166,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 2121
+    // method line 2144
     .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 0x2a002
+        // Method begins at RVA 0x290bd
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88197,15 +87185,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 2122
+    // method line 2145
     .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 0x2a019
+        // Method begins at RVA 0x290d4
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88216,15 +87204,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 2123
+    // method line 2146
     .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 0x2a030
+        // Method begins at RVA 0x290eb
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88236,15 +87224,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 2124
+    // method line 2147
     .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 0x2a049
+        // Method begins at RVA 0x29104
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88256,67 +87244,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 2125
+    // method line 2148
     .method assembly hidebysig specialname 
            instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
     {
-        // Method begins at RVA 0x2a064
+        // Method begins at RVA 0x29120
 	// 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 2126
+    // method line 2149
     .method assembly hidebysig specialname 
            instance default void set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a07f
+        // Method begins at RVA 0x2913b
 	// 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 2127
+    // method line 2150
     .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 0x2a08c
+        // Method begins at RVA 0x29148
 	// 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 2128
+    // method line 2151
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2a0a8
+        // Method begins at RVA 0x29164
 	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -88324,19 +87312,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 2129
+    // method line 2152
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2a0c4
+        // Method begins at RVA 0x29180
 	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -88344,34 +87332,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 2130
+    // method line 2153
     .method public hidebysig 
            instance default void Remove (string key)  cil managed 
     {
-        // Method begins at RVA 0x2a0df
+        // Method begins at RVA 0x2919b
 	// 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 2131
+    // method line 2154
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
     {
-        // Method begins at RVA 0x2a0ee
+        // Method begins at RVA 0x291aa
 	.override class [mscorlib]System.Collections.IDictionary::Remove
 	// Code size 14 (0xe)
 	.maxstack 8
@@ -88379,22 +87367,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 2132
+    // method line 2155
     .method public hidebysig 
            instance default bool Contains (string key)  cil managed 
     {
-        // Method begins at RVA 0x2a100
+        // Method begins at RVA 0x291bc
 	// 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 
@@ -88402,13 +87390,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::Contains
+    } // end of method DataTypeBaseDictionary::Contains
 
-    // method line 2133
+    // method line 2156
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
     {
-        // Method begins at RVA 0x2a124
+        // Method begins at RVA 0x291e0
 	.override class [mscorlib]System.Collections.IDictionary::Contains
 	// Code size 21 (0x15)
 	.maxstack 2
@@ -88418,49 +87406,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 2134
+    // method line 2157
     .method public final virtual hidebysig newslot 
            instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0x2a145
+        // Method begins at RVA 0x29201
 	// 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 2135
+    // method line 2158
     .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 0x2a153
+        // Method begins at RVA 0x2920f
 	// 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 2136
+    // method line 2159
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a163
+        // Method begins at RVA 0x2921f
 	.override class [mscorlib]System.Collections.IDictionary::Add
 	// Code size 20 (0x14)
 	.maxstack 8
@@ -88469,74 +87457,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 2137
+    // method line 2160
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x2a178
+        // Method begins at RVA 0x29234
 	// 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 2138
+    // method line 2161
     .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 0x2a198
+        // Method begins at RVA 0x29254
 	// 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 2139
+    // method line 2162
     .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 0x2a1be
+        // Method begins at RVA 0x2927a
 	// 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 2140
+    // method line 2163
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
     {
-        // Method begins at RVA 0x2a1d0
+        // Method begins at RVA 0x2928c
 	.override class [mscorlib]System.Collections.IDictionary::get_Item
 	// Code size 21 (0x15)
 	.maxstack 2
@@ -88546,19 +87534,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 2141
+    // method line 2164
     .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 0x2a1f1
+        // Method begins at RVA 0x292ad
 	.override class [mscorlib]System.Collections.IDictionary::set_Item
 	// Code size 20 (0x14)
 	.maxstack 8
@@ -88567,196 +87555,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 2142
+    // method line 2165
     .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
     {
-        // Method begins at RVA 0x2a208
+        // Method begins at RVA 0x292c4
 	// 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 2143
+    // method line 2166
     .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
     {
-        // Method begins at RVA 0x2a228
+        // Method begins at RVA 0x292e4
 	// 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 2144
+    // method line 2167
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0x2a248
+        // Method begins at RVA 0x29304
 	// 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 2145
+    // method line 2168
     .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 0x2a268
+        // Method begins at RVA 0x29324
 	.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 2146
+    // method line 2169
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x2a278
+        // Method begins at RVA 0x29334
 	// 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 2147
+    // method line 2170
     .method public final virtual hidebysig newslot specialname 
            instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0x2a298
+        // Method begins at RVA 0x29354
 	// 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 2148
+    // method line 2171
     .method public final virtual hidebysig newslot specialname 
            instance default object get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0x2a2b8
+        // Method begins at RVA 0x29374
 	// 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 2149
+    // method line 2172
     .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 0x2a2d8
+        // Method begins at RVA 0x29394
 	// 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 2150
+    // method line 2173
     .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 0x2a2e8
+        // Method begins at RVA 0x293a4
 	// 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 2151
+    // method line 2174
     .method private final virtual hidebysig newslot 
            instance default object System.ICloneable.Clone ()  cil managed 
     {
-        // Method begins at RVA 0x2a31c
+        // Method begins at RVA 0x293d8
 	.override class [mscorlib]System.ICloneable::Clone
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -88764,26 +87752,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 2152
+    // method line 2175
     .method public hidebysig 
            instance default bool ContainsKey (string key)  cil managed 
     {
-        // Method begins at RVA 0x2a338
+        // Method begins at RVA 0x293f4
 	// 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 
@@ -88791,20 +87779,20 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::ContainsKey
+    } // end of method DataTypeBaseDictionary::ContainsKey
 
-    // method line 2153
+    // method line 2176
     .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 0x2a35c
+        // Method begins at RVA 0x29418
 	// 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 
@@ -88812,92 +87800,145 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::ContainsValue
+    } // end of method DataTypeBaseDictionary::ContainsValue
 
-    // method line 2154
+    // method line 2177
     .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 0x2a380
+        // Method begins at RVA 0x2943c
 	// 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 2178
+    .method public virtual hidebysig newslot 
+           instance default void Inherit (class NAnt.Core.DataTypeBaseDictionary source)  cil managed 
+    {
+        // Method begins at RVA 0x2946c
+	// 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 2155
+    // method line 2179
     .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 0x2a3ad
+        // Method begins at RVA 0x294dc
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -88905,24 +87946,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 2156
+    // method line 2180
     .method public hidebysig specialname 
            instance default string get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x2a3c8
+        // Method begins at RVA 0x294f8
 	// 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 
@@ -88930,13 +87971,13 @@
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::get_Key
+    } // end of method DataTypeBaseDictionaryEnumerator::get_Key
 
-    // method line 2157
+    // method line 2181
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x2a3f0
+        // Method begins at RVA 0x29520
 	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -88944,40 +87985,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 2158
+    // method line 2182
     .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 0x2a40c
+        // Method begins at RVA 0x2953c
 	// 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 2159
+    // method line 2183
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x2a434
+        // Method begins at RVA 0x29564
 	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -88985,73 +88026,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 2160
+    // method line 2184
     .method public final virtual hidebysig newslot specialname 
            instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
     {
-        // Method begins at RVA 0x2a450
+        // Method begins at RVA 0x29580
 	// 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 2161
+    // method line 2185
     .method public final virtual hidebysig newslot 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2a470
+        // Method begins at RVA 0x295a0
 	// 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 2162
+    // method line 2186
     .method public final virtual hidebysig newslot 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2a480
+        // Method begins at RVA 0x295b0
 	// 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 2163
+    // method line 2187
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2a4a0
+        // Method begins at RVA 0x295d0
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -89059,2043 +88100,3046 @@
 		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 2164
+    // method line 2188
     .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 0x2a4c0
-	// Code size 38 (0x26)
+        // Method begins at RVA 0x295f0
+	// 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 sealed FrameworkTypes
-  	extends [mscorlib]System.Enum
+  .class public auto ansi serializable beforefieldinit Location
+  	extends [mscorlib]System.Object
   {
-    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    .field  private  string _fileName
+    .field  private  int32 _lineNumber
+    .field  private  int32 _columnNumber
+    .field  public static initonly  class NAnt.Core.Location UnknownLocation
 
-    .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 ) // ........
+    // method line 2189
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
+    {
+        // Method begins at RVA 0x29615
+	// 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
 
-    .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 ) // ........
+    // method line 2190
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x29627
+	// 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
 
-    .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 ) // ........
+    // method line 2191
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x29639
+	// 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
 
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes All = int32(0x00000003)
+    // method line 2192
+    .method private hidebysig 
+           instance default void Init (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
+    {
+        // Method begins at RVA 0x2964c
+	// 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
 
-  } // end of class NAnt.Core.FrameworkTypes
+	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 2193
+    .method public hidebysig specialname 
+           instance default string get_FileName ()  cil managed 
+    {
+        // Method begins at RVA 0x296c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	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 Location::get_FileName
+
+    // method line 2194
+    .method public hidebysig specialname 
+           instance default int32 get_LineNumber ()  cil managed 
+    {
+        // Method begins at RVA 0x296e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	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 Location::get_LineNumber
+
+    // method line 2195
+    .method public hidebysig specialname 
+           instance default int32 get_ColumnNumber ()  cil managed 
+    {
+        // Method begins at RVA 0x29700
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	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 Location::get_ColumnNumber
+
+    // method line 2196
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x2971c
+	// Code size 121 (0x79)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1)
+	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_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 2197
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x297a1
+	// 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
+
+	.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 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
+  .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 2165
+    // method line 2198
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2a4f2
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x297ad
+	// Code size 58 (0x3a)
 	.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_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 2166
+    // method line 2199
     .method public hidebysig specialname 
-           instance default bool get_Executed ()  cil managed 
+           instance default string get_TargetFramework ()  cil managed 
     {
-        // Method begins at RVA 0x2a508
+        // Method begins at RVA 0x297e8
 	// 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.Target::_executed
+	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 Target::get_Executed
+    } // end of method CommandLineOptions::get_TargetFramework
 
-    // method line 2167
+    // method line 2200
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default void set_TargetFramework (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29803
+	// 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 2201
+    .method public hidebysig specialname 
+           instance default string get_DefaultFramework ()  cil managed 
     {
-        // Method begins at RVA 0x2a524
+        // Method begins at RVA 0x29810
 	// 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_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 Target::get_Name
+    } // end of method CommandLineOptions::get_DefaultFramework
 
-    // method line 2168
+    // method line 2202
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_DefaultFramework (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a53f
+        // Method begins at RVA 0x2982b
 	// 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_0003:  stfld string NAnt.Core.CommandLineOptions::_targetFramework
 	IL_0008:  ret 
-    } // end of method Target::set_Name
+    } // end of method CommandLineOptions::set_DefaultFramework
 
-    // method line 2169
+    // method line 2203
     .method public hidebysig specialname 
-           instance default string get_IfCondition ()  cil managed 
+           instance default string get_BuildFile ()  cil managed 
     {
-        // Method begins at RVA 0x2a54c
+        // Method begins at RVA 0x29838
 	// 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_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 Target::get_IfCondition
+    } // end of method CommandLineOptions::get_BuildFile
 
-    // method line 2170
+    // method line 2204
     .method public hidebysig specialname 
-           instance default void set_IfCondition (string 'value')  cil managed 
+           instance default void set_BuildFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a567
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x29853
+	// 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.Target::_ifCondition
-	IL_000d:  ret 
-    } // end of method Target::set_IfCondition
+	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_buildFile
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_BuildFile
 
-    // method line 2171
+    // method line 2205
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default bool get_Pause ()  cil managed 
     {
-        // Method begins at RVA 0x2a578
-	// Code size 104 (0x68)
-	.maxstack 3
+        // Method begins at RVA 0x29860
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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_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
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_pause
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Pause
 
-	IL_0066:  ldloc.1 
-	IL_0067:  ret 
-    } // end of method Target::get_IfDefined
+    // method line 2206
+    .method public hidebysig specialname 
+           instance default void set_Pause (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2987b
+	// 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 2172
+    // method line 2207
     .method public hidebysig specialname 
-           instance default string get_UnlessCondition ()  cil managed 
+           instance default bool get_Verbose ()  cil managed 
     {
-        // Method begins at RVA 0x2a5fc
+        // Method begins at RVA 0x29888
 	// 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.Target::_unlessCondition
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_verbose
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Target::get_UnlessCondition
+    } // end of method CommandLineOptions::get_Verbose
 
-    // method line 2173
+    // method line 2208
     .method public hidebysig specialname 
-           instance default void set_UnlessCondition (string 'value')  cil managed 
+           instance default void set_Verbose (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a617
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x298a3
+	// 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.Target::_unlessCondition
-	IL_000d:  ret 
-    } // end of method Target::set_UnlessCondition
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_verbose
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_Verbose
 
-    // method line 2174
+    // method line 2209
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0x2a628
-	// Code size 104 (0x68)
-	.maxstack 3
+        // Method begins at RVA 0x298b0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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_0002:  ldfld bool NAnt.Core.CommandLineOptions::_debug
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0066:  ldloc.1 
-	IL_0067:  ret 
-    } // end of method Target::get_UnlessDefined
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Debug
 
-    // method line 2175
+    // method line 2210
     .method public hidebysig specialname 
-           instance default void set_Description (string 'value')  cil managed 
+           instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a6ac
+        // Method begins at RVA 0x298cb
 	// 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_0003:  stfld bool NAnt.Core.CommandLineOptions::_debug
 	IL_0008:  ret 
-    } // end of method Target::set_Description
+    } // end of method CommandLineOptions::set_Debug
 
-    // method line 2176
+    // method line 2211
     .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
+           instance default bool get_Quiet ()  cil managed 
     {
-        // Method begins at RVA 0x2a6b8
+        // Method begins at RVA 0x298d8
 	// 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.Target::_description
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_quiet
 	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 CommandLineOptions::get_Quiet
 
-    // method line 2177
+    // method line 2212
     .method public hidebysig specialname 
-           instance default void set_DependsListString (string 'value')  cil managed 
+           instance default void set_Quiet (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a6d4
-	// Code size 86 (0x56)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2,
-		string	V_3)
+        // Method begins at RVA 0x298f3
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  nop 
+	IL_0001:  ldarg.0 
 	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
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_quiet
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_Quiet
 
-    // method line 2178
+    // method line 2213
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Dependencies ()  cil managed 
+           instance default bool get_EmacsMode ()  cil managed 
     {
-        // Method begins at RVA 0x2a738
+        // Method begins at RVA 0x29900
 	// 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.Target::_dependencies
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_emacsMode
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Target::get_Dependencies
+    } // end of method CommandLineOptions::get_EmacsMode
 
-    // method line 2179
-    .method private final virtual hidebysig newslot 
-           instance default object System.ICloneable.Clone ()  cil managed 
+    // method line 2214
+    .method public hidebysig specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a754
-	.override class [mscorlib]System.ICloneable::Clone
+        // Method begins at RVA 0x2991b
+	// Code size 9 (0x9)
+	.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
+
+    // method line 2215
+    .method public hidebysig specialname 
+           instance default bool get_FindInParent ()  cil managed 
+    {
+        // Method begins at RVA 0x29928
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Target class NAnt.Core.Target::Clone()
+	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 Target::System.ICloneable.Clone
+    } // end of method CommandLineOptions::get_FindInParent
 
-    // method line 2180
-    .method public hidebysig 
-           instance default class NAnt.Core.Target Clone ()  cil managed 
+    // method line 2216
+    .method public hidebysig specialname 
+           instance default void set_FindInParent (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a770
-	// Code size 95 (0x5f)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Target	V_0,
-		class NAnt.Core.Target	V_1)
+        // Method begins at RVA 0x29943
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_005d:  ldloc.1 
-	IL_005e:  ret 
-    } // end of method Target::Clone
+	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
 
-    // method line 2181
-    .method public hidebysig 
-           instance default void Execute ()  cil managed 
+    // method line 2217
+    .method public hidebysig specialname 
+           instance default int32 get_IndentationLevel ()  cil managed 
     {
-        // Method begins at RVA 0x2a7dc
-	// Code size 473 (0x1d9)
-	.maxstack 7
+        // Method begins at RVA 0x29950
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		int32	V_0)
 	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_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_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_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_0076:  nop 
-	    IL_0077:  leave IL_018f
-
-	    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_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_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_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_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_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_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_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_019a:  leave IL_01b5
-
-	  } // 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_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
-
-	} // 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
-
-	.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.
-
-		.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.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.
-
-		.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.
-
-		.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..
-
-		.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..
-
-		.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_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 2182
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 2218
+    .method public hidebysig specialname 
+           instance default void set_IndentationLevel (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a9f8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2996b
+	// 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 2183
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 2219
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.NameValueCollection get_Properties ()  cil managed 
     {
-        // Method begins at RVA 0x2aa08
-	// Code size 439 (0x1b7)
-	.maxstack 4
+        // Method begins at RVA 0x29978
+	// 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
+		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_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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Properties
 
-	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
+    // method line 2220
+    .method public hidebysig specialname 
+           instance default string get_LoggerType ()  cil managed 
+    {
+        // Method begins at RVA 0x29994
+	// 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::_loggerType
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_LoggerType
 
-	IL_01b6:  ret 
-    } // end of method ExpressionTokenizer::.cctor
+    // method line 2221
+    .method public hidebysig specialname 
+           instance default void set_LoggerType (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x299af
+	// Code size 9 (0x9)
+	.maxstack 8
+	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
 
-    // method line 2184
+    // method line 2222
     .method public hidebysig specialname 
-           instance default bool get_IgnoreWhitespace ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_LogFile ()  cil managed 
     {
-        // Method begins at RVA 0x2abcc
+        // Method begins at RVA 0x299bc
 	// 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::_ignoreWhiteSpace
+	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_IgnoreWhitespace
+    } // end of method CommandLineOptions::get_LogFile
 
-    // method line 2185
+    // method line 2223
     .method public hidebysig specialname 
-           instance default void set_IgnoreWhitespace (bool 'value')  cil managed 
+           instance default void set_LogFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2abe7
+        // Method begins at RVA 0x299d7
 	// 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 class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::_logFile
 	IL_0008:  ret 
-    } // end of method ExpressionTokenizer::set_IgnoreWhitespace
+    } // end of method CommandLineOptions::set_LogFile
 
-    // method line 2186
+    // method line 2224
     .method public hidebysig specialname 
-           instance default bool get_SingleCharacterMode ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Listeners ()  cil managed 
+    {
+        // Method begins at RVA 0x299e4
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Listeners
+
+    // method line 2225
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_ExtensionAssemblies ()  cil managed 
+    {
+        // Method begins at RVA 0x29a00
+	// 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::_extensionAssemblies
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_ExtensionAssemblies
+
+    // method line 2226
+    .method public hidebysig specialname 
+           instance default bool get_ShowProjectHelp ()  cil managed 
     {
-        // Method begins at RVA 0x2abf4
+        // Method begins at RVA 0x29a1c
 	// 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_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_SingleCharacterMode
+    } // end of method CommandLineOptions::get_ShowProjectHelp
 
-    // method line 2187
+    // method line 2227
     .method public hidebysig specialname 
-           instance default void set_SingleCharacterMode (bool 'value')  cil managed 
+           instance default void set_ShowProjectHelp (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ac0f
+        // Method begins at RVA 0x29a37
 	// 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 bool NAnt.Core.CommandLineOptions::_showProjectHelp
 	IL_0008:  ret 
-    } // end of method ExpressionTokenizer::set_SingleCharacterMode
+    } // end of method CommandLineOptions::set_ShowProjectHelp
 
-    // method line 2188
+    // method line 2228
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/TokenType get_CurrentToken ()  cil managed 
+           instance default bool get_NoLogo ()  cil managed 
     {
-        // Method begins at RVA 0x2ac1c
+        // Method begins at RVA 0x29a44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/TokenType	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_noLogo
 	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_NoLogo
 
-    // method line 2189
+    // method line 2229
     .method public hidebysig specialname 
-           instance default string get_TokenText ()  cil managed 
+           instance default void set_NoLogo (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29a5f
+	// 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 2230
+    .method public hidebysig specialname 
+           instance default bool get_ShowHelp ()  cil managed 
     {
-        // Method begins at RVA 0x2ac38
+        // Method begins at RVA 0x29a6c
 	// 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.ExpressionTokenizer::_tokenText
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_showHelp
 	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_ShowHelp
 
-    // method line 2190
+    // method line 2231
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_CurrentPosition ()  cil managed 
+           instance default void set_ShowHelp (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29a87
+	// 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
+
+    // method line 2232
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Targets ()  cil managed 
     {
-        // Method begins at RVA 0x2ac54
+        // Method begins at RVA 0x29a94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::_tokenStartPosition
+	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 ExpressionTokenizer::get_CurrentPosition
+    } // end of method CommandLineOptions::get_Targets
 
-    // method line 2191
-    .method public hidebysig 
-           instance default void InitTokenizer (string s)  cil managed 
+	.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
+
+		.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
+
+		.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....
+
+		.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
+
+		.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 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 2233
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ac6f
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x29aaf
+	// 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 2234
+    .method public static hidebysig specialname 
+           default class NAnt.Core.TaskBuilderCollection get_TaskBuilders ()  cil managed 
+    {
+        // Method begins at RVA 0x29ab8
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.TaskBuilderCollection	V_0)
 	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_0001:  ldsfld class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::_taskBuilders
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-    // method line 2192
-    .method public hidebysig 
-           instance default void GetNextToken ()  cil managed 
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_TaskBuilders
+
+    // method line 2235
+    .method public static hidebysig specialname 
+           default class NAnt.Core.DataTypeBaseBuilderCollection get_DataTypeBuilders ()  cil managed 
     {
-        // Method begins at RVA 0x2ac90
-	// Code size 1053 (0x41d)
-	.maxstack 3
+        // Method begins at RVA 0x29ad4
+	// Code size 14 (0xe)
+	.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)
+		class NAnt.Core.DataTypeBaseBuilderCollection	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_0001:  ldsfld class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::_dataTypeBuilders
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_DataTypeBuilders
 
-	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 2236
+    .method public static hidebysig specialname 
+           default class NAnt.Core.Filters.FilterBuilderCollection get_FilterBuilders ()  cil managed 
+    {
+        // Method begins at RVA 0x29af0
+	// 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_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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_FilterBuilders
 
-	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
+    // method line 2237
+    .method assembly static hidebysig specialname 
+           default class NAnt.Core.Extensibility.PluginScanner get_PluginScanner ()  cil managed 
+    {
+        // Method begins at RVA 0x29b0c
+	// 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_006a:  nop 
-	IL_006b:  ldarg.0 
-	IL_006c:  call instance bool class NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace()
-	IL_0071:  brtrue IL_00d7
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_PluginScanner
 
-	IL_0076:  ldloc.1 
-	IL_0077:  call bool char::IsWhiteSpace(char)
-	IL_007c:  brfalse IL_00d7
+    // method line 2238
+    .method public static hidebysig 
+           default bool ScanAssembly (string assemblyFile, class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x29b28
+        .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_0081:  nop 
-	IL_0082:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0087:  stloc.2 
-	IL_0088:  br IL_00b0
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method TypeFactory::ScanAssembly
 
-	IL_008d:  nop 
-	IL_008e:  ldloc.0 
-	IL_008f:  conv.u2 
-	IL_0090:  call bool char::IsWhiteSpace(char)
-	IL_0095:  brtrue IL_009f
+    // method line 2239
+    .method public static hidebysig 
+           default bool ScanAssembly (class [mscorlib]System.Reflection.Assembly 'assembly', class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x29b4c
+        .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_009a:  br IL_00be
+	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_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_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_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_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_00d7:  ldloc.1 
-	IL_00d8:  call bool char::IsDigit(char)
-	IL_00dd:  brfalse IL_0153
+	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_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
+
+	} // 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
 
+	  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:  ldarg.0 
-	IL_00e4:  ldc.i4.2 
-	IL_00e5:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_00ea:  ldsfld string [mscorlib]System.String::Empty
-	IL_00ef:  stloc.3 
-	IL_00f0:  ldloc.3 
-	IL_00f1:  ldloc.1 
-	IL_00f2:  box [mscorlib]System.Char
-	IL_00f7:  call string string::Concat(object, object)
-	IL_00fc:  stloc.3 
-	IL_00fd:  ldarg.0 
-	IL_00fe:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0103:  pop 
-	IL_0104:  br IL_0139
+	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_0109:  nop 
-	IL_010a:  ldloc.0 
-	IL_010b:  conv.u2 
-	IL_010c:  stloc.1 
-	IL_010d:  ldloc.1 
-	IL_010e:  call bool char::IsDigit(char)
-	IL_0113:  brfalse IL_0132
+	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_0118:  nop 
-	IL_0119:  ldloc.3 
-	IL_011a:  ldarg.0 
-	IL_011b:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0120:  conv.u2 
-	IL_0121:  box [mscorlib]System.Char
-	IL_0126:  call string string::Concat(object, object)
-	IL_012b:  stloc.3 
-	IL_012c:  nop 
-	IL_012d:  br IL_0138
+	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:  br IL_0147
+	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_0138:  nop 
-	IL_0139:  ldarg.0 
-	IL_013a:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_013f:  dup 
-	IL_0140:  stloc.0 
-	IL_0141:  ldc.i4.m1 
-	IL_0142:  bne.un IL_0109
+	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_0147:  ldarg.0 
-	IL_0148:  ldloc.3 
-	IL_0149:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_014e:  br IL_041c
+	IL_0161:  ldloc.s 13
+	IL_0163:  br.s IL_0166
 
-	IL_0153:  ldloc.1 
-	IL_0154:  ldc.i4.s 0x27
-	IL_0156:  bne.un IL_01cf
+	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_015b:  nop 
-	IL_015c:  ldarg.0 
-	IL_015d:  ldc.i4.3 
-	IL_015e:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0163:  ldstr ""
-	IL_0168:  stloc.s 4
-	IL_016a:  ldarg.0 
-	IL_016b:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0170:  pop 
-	IL_0171:  br IL_01b4
+	IL_017a:  ldloc.s 6
+	IL_017c:  brtrue IL_0227
 
-	IL_0176:  nop 
-	IL_0177:  ldloc.0 
-	IL_0178:  conv.u2 
-	IL_0179:  stloc.1 
-	IL_017a:  ldloc.1 
-	IL_017b:  ldc.i4.s 0x27
-	IL_017d:  bne.un IL_01a4
+	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_0182:  nop 
-	IL_0183:  ldarg.0 
-	IL_0184:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_0189:  ldc.i4.s 0x27
-	IL_018b:  bne.un IL_019e
+	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_0190:  nop 
-	IL_0191:  ldarg.0 
-	IL_0192:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0197:  pop 
-	IL_0198:  nop 
-	IL_0199:  br IL_01a3
+	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_019e:  br IL_01c2
+	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_01a3:  nop 
-	IL_01a4:  ldloc.s 4
-	IL_01a6:  ldloc.1 
-	IL_01a7:  box [mscorlib]System.Char
-	IL_01ac:  call string string::Concat(object, object)
-	IL_01b1:  stloc.s 4
-	IL_01b3:  nop 
-	IL_01b4:  ldarg.0 
-	IL_01b5:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_01ba:  dup 
-	IL_01bb:  stloc.0 
-	IL_01bc:  ldc.i4.m1 
-	IL_01bd:  bne.un IL_0176
+	IL_0226:  nop 
+	IL_0227:  ldloc.s 6
+	IL_0229:  stloc.s 18
+	IL_022b:  br IL_0230
 
-	IL_01c2:  ldarg.0 
-	IL_01c3:  ldloc.s 4
-	IL_01c5:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_01ca:  br IL_041c
+	IL_0230:  ldloc.s 18
+	IL_0232:  ret 
+    } // end of method TypeFactory::ScanAssembly
 
-	IL_01cf:  ldloc.1 
-	IL_01d0:  ldc.i4.s 0x5f
-	IL_01d2:  beq IL_01e2
+    // method line 2240
+    .method public static hidebysig 
+           default void ScanDir (string path, class NAnt.Core.Task task, bool failOnError)  cil managed 
+    {
+        // Method begins at RVA 0x29d9c
+        .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_01d7:  ldloc.1 
-	IL_01d8:  call bool char::IsLetter(char)
-	IL_01dd:  brfalse IL_02d3
+	IL_000c:  nop 
+	IL_000d:  br IL_00ff
 
-	IL_01e2:  nop 
-	IL_01e3:  ldarg.0 
-	IL_01e4:  ldc.i4.4 
-	IL_01e5:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_01ea:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_01ef:  stloc.s 5
-	IL_01f1:  ldloc.s 5
-	IL_01f3:  ldloc.1 
-	IL_01f4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_01f9:  pop 
-	IL_01fa:  ldarg.0 
-	IL_01fb:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0200:  pop 
-	IL_0201:  br IL_025a
+	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_0206:  nop 
-	IL_0207:  ldloc.0 
-	IL_0208:  conv.u2 
-	IL_0209:  stloc.s 6
-	IL_020b:  ldloc.s 6
-	IL_020d:  ldc.i4.s 0x5f
-	IL_020f:  beq IL_023b
+	  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_0214:  ldloc.s 6
-	IL_0216:  ldc.i4.s 0x2d
-	IL_0218:  beq IL_023b
+	  } // 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_021d:  ldloc.s 6
-	IL_021f:  ldc.i4.s 0x2e
-	IL_0221:  beq IL_023b
+	    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_0226:  ldloc.s 6
-	IL_0228:  ldc.i4.s 0x5c
-	IL_022a:  beq IL_023b
+	  } // 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_022f:  ldloc.s 6
-	IL_0231:  call bool char::IsLetterOrDigit(char)
-	IL_0236:  brfalse IL_0253
+	  IL_00e4:  leave IL_00ff
 
-	IL_023b:  nop 
-	IL_023c:  ldarg.0 
-	IL_023d:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0242:  pop 
-	IL_0243:  ldloc.s 5
-	IL_0245:  ldloc.s 6
-	IL_0247:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_024c:  pop 
-	IL_024d:  nop 
-	IL_024e:  br IL_0259
+	} // 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_0253:  nop 
-	IL_0254:  br IL_0268
+	  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_0259:  nop 
-	IL_025a:  ldarg.0 
-	IL_025b:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_0260:  dup 
-	IL_0261:  stloc.0 
-	IL_0262:  ldc.i4.m1 
-	IL_0263:  bne.un IL_0206
+    // method line 2241
+    .method assembly static hidebysig 
+           default void AddProject (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x29ec4
+	// 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_0268:  ldarg.0 
-	IL_0269:  ldloc.s 5
-	IL_026b:  callvirt instance string object::ToString()
-	IL_0270:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_0275:  ldarg.0 
-	IL_0276:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_027b:  ldstr "-"
-	IL_0280:  callvirt instance bool string::EndsWith(string)
-	IL_0285:  brtrue IL_029f
+    // method line 2242
+    .method assembly static hidebysig 
+           default void AddProject (class NAnt.Core.Project project, bool scan)  cil managed 
+    {
+        // Method begins at RVA 0x29ed0
+	// 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_028a:  ldarg.0 
-	IL_028b:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_0290:  ldstr "."
-	IL_0295:  callvirt instance bool string::EndsWith(string)
-	IL_029a:  brfalse IL_02ce
+	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_029f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02a4:  ldstr "NA1182"
-	IL_02a9:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02ae:  ldarg.0 
-	IL_02af:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_02b4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_02b9:  ldarg.0 
-	IL_02ba:  call instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_02bf:  stloc.s 7
-	IL_02c1:  ldloca.s 7
-	IL_02c3:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_02c8:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32)
-	IL_02cd:  throw 
-	IL_02ce:  br IL_041c
+	IL_0017:  br IL_0107
 
-	IL_02d3:  ldarg.0 
-	IL_02d4:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_02d9:  pop 
-	IL_02da:  ldarg.0 
-	IL_02db:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_02e0:  stloc.0 
-	IL_02e1:  ldloc.1 
-	IL_02e2:  ldc.i4.s 0x3a
-	IL_02e4:  bne.un IL_0311
+	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_02e9:  ldloc.0 
-	IL_02ea:  ldc.i4.s 0x3a
-	IL_02ec:  bne.un IL_0311
+	IL_0054:  ldc.i4 1000
+	IL_0059:  br IL_0063
 
-	IL_02f1:  nop 
-	IL_02f2:  ldarg.0 
-	IL_02f3:  ldc.i4.s 0x1a
-	IL_02f5:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_02fa:  ldarg.0 
-	IL_02fb:  ldstr "::"
-	IL_0300:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_0305:  ldarg.0 
-	IL_0306:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_030b:  pop 
-	IL_030c:  br IL_041c
+	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_0311:  ldloc.1 
-	IL_0312:  ldc.i4.s 0x21
-	IL_0314:  bne.un IL_0340
+	IL_00a2:  nop 
+	IL_00a3:  br IL_0107
 
-	IL_0319:  ldloc.0 
-	IL_031a:  ldc.i4.s 0x3d
-	IL_031c:  bne.un IL_0340
+	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_0321:  nop 
-	IL_0322:  ldarg.0 
-	IL_0323:  ldc.i4.6 
-	IL_0324:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0329:  ldarg.0 
-	IL_032a:  ldstr "!="
-	IL_032f:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_0334:  ldarg.0 
-	IL_0335:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_033a:  pop 
-	IL_033b:  br IL_041c
+    // method line 2243
+    .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 0x29fe4
+	// 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_0340:  ldloc.1 
-	IL_0341:  ldc.i4.s 0x3d
-	IL_0343:  bne.un IL_036f
+	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_0348:  ldloc.0 
-	IL_0349:  ldc.i4.s 0x3d
-	IL_034b:  bne.un IL_036f
+	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_0350:  nop 
-	IL_0351:  ldarg.0 
-	IL_0352:  ldc.i4.5 
-	IL_0353:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0358:  ldarg.0 
-	IL_0359:  ldstr "=="
-	IL_035e:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_0363:  ldarg.0 
-	IL_0364:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0369:  pop 
-	IL_036a:  br IL_041c
+	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_036f:  ldloc.1 
-	IL_0370:  ldc.i4.s 0x3c
-	IL_0372:  bne.un IL_039f
+	IL_0062:  nop 
+	IL_0063:  br IL_00bc
 
-	IL_0377:  ldloc.0 
-	IL_0378:  ldc.i4.s 0x3d
-	IL_037a:  bne.un IL_039f
+	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_037f:  nop 
-	IL_0380:  ldarg.0 
-	IL_0381:  ldc.i4.s 0x09
-	IL_0383:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0388:  ldarg.0 
-	IL_0389:  ldstr "<="
-	IL_038e:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_0393:  ldarg.0 
-	IL_0394:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_0399:  pop 
-	IL_039a:  br IL_041c
+	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_039f:  ldloc.1 
-	IL_03a0:  ldc.i4.s 0x3e
-	IL_03a2:  bne.un IL_03cf
+	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_03a7:  ldloc.0 
-	IL_03a8:  ldc.i4.s 0x3d
-	IL_03aa:  bne.un IL_03cf
+	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_03af:  nop 
-	IL_03b0:  ldarg.0 
-	IL_03b1:  ldc.i4.s 0x0a
-	IL_03b3:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_03b8:  ldarg.0 
-	IL_03b9:  ldstr ">="
-	IL_03be:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_03c3:  ldarg.0 
-	IL_03c4:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_03c9:  pop 
-	IL_03ca:  br IL_041c
+	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_03cf:  nop 
-	IL_03d0:  br IL_03de
+    // method line 2244
+    .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 0x2a0d4
+	// Code size 149 (0x95)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.ObsoleteAttribute	V_0,
+		string	V_1)
+	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_03d5:  nop 
-	IL_03d6:  ldarg.0 
-	IL_03d7:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_03dc:  pop 
-	IL_03dd:  nop 
-	IL_03de:  ldarg.0 
-	IL_03df:  ldloc.1 
-	IL_03e0:  ldc.i4.1 
-	IL_03e1:  newobj instance void string::'.ctor'(char, int32)
-	IL_03e6:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_03eb:  ldloc.1 
-	IL_03ec:  ldc.i4.s 0x20
-	IL_03ee:  blt IL_0412
+	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_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
+
+    // method line 2245
+    .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 0x2a178
+	// 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_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_03f3:  ldloc.1 
-	IL_03f4:  ldc.i4 128
-	IL_03f9:  bge IL_0412
+	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_03fe:  nop 
-	IL_03ff:  ldarg.0 
-	IL_0400:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
-	IL_0405:  ldloc.1 
-	IL_0406:  ldelem.i4 
-	IL_0407:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_040c:  nop 
-	IL_040d:  br IL_041c
+	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_0412:  nop 
-	IL_0413:  ldarg.0 
-	IL_0414:  ldc.i4.s 0x15
-	IL_0416:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_041b:  nop 
-	IL_041c:  ret 
-    } // end of method ExpressionTokenizer::GetNextToken
+	IL_0115:  ldloc.s 7
+	IL_0117:  ret 
+    } // end of method TypeFactory::CreateTask
 
-    // method line 2193
-    .method public hidebysig 
-           instance default bool IsKeyword (string k)  cil managed 
+    // method line 2246
+    .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 0x2b0bc
-	// Code size 36 (0x24)
-	.maxstack 2
+        // Method begins at RVA 0x2a29c
+	// Code size 319 (0x13f)
+	.maxstack 7
 	.locals init (
-		bool	V_0)
+		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:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0007:  ldc.i4.4 
-	IL_0008:  bne.un IL_001b
+	IL_0002:  brtrue IL_0013
 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	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:  call bool string::op_Equality(string, string)
-	IL_0019:  br.s IL_001c
+	IL_0014:  brtrue IL_0025
 
-	IL_001b:  ldc.i4.0 
-	IL_001c:  stloc.0 
-	IL_001d:  br IL_0022
+	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_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method ExpressionTokenizer::IsKeyword
+	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
 
-    // method line 2194
-    .method private hidebysig 
-           instance default int32 ReadChar ()  cil managed 
+	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_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_013c:  ldloc.s 7
+	IL_013e:  ret 
+    } // end of method TypeFactory::CreateFilter
+
+    // method line 2247
+    .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 0x2b0ec
-	// Code size 66 (0x42)
-	.maxstack 4
+        // Method begins at RVA 0x2a3e8
+	// Code size 280 (0x118)
+	.maxstack 7
 	.locals init (
-		int32	V_0,
-		int32	V_1)
+		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:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld string NAnt.Core.ExpressionTokenizer::_text
-	IL_000d:  callvirt instance int32 string::get_Length()
-	IL_0012:  bge IL_0039
+	IL_0002:  brtrue IL_0013
 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldfld string NAnt.Core.ExpressionTokenizer::_text
-	IL_001d:  ldarg.0 
-	IL_001e:  dup 
-	IL_001f:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_0024:  dup 
-	IL_0025:  stloc.0 
-	IL_0026:  ldc.i4.1 
-	IL_0027:  add 
-	IL_0028:  stfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_002d:  ldloc.0 
-	IL_002e:  callvirt instance char string::get_Chars(int32)
-	IL_0033:  stloc.1 
-	IL_0034:  br IL_0040
+	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_0039:  ldc.i4.m1 
-	IL_003a:  stloc.1 
-	IL_003b:  br IL_0040
+	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_0040:  ldloc.1 
-	IL_0041:  ret 
-    } // end of method ExpressionTokenizer::ReadChar
+	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
 
-    // method line 2195
-    .method private hidebysig 
-           instance default int32 PeekChar ()  cil managed 
+	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_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_0115:  ldloc.s 7
+	IL_0117:  ret 
+    } // end of method TypeFactory::CreateDataType
+
+    // method line 2248
+    .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 0x2b13c
-	// Code size 55 (0x37)
-	.maxstack 2
+        // Method begins at RVA 0x2a50c
+	// Code size 254 (0xfe)
+	.maxstack 7
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Attributes.TaskNameAttribute	V_0,
+		class NAnt.Core.TaskBuilder	V_1,
+		bool	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld string NAnt.Core.ExpressionTokenizer::_text
-	IL_000d:  callvirt instance int32 string::get_Length()
-	IL_0012:  bge IL_002e
+	.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_0017:  ldarg.0 
-	IL_0018:  ldfld string NAnt.Core.ExpressionTokenizer::_text
-	IL_001d:  ldarg.0 
-	IL_001e:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_0023:  callvirt instance char string::get_Chars(int32)
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_0035
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0033:  brtrue IL_00d1
 
-	IL_002e:  ldc.i4.m1 
-	IL_002f:  stloc.0 
-	IL_0030:  br IL_0035
+	  IL_0038:  ldloc.0 
+	  IL_0039:  brfalse IL_00d1
 
-	IL_0035:  ldloc.0 
-	IL_0036:  ret 
-    } // end of method ExpressionTokenizer::PeekChar
+	  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
 
-    // method line 2196
-    .method private hidebysig 
-           instance default void SkipWhitespace ()  cil managed 
+	  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_00d1:  nop 
+	  IL_00d2:  ldc.i4.0 
+	  IL_00d3:  stloc.2 
+	  IL_00d4:  leave IL_00fc
+
+	} // 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
+
+    // method line 2249
+    .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 0x2b180
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x2a628
+	// Code size 252 (0xfc)
+	.maxstack 7
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
+		class NAnt.Core.DataTypeBaseBuilder	V_1,
+		bool	V_2)
 	IL_0000:  nop 
-	IL_0001:  br IL_0020
+	.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_0006:  nop 
-	IL_0007:  ldloc.0 
-	IL_0008:  conv.u2 
-	IL_0009:  call bool char::IsWhiteSpace(char)
-	IL_000e:  brtrue IL_0018
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0033:  brtrue IL_00cf
 
-	IL_0013:  br IL_002e
+	  IL_0038:  ldloc.0 
+	  IL_0039:  brfalse IL_00cf
 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_001e:  pop 
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_0026:  dup 
-	IL_0027:  stloc.0 
-	IL_0028:  ldc.i4.m1 
-	IL_0029:  bne.un IL_0006
+	  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_002e:  ret 
-    } // end of method ExpressionTokenizer::SkipWhitespace
+	  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
 
-	.property instance bool IgnoreWhitespace ()
-	{
-		.get instance default bool NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace () 
-		.set instance default void NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace (bool 'value') 
-	}
-	.property instance bool SingleCharacterMode ()
-	{
-		.get instance default bool NAnt.Core.ExpressionTokenizer::get_SingleCharacterMode () 
-		.set instance default void NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode (bool 'value') 
-	}
-	.property instance valuetype NAnt.Core.ExpressionTokenizer/TokenType CurrentToken ()
-	{
-		.get instance default valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::get_CurrentToken () 
-	}
-	.property instance string TokenText ()
-	{
-		.get instance default string NAnt.Core.ExpressionTokenizer::get_TokenText () 
-	}
-	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position CurrentPosition ()
-	{
-		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::get_CurrentPosition () 
-	}
-  .class nested public sequential ansi sealed beforefieldinit Position
-  	extends [mscorlib]System.ValueType
-  {
-    .field  private  int32 _charIndex
+	  IL_00cf:  nop 
+	  IL_00d0:  ldc.i4.0 
+	  IL_00d1:  stloc.2 
+	  IL_00d2:  leave IL_00fa
 
-    // method line 2197
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 charIndex)  cil managed 
-    {
-        // Method begins at RVA 0x2b1bb
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.ExpressionTokenizer/Position::_charIndex
-	IL_0008:  ret 
-    } // end of method Position::.ctor
+	} // 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 2198
-    .method public hidebysig specialname 
-           instance default int32 get_CharIndex ()  cil managed 
+    // method line 2250
+    .method private static hidebysig 
+           default bool ScanTypeForFunctions (class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
     {
-        // Method begins at RVA 0x2b1c8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2a740
+	// Code size 333 (0x14d)
+	.maxstack 7
 	.locals init (
-		int32	V_0)
+		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:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.ExpressionTokenizer/Position::_charIndex
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Position::get_CharIndex
+	  IL_001e:  nop 
+	  IL_001f:  ldc.i4.0 
+	  IL_0020:  stloc.1 
+	  IL_0021:  leave IL_014b
 
-	.property instance int32 CharIndex ()
-	{
-		.get instance default int32 NAnt.Core.ExpressionTokenizer/Position::get_CharIndex () 
-	}
-  } // end of class Position
+	  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
 
-  .class nested public auto ansi sealed TokenType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType BOF = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType EOF = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Number = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType String = int32(0x00000003)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Keyword = int32(0x00000004)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType EQ = int32(0x00000005)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType NE = int32(0x00000006)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LT = int32(0x00000007)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType GT = int32(0x00000008)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LE = int32(0x00000009)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType GE = int32(0x0000000a)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Plus = int32(0x0000000b)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Minus = int32(0x0000000c)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Mul = int32(0x0000000d)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Div = int32(0x0000000e)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Mod = int32(0x0000000f)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LeftParen = int32(0x00000010)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType RightParen = int32(0x00000011)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType LeftCurlyBrace = int32(0x00000012)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType RightCurlyBrace = int32(0x00000013)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Not = int32(0x00000014)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Punctuation = int32(0x00000015)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Whitespace = int32(0x00000016)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Dollar = int32(0x00000017)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Comma = int32(0x00000018)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType Dot = int32(0x00000019)
-    .field public static literal  valuetype NAnt.Core.ExpressionTokenizer/TokenType DoubleColon = int32(0x0000001a)
+	  IL_004c:  ldarg.0 
+	  IL_004d:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0052:  brtrue IL_005b
 
-  } // end of class TokenType
+	  IL_0057:  nop 
+	  IL_0058:  ldc.i4.1 
+	  IL_0059:  stloc.2 
+	  IL_005a:  nop 
+	  IL_005b:  ldloc.2 
+	  IL_005c:  brfalse IL_0120
 
-  .class nested private sequential ansi sealed beforefieldinit CharToTokenType
-  	extends [mscorlib]System.ValueType
-  {
-    .field  public initonly  char ch
-    .field  public initonly  valuetype NAnt.Core.ExpressionTokenizer/TokenType tokenType
+	  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
 
-    // method line 2199
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (char ch, valuetype NAnt.Core.ExpressionTokenizer/TokenType tokenType)  cil managed 
-    {
-        // Method begins at RVA 0x2b1e3
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld char NAnt.Core.ExpressionTokenizer/CharToTokenType::ch
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer/CharToTokenType::tokenType
-	IL_000f:  ret 
-    } // end of method CharToTokenType::.ctor
+	  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
 
-  } // end of class CharToTokenType
+	  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
 
-  } // end of class NAnt.Core.ExpressionTokenizer
-}
+	  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
 
-.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_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
 
-    .field  public static initonly  bool IsUnix
+	  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
 
-    // method line 2200
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+	  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_0119:  ldc.i4.1 
+	  IL_011a:  stloc.1 
+	  IL_011b:  leave IL_014b
+
+	  IL_0120:  nop 
+	  IL_0121:  ldc.i4.0 
+	  IL_0122:  stloc.1 
+	  IL_0123:  leave IL_014b
+
+	} // 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 2251
+    .method private static hidebysig 
+           default void RegisterFunction (string key, class [mscorlib]System.Reflection.MethodInfo info)  cil managed 
     {
-        // Method begins at RVA 0x2b1f4
-	// Code size 87 (0x57)
-	.maxstack 2
+        // Method begins at RVA 0x2a8b8
+	// Code size 119 (0x77)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		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:  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_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_0031:  ldloc.0 
-	IL_0032:  ldc.i4.6 
-	IL_0033:  beq IL_0043
+	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_0038:  ldloc.0 
-	IL_0039:  ldc.i4 128
-	IL_003e:  bne.un IL_0049
+	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_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_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
 
-    // method line 2201
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2b257
-	// 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_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
 
-    // method line 2202
-    .method public static hidebysig 
-           default bool IsVolumeCaseSensitive (string path)  cil managed 
+    // method line 2252
+    .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 0x2b260
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x2a93c
+	// Code size 247 (0xf7)
+	.maxstack 7
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
+		class NAnt.Core.Filters.FilterBuilder	V_1,
+		bool	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	.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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformHelper::IsVolumeCaseSensitive
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0033:  brtrue IL_00cb
 
-    // method line 2203
-    .method assembly static hidebysig specialname 
-           default bool get_Is64Bit ()  cil managed 
-    {
-        // Method begins at RVA 0x2b27c
-	// 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_0038:  ldloc.0 
+	  IL_0039:  brfalse IL_00cb
 
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method PlatformHelper::get_Is64Bit
+	  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
 
-    // method line 2204
-    .method assembly static hidebysig specialname 
-           default bool get_Is32Bit ()  cil managed 
-    {
-        // Method begins at RVA 0x2b29c
-	// 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_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_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method PlatformHelper::get_Is32Bit
+	  IL_00cb:  ldc.i4.0 
+	  IL_00cc:  stloc.2 
+	  IL_00cd:  leave IL_00f5
 
-    // method line 2205
-    .method public static hidebysig specialname 
-           default bool get_IsWindows ()  cil managed 
+	} // 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
+
+    // method line 2253
+    .method private static hidebysig 
+           default string GetAssemblyLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x2b2bc
-	// Code size 17 (0x11)
-	.maxstack 2
+        // Method begins at RVA 0x2aa50
+	// Code size 35 (0x23)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	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
+	.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_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method PlatformHelper::get_IsWindows
+	} // 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
 
-	.property bool Is64Bit ()
+	} // end handler 0
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TypeFactory::GetAssemblyLocation
+
+    // method line 2254
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2aa90
+	// 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
+
+	.property class NAnt.Core.TaskBuilderCollection TaskBuilders ()
 	{
-		.get default bool NAnt.Core.PlatformHelper::get_Is64Bit () 
+		.get default class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::get_TaskBuilders () 
 	}
-	.property bool Is32Bit ()
+	.property class NAnt.Core.DataTypeBaseBuilderCollection DataTypeBuilders ()
 	{
-		.get default bool NAnt.Core.PlatformHelper::get_Is32Bit () 
+		.get default class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::get_DataTypeBuilders () 
 	}
-	.property bool IsWindows ()
+	.property class NAnt.Core.Filters.FilterBuilderCollection FilterBuilders ()
 	{
-		.get default bool NAnt.Core.PlatformHelper::get_IsWindows () 
+		.get default class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::get_FilterBuilders () 
 	}
-  } // end of class NAnt.Core.PlatformHelper
+	.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
@@ -91106,11 +91150,11 @@
     .field  private  string _id
     .field  private  string _refID
 
-    // method line 2206
+    // method line 2255
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x133c0
+        // Method begins at RVA 0x10fd8
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -91118,11 +91162,11 @@
 	IL_0006:  ret 
     } // end of method DataTypeBase::.ctor
 
-    // method line 2207
+    // method line 2256
     .method public hidebysig specialname 
            instance default string get_ID ()  cil managed 
     {
-        // Method begins at RVA 0x133c8
+        // Method begins at RVA 0x10fe0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -91137,11 +91181,11 @@
 	IL_000e:  ret 
     } // end of method DataTypeBase::get_ID
 
-    // method line 2208
+    // method line 2257
     .method public hidebysig specialname 
            instance default void set_ID (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x133e3
+        // Method begins at RVA 0x10ffb
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91152,11 +91196,11 @@
 	IL_000d:  ret 
     } // end of method DataTypeBase::set_ID
 
-    // method line 2209
+    // method line 2258
     .method public hidebysig specialname 
            instance default string get_RefID ()  cil managed 
     {
-        // Method begins at RVA 0x133f4
+        // Method begins at RVA 0x1100c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -91171,11 +91215,11 @@
 	IL_000e:  ret 
     } // end of method DataTypeBase::get_RefID
 
-    // method line 2210
+    // method line 2259
     .method public hidebysig specialname 
            instance default void set_RefID (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1340f
+        // Method begins at RVA 0x11027
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91186,11 +91230,11 @@
 	IL_000d:  ret 
     } // end of method DataTypeBase::set_RefID
 
-    // method line 2211
+    // method line 2260
     .method public hidebysig specialname 
            instance default bool get_CanBeReferenced ()  cil managed 
     {
-        // Method begins at RVA 0x13420
+        // Method begins at RVA 0x11038
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -91209,11 +91253,11 @@
 	IL_0014:  ret 
     } // end of method DataTypeBase::get_CanBeReferenced
 
-    // method line 2212
+    // method line 2261
     .method public virtual hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x13444
+        // Method begins at RVA 0x1105c
 	// Code size 54 (0x36)
 	.maxstack 2
 	.locals init (
@@ -91246,11 +91290,11 @@
 	IL_0035:  ret 
     } // end of method DataTypeBase::get_Name
 
-    // method line 2213
+    // method line 2262
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x13488
+        // Method begins at RVA 0x110a0
 	// Code size 281 (0x119)
 	.maxstack 3
 	IL_0000:  nop 
@@ -91340,22 +91384,22 @@
 	IL_0118:  ret 
     } // end of method DataTypeBase::Initialize
 
-    // method line 2214
+    // method line 2263
     .method public virtual hidebysig newslot 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x135ad
+        // Method begins at RVA 0x111c5
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method DataTypeBase::Reset
 
-    // method line 2215
+    // method line 2264
     .method family hidebysig 
            instance default void CopyTo (class NAnt.Core.DataTypeBase clone)  cil managed 
     {
-        // Method begins at RVA 0x135b0
+        // Method begins at RVA 0x111c8
 	// Code size 33 (0x21)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91400,4325 +91444,4281 @@
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit ConfigurationSection
-  	extends [mscorlib]System.Object
-  	implements [System]System.Configuration.IConfigurationSectionHandler  {
+  .class public auto ansi sealed FrameworkTypes
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 2216
+    .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.FrameworkTypes All = int32(0x00000003)
+
+  } // end of class NAnt.Core.FrameworkTypes
+}
+
+.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.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 NAnt.Core.Level
+}
+
+.namespace NAnt.Core
+{
+  .class private auto ansi beforefieldinit LevelConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
+
+    // method line 2265
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2b2d9
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x2aae3
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ConfigurationSection::.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 2217
-    .method public final virtual hidebysig newslot 
-           instance default object Create (object parent, object configContext, class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 2266
+    .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 0x2b2e4
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x2aaf8
+	// Code size 50 (0x32)
+	.maxstack 4
 	.locals init (
-		object	V_0)
+		string	V_0,
+		object	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.3 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
 	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConfigurationSection::Create
+	IL_0009:  brfalse IL_0021
 
-  } // end of class NAnt.Core.ConfigurationSection
+	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 LevelConverter::ConvertFrom
+
+  } // end of class NAnt.Core.LevelConverter
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi serializable beforefieldinit DataTypeBaseBuilderCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit BuildEventArgs
+  	extends [mscorlib]System.EventArgs
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
+    .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
 
-    // method line 2218
+    // method line 2267
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2b2fa
-	// Code size 8 (0x8)
+        // Method begins at RVA 0x2ab36
+	// Code size 19 (0x13)
 	.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_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
 
-    // method line 2219
+    // method line 2268
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x2b303
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2ab4a
+	// Code size 26 (0x1a)
 	.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_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 2220
+    // method line 2269
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilder[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Target target)  cil managed 
     {
-        // Method begins at RVA 0x2b313
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2ab65
+	// Code size 38 (0x26)
 	.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 2221
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x2b324
-	// 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
+	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 2222
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.DataTypeBaseBuilder 'value')  cil managed 
+    // method line 2270
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
     {
-        // Method begins at RVA 0x2b34a
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2ab8c
+	// Code size 55 (0x37)
 	.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_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 2223
+    // method line 2271
     .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (string dataTypeName)  cil managed 
-    {
-        // Method begins at RVA 0x2b35c
-	// 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 2224
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x2b3e8
-	// 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 2225
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilder[] items)  cil managed 
-    {
-        // Method begins at RVA 0x2b40c
-	// 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 2226
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilderCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x2b43c
-	// 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 2227
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+           instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0x2b474
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x2abc4
+	// 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 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 string NAnt.Core.BuildEventArgs::_message
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseBuilderCollection::Contains
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Message
 
-    // method line 2228
-    .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
+    // method line 2272
+    .method public hidebysig specialname 
+           instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b498
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x2abdf
+	// Code size 9 (0x9)
+	.maxstack 8
 	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
+	IL_0003:  stfld string NAnt.Core.BuildEventArgs::_message
+	IL_0008:  ret 
+    } // end of method BuildEventArgs::set_Message
 
-    // method line 2229
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.DataTypeBaseBuilder[] 'array', int32 index)  cil managed 
+    // method line 2273
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
     {
-        // Method begins at RVA 0x2b4ba
+        // Method begins at RVA 0x2abec
 	// 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 2230
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x2b4cc
-	// Code size 21 (0x15)
-	.maxstack 2
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype NAnt.Core.Level	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 NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseBuilderCollection::IndexOf
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_MessageLevel
 
-    // method line 2231
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    // method line 2274
+    .method public hidebysig specialname 
+           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b4ed
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2ac07
+	// 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 DataTypeBaseBuilderCollection::Insert
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_0008:  ret 
+    } // end of method BuildEventArgs::set_MessageLevel
 
-    // method line 2232
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBaseBuilderEnumerator GetEnumerator ()  cil managed 
+    // method line 2275
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Exception get_Exception ()  cil managed 
     {
-        // Method begins at RVA 0x2b500
+        // Method begins at RVA 0x2ac14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBaseBuilderEnumerator	V_0)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseBuilderEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseBuilderCollection)
+	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 DataTypeBaseBuilderCollection::GetEnumerator
+    } // end of method BuildEventArgs::get_Exception
 
-    // method line 2233
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    // method line 2276
+    .method public hidebysig specialname 
+           instance default void set_Exception (class [mscorlib]System.Exception 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b51b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2ac2f
+	// 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 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 2234
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x2b52c
-	// 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_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::_exception
+	IL_0008:  ret 
+    } // end of method BuildEventArgs::set_Exception
 
-    // method line 2235
+    // method line 2277
     .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseBuilder get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x2b550
-	// 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 2236
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x2b578
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2ac3c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class NAnt.Core.Project	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_0002:  ldfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Project
 
-    // method line 2237
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 2278
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Target get_Target ()  cil managed 
     {
-        // Method begins at RVA 0x2b598
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2ac58
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Target	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_0002:  ldfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::MoveNext
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Target
 
-    // method line 2238
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 2279
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Task get_Task ()  cil managed 
     {
-        // Method begins at RVA 0x2b5b8
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2ac74
+	// 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.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 2239
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2b5d8
-	// Code size 13 (0xd)
-	.maxstack 8
+		class NAnt.Core.Task	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 void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::Reset
+	IL_0002:  ldfld class NAnt.Core.Task NAnt.Core.BuildEventArgs::_task
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 2240
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2b5e6
-	.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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Task
 
-	.property instance object System.Collections.IEnumerator.Current ()
+	.property instance string Message ()
 	{
-		.get instance default object NAnt.Core.DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default string NAnt.Core.BuildEventArgs::get_Message () 
+		.set instance default void NAnt.Core.BuildEventArgs::set_Message (string 'value') 
 	}
-	.property instance class NAnt.Core.DataTypeBaseBuilder Current ()
+	.property instance valuetype NAnt.Core.Level MessageLevel ()
 	{
-		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderEnumerator::get_Current () 
+		.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') 
 	}
-  } // end of class NAnt.Core.DataTypeBaseBuilderEnumerator
+	.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 serializable beforefieldinit Location
-  	extends [mscorlib]System.Object
+  .class public auto ansi sealed BuildEventHandler
+  	extends [mscorlib]System.MulticastDelegate
   {
-    .field  private  string _fileName
-    .field  private  int32 _lineNumber
-    .field  private  int32 _columnNumber
-    .field  public static initonly  class NAnt.Core.Location UnknownLocation
 
-    // method line 2241
+    // method line 2280
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0x2b5f4
-	// 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
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::.ctor
 
-    // method line 2242
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string fileName)  cil managed 
+    // method line 2281
+    .method public virtual hidebysig newslot 
+           instance default void Invoke (object sender, class NAnt.Core.BuildEventArgs e)  runtime managed 
     {
-        // Method begins at RVA 0x2b606
-	// 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 begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::Invoke
 
-    // method line 2243
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 2282
+    .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 0x2b618
-	// 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
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::BeginInvoke
 
-    // method line 2244
-    .method private hidebysig 
-           instance default void Init (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
+    // method line 2283
+    .method public virtual hidebysig newslot 
+           instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
-        // Method begins at RVA 0x2b62c
-	// 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
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::EndInvoke
 
-	  } // end handler 0
-	  IL_0037:  nop 
-	  IL_0038:  leave IL_003d
+  } // end of class NAnt.Core.BuildEventHandler
+}
 
-	} // 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
+.namespace NAnt.Core
+{
+  .class interface public auto ansi abstract IBuildListener
+  {
 
-    // method line 2245
-    .method public hidebysig specialname 
-           instance default string get_FileName ()  cil managed 
+    // method line 2284
+    .method public virtual hidebysig newslot abstract 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b6a8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 Location::get_FileName
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::BuildStarted
 
-    // method line 2246
-    .method public hidebysig specialname 
-           instance default int32 get_LineNumber ()  cil managed 
+    // method line 2285
+    .method public virtual hidebysig newslot abstract 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b6c4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 Location::get_LineNumber
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::BuildFinished
 
-    // method line 2247
-    .method public hidebysig specialname 
-           instance default int32 get_ColumnNumber ()  cil managed 
+    // method line 2286
+    .method public virtual hidebysig newslot abstract 
+           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b6e0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 Location::get_ColumnNumber
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::TargetStarted
 
-    // method line 2248
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 2287
+    .method public virtual hidebysig newslot abstract 
+           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b6fc
-	// Code size 121 (0x79)
-	.maxstack 5
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1)
-	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
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::TargetFinished
 
-	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
+    // method line 2288
+    .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_0077:  ldloc.1 
-	IL_0078:  ret 
-    } // end of method Location::ToString
+    // method line 2289
+    .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 2249
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 2290
+    .method public virtual hidebysig newslot abstract 
+           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b781
-	// 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
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::MessageLogged
 
-	.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
+  } // end of class NAnt.Core.IBuildListener
 }
 
 .namespace NAnt.Core
 {
-  .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..
-
-    .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
-
-    // method line 2250
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2b78d
-	// 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
+  .class interface public auto ansi abstract IBuildLogger
+  	implements NAnt.Core.IBuildListener  {
 
-    // method line 2251
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary original)  cil managed 
+    // method line 2291
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
     {
-        // Method begins at RVA 0x2b7a1
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::get_Threshold
 
-    // method line 2252
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary)  cil managed 
+    // method line 2292
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b7bb
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::set_Threshold
 
-    // method line 2253
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity)  cil managed 
+    // method line 2293
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default bool get_EmacsMode ()  cil managed 
     {
-        // Method begins at RVA 0x2b7d0
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::get_EmacsMode
 
-    // method line 2254
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor)  cil managed 
+    // method line 2294
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b7e5
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::set_EmacsMode
 
-    // method line 2255
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
+    // method line 2295
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
     {
-        // Method begins at RVA 0x2b7fb
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::get_OutputWriter
 
-    // method line 2256
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity, int32 loadFactor)  cil managed 
+    // method line 2296
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b811
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::set_OutputWriter
 
-    // method line 2257
-    .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 line 2297
+    .method public virtual hidebysig newslot abstract 
+           instance default void Flush ()  cil managed 
     {
-        // Method begins at RVA 0x2b828
-	// 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 begins at RVA 0x0
+    } // end of method IBuildLogger::Flush
 
-    // method line 2258
-    .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 0x2b83f
-	// 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
+	.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
+}
 
-    // method line 2259
-    .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 0x2b856
-	// 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
+.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 2260
+    // method line 2298
     .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 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2b86f
-	// Code size 24 (0x18)
+        // Method begins at RVA 0x2ac8f
+	// Code size 30 (0x1e)
 	.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:  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 2261
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+    // method line 2299
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
     {
-        // Method begins at RVA 0x2b888
+        // Method begins at RVA 0x2acb0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		valuetype NAnt.Core.Level	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
+	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 DataTypeBaseDictionary::get_InnerHash
+    } // end of method DefaultLogger::get_Threshold
 
-    // method line 2262
-    .method assembly hidebysig specialname 
-           instance default void set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
+    // method line 2300
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b8a3
+        // Method begins at RVA 0x2accb
 	// 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.DataTypeBaseDictionary::_innerHash
+	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
 	IL_0008:  ret 
-    } // end of method DataTypeBaseDictionary::set_InnerHash
+    } // end of method DefaultLogger::set_Threshold
 
-    // method line 2263
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBaseDictionaryEnumerator GetEnumerator ()  cil managed 
+    // method line 2301
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_EmacsMode ()  cil managed 
     {
-        // Method begins at RVA 0x2b8b0
+        // Method begins at RVA 0x2acd8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBaseDictionaryEnumerator	V_0)
+		bool	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 bool NAnt.Core.DefaultLogger::_emacsMode
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::GetEnumerator
+    } // end of method DefaultLogger::get_EmacsMode
 
-    // method line 2264
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    // method line 2302
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b8cc
-	.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 0x2acf3
+	// Code size 9 (0x9)
+	.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:  stfld bool NAnt.Core.DefaultLogger::_emacsMode
+	IL_0008:  ret 
+    } // end of method DefaultLogger::set_EmacsMode
 
-    // method line 2265
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 2303
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
     {
-        // Method begins at RVA 0x2b8e8
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+        // Method begins at RVA 0x2ad00
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+		class [mscorlib]System.IO.TextWriter	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 [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 DataTypeBaseDictionary::System.Collections.IEnumerable.GetEnumerator
+    } // end of method DefaultLogger::get_OutputWriter
 
-    // method line 2266
-    .method public hidebysig 
-           instance default void Remove (string key)  cil managed 
+    // method line 2304
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b903
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2ad1b
+	// 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 void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	IL_000d:  ret 
-    } // end of method DataTypeBaseDictionary::Remove
+	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 2267
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+    // method line 2305
+    .method public virtual hidebysig newslot 
+           instance default void Flush ()  cil managed 
     {
-        // Method begins at RVA 0x2b912
-	.override class [mscorlib]System.Collections.IDictionary::Remove
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2ad25
+	// Code size 26 (0x1a)
 	.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
+	IL_0002:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
+	IL_0007:  brfalse IL_0019
 
-    // method line 2268
-    .method public hidebysig 
-           instance default bool Contains (string key)  cil managed 
+	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 2306
+    .method public virtual hidebysig newslot 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b924
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x2ad40
+	// Code size 23 (0x17)
+	.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::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	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
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::Contains
+    // method line 2307
+    .method public virtual hidebysig newslot 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2ad58
+	// 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
 
-    // method line 2269
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+	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 2308
+    .method public virtual hidebysig newslot 
+           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b948
-	.override class [mscorlib]System.Collections.IDictionary::Contains
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x2b028
+	// Code size 126 (0x7e)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		int32	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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Contains
+	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
 
-    // method line 2270
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+	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 2309
+    .method public virtual hidebysig newslot 
+           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b969
-	// Code size 13 (0xd)
+        // Method begins at RVA 0x2b0b2
+	// Code size 2 (0x2)
 	.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_0001:  ret 
+    } // end of method DefaultLogger::TargetFinished
 
-    // method line 2271
-    .method public hidebysig 
-           instance default void Add (string key, class NAnt.Core.DataTypeBase 'value')  cil managed 
+    // method line 2310
+    .method public virtual hidebysig newslot 
+           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b977
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2b0b5
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::TaskStarted
+
+    // method line 2311
+    .method public virtual hidebysig newslot 
+           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2b0b8
+	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::TaskFinished
+
+    // method line 2312
+    .method public virtual hidebysig newslot 
+           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2b0bc
+	// 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.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 DataTypeBaseDictionary::Add
+	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
 
-    // method line 2272
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+	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 2313
+    .method family virtual hidebysig newslot 
+           instance default void Log (string message)  cil managed 
     {
-        // Method begins at RVA 0x2b987
-	.override class [mscorlib]System.Collections.IDictionary::Add
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2b14b
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::Log
+
+    // method line 2314
+    .method private hidebysig 
+           instance default void OutputMessage (valuetype NAnt.Core.Level messageLevel, string message, int32 indentationLength)  cil managed 
+    {
+        // Method begins at RVA 0x2b14e
+	// Code size 16 (0x10)
 	.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:  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 2273
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
+    // method line 2315
+    .method private hidebysig 
+           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b99c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x2b160
+	// Code size 49 (0x31)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		int32	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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_IsReadOnly
+	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 2274
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBase get_Item (string key)  cil managed 
+    // method line 2316
+    .method private hidebysig 
+           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e, int32 indentationLength)  cil managed 
     {
-        // Method begins at RVA 0x2b9bc
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x2b1a0
+	// 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 2317
+    .method private static hidebysig 
+           default class NAnt.Core.BuildEventArgs CreateBuildEvent (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x2b2cc
+	// Code size 30 (0x1e)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+		class NAnt.Core.BuildEventArgs	V_0,
+		class NAnt.Core.BuildEventArgs	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 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_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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method DataTypeBaseDictionary::get_Item
+	IL_001c:  ldloc.1 
+	IL_001d:  ret 
+    } // end of method DefaultLogger::CreateBuildEvent
 
-    // method line 2275
-    .method public hidebysig specialname 
-           instance default void set_Item (string key, class NAnt.Core.DataTypeBase 'value')  cil managed 
+	.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 2318
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype [mscorlib]System.DateTime startTime)  cil managed 
     {
-        // Method begins at RVA 0x2b9e2
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2b2f6
+	// 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 2319
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2b314
+	// 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 2320
+    .method public virtual hidebysig 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2b333
+	// Code size 22 (0x16)
 	.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:  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 2276
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    // method line 2321
+    .method public virtual hidebysig 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2b9f4
-	.override class [mscorlib]System.Collections.IDictionary::get_Item
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x2b34c
+	// Code size 712 (0x2c8)
+	.maxstack 8
 	.locals init (
-		object	V_0)
+		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:  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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.get_Item
+	IL_0025:  nop 
+	IL_0026:  br IL_02c7
 
-    // method line 2277
-    .method private final virtual hidebysig newslot specialname 
-           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+	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 2322
+    .method family virtual hidebysig 
+           instance default void Log (string message)  cil managed 
     {
-        // Method begins at RVA 0x2ba15
-	.override class [mscorlib]System.Collections.IDictionary::set_Item
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2b66c
+	// Code size 25 (0x19)
 	.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_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 2278
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    // method line 2323
+    .method private hidebysig 
+           instance default string GetPropertyValue (class NAnt.Core.PropertyDictionary properties, string name, string defaultValue, bool required)  cil managed 
     {
-        // Method begins at RVA 0x2ba2c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x2b688
+	// Code size 76 (0x4c)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		string	V_0,
+		string	V_1,
+		string	V_2)
 	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_0001:  ldstr "MailLogger."
+	IL_0006:  ldarg.2 
+	IL_0007:  call string string::Concat(string, string)
 	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_Values
+	IL_001b:  nop 
+	IL_001c:  ldarg.3 
+	IL_001d:  stloc.1 
+	IL_001e:  nop 
+	IL_001f:  ldarg.s 4
+	IL_0021:  brfalse IL_0043
 
-    // method line 2279
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+	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 2324
+    .method private hidebysig 
+           instance default bool IsSSLEnabled (class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x2ba4c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x2b6e0
+	// Code size 69 (0x45)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		string	V_0,
+		bool	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_Keys()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_Keys
+	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
 
-    // method line 2280
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
+	} // 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 2325
+    .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 0x2ba6c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x2b744
+	// Code size 184 (0xb8)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		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.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_0001:  ldarg.3 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brfalse IL_0012
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_IsFixedSize
+	IL_000c:  nop 
+	IL_000d:  br IL_00b7
 
-    // method line 2281
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+	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 2326
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ba8c
-	.override class [mscorlib]System.Collections.ICollection::CopyTo
+        // Method begins at RVA 0x2b818
+	// 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 2327
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.BuildListenerCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2b821
 	// Code size 15 (0xf)
 	.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_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 DataTypeBaseDictionary::System.Collections.ICollection.CopyTo
+    } // end of method BuildListenerCollection::.ctor
 
-    // method line 2282
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsSynchronized ()  cil managed 
+    // method line 2328
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.IBuildListener[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ba9c
-	// 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.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 DataTypeBaseDictionary::get_IsSynchronized
+        // Method begins at RVA 0x2b831
+	// 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 2283
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+    // method line 2329
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.IBuildListener get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2babc
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x2b844
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.IBuildListener	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 int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_Count
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method BuildListenerCollection::get_Item
 
-    // method line 2284
-    .method public final virtual hidebysig newslot specialname 
-           instance default object get_SyncRoot ()  cil managed 
+    // method line 2330
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.IBuildListener 'value')  cil managed 
     {
-        // Method begins at RVA 0x2badc
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0x2b86a
+	// Code size 15 (0xf)
+	.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 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 DataTypeBaseDictionary::get_SyncRoot
+	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 2285
+    // method line 2331
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.DataTypeBase[] 'array', int32 index)  cil managed 
+           instance default int32 Add (class NAnt.Core.IBuildListener item)  cil managed 
     {
-        // Method begins at RVA 0x2bafc
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x2b87c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
+	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.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::CopyTo
+	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 2286
+    // method line 2332
     .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBaseDictionary Clone ()  cil managed 
+           instance default void AddRange (class NAnt.Core.IBuildListener[] items)  cil managed 
     {
-        // Method begins at RVA 0x2bb0c
-	// Code size 38 (0x26)
-	.maxstack 2
+        // Method begins at RVA 0x2b8a0
+	// Code size 34 (0x22)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.DataTypeBaseDictionary	V_0,
-		class NAnt.Core.DataTypeBaseDictionary	V_1)
+		int32	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:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_0024:  ldloc.1 
-	IL_0025:  ret 
-    } // end of method DataTypeBaseDictionary::Clone
+	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
 
-    // method line 2287
-    .method private final virtual hidebysig newslot 
-           instance default object System.ICloneable.Clone ()  cil managed 
+	IL_0021:  ret 
+    } // end of method BuildListenerCollection::AddRange
+
+    // method line 2333
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.BuildListenerCollection items)  cil managed 
     {
-        // Method begins at RVA 0x2bb40
-	.override class [mscorlib]System.ICloneable::Clone
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2b8d0
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
-		object	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.DataTypeBaseDictionary::Clone()
-	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 DataTypeBaseDictionary::System.ICloneable.Clone
+	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
 
-    // method line 2288
+	IL_0028:  ret 
+    } // end of method BuildListenerCollection::AddRange
+
+    // method line 2334
     .method public hidebysig 
-           instance default bool ContainsKey (string key)  cil managed 
+           instance default bool Contains (class NAnt.Core.IBuildListener item)  cil managed 
     {
-        // Method begins at RVA 0x2bb5c
+        // Method begins at RVA 0x2b908
 	// 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.DataTypeBaseDictionary::_innerHash
+	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.Hashtable::ContainsKey(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 DataTypeBaseDictionary::ContainsKey
+    } // end of method BuildListenerCollection::Contains
 
-    // method line 2289
+    // method line 2335
     .method public hidebysig 
-           instance default bool ContainsValue (class NAnt.Core.DataTypeBase 'value')  cil managed 
+           instance default void CopyTo (class NAnt.Core.IBuildListener[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x2b929
+	// 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 2336
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.IBuildListener item)  cil managed 
     {
-        // Method begins at RVA 0x2bb80
+        // Method begins at RVA 0x2b93c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
+	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.Hashtable::ContainsValue(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 DataTypeBaseDictionary::ContainsValue
+    } // end of method BuildListenerCollection::IndexOf
 
-    // method line 2290
-    .method public static hidebysig 
-           default class NAnt.Core.DataTypeBaseDictionary Synchronized (class NAnt.Core.DataTypeBaseDictionary nonSync)  cil managed 
+    // method line 2337
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.IBuildListener item)  cil managed 
     {
-        // Method begins at RVA 0x2bba4
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBaseDictionary	V_0,
-		class NAnt.Core.DataTypeBaseDictionary	V_1)
+        // Method begins at RVA 0x2b95d
+	// Code size 15 (0xf)
+	.maxstack 8
 	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_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method DataTypeBaseDictionary::Synchronized
+	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 2291
-    .method public virtual hidebysig newslot 
-           instance default void Inherit (class NAnt.Core.DataTypeBaseDictionary source)  cil managed 
+    // method line 2338
+    .method public hidebysig 
+           instance default class NAnt.Core.BuildListenerEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2bbd4
-	// Code size 84 (0x54)
-	.maxstack 4
+        // Method begins at RVA 0x2b970
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class NAnt.Core.BuildListenerEnumerator	V_0)
 	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
+	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
 
-	} // 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::GetEnumerator
 
-	  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
+    // method line 2339
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.IBuildListener item)  cil managed 
+    {
+        // Method begins at RVA 0x2b98b
+	// 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 object System.Collections.IDictionary.Item (object)
-	{
-		.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.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.DataTypeBaseDictionary::get_IsReadOnly () 
-	}
-	.property instance class NAnt.Core.DataTypeBase Item (string)
-	{
-		.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.DataTypeBaseDictionary::get_Values () 
-	}
-	.property instance class [mscorlib]System.Collections.ICollection Keys ()
-	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.DataTypeBaseDictionary::get_Keys () 
-	}
-	.property instance bool IsFixedSize ()
-	{
-		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsFixedSize () 
-	}
-	.property instance bool IsSynchronized ()
-	{
-		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsSynchronized () 
-	}
-	.property instance int32 Count ()
-	{
-		.get instance default int32 NAnt.Core.DataTypeBaseDictionary::get_Count () 
-	}
-	.property instance object SyncRoot ()
+	.property instance class NAnt.Core.IBuildListener Item (int32)
 	{
-		.get instance default object NAnt.Core.DataTypeBaseDictionary::get_SyncRoot () 
+		.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.DataTypeBaseDictionary
+  } // end of class NAnt.Core.BuildListenerCollection
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit DataTypeBaseDictionaryEnumerator
+  .class public auto ansi beforefieldinit BuildListenerEnumerator
   	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 2292
+    // method line 2340
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary enumerable)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.BuildListenerCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2bc44
-	// Code size 25 (0x19)
-	.maxstack 8
+        // Method begins at RVA 0x2b99c
+	// 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.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
-
-    // method line 2293
-    .method public hidebysig specialname 
-           instance default string get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0x2bc60
-	// 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 2294
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0x2bc88
-	.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.DataTypeBaseDictionaryEnumerator::get_Key()
-	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
+	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 2295
+    // method line 2341
     .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBase get_Value ()  cil managed 
+           instance default class NAnt.Core.IBuildListener get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2bca4
+        // Method begins at RVA 0x2b9c0
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+		class NAnt.Core.IBuildListener	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_Value()
-	IL_000c:  castclass NAnt.Core.DataTypeBase
+	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 DataTypeBaseDictionaryEnumerator::get_Value
+    } // end of method BuildListenerEnumerator::get_Current
 
-    // method line 2296
+    // method line 2342
     .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0x2bccc
-	.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.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 DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
-
-    // method line 2297
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2bce8
+        // Method begins at RVA 0x2b9e8
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
+		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 valuetype [mscorlib]System.Collections.DictionaryEntry class [mscorlib]System.Collections.IDictionaryEnumerator::get_Entry()
+	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 DataTypeBaseDictionaryEnumerator::get_Entry
-
-    // method line 2298
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2bd08
-	// 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
+    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 2299
-    .method public final virtual hidebysig newslot 
+    // method line 2343
+    .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2bd18
+        // Method begins at RVA 0x2ba08
 	// 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_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 DataTypeBaseDictionaryEnumerator::MoveNext
+    } // end of method BuildListenerEnumerator::MoveNext
 
-    // method line 2300
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 2344
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2bd38
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+        // Method begins at RVA 0x2ba28
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		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 object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	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 DataTypeBaseDictionaryEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 2301
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBase get_Current ()  cil managed 
+    // method line 2345
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2bd58
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+        // Method begins at RVA 0x2ba48
+	// 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 object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.DataTypeBase
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	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
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::get_Current
+    // method line 2346
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x2ba56
+	.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.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 () 
+		.get instance default object NAnt.Core.BuildListenerEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.DataTypeBase Current ()
+	.property instance class NAnt.Core.IBuildListener Current ()
 	{
-		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Current () 
+		.get instance default class NAnt.Core.IBuildListener NAnt.Core.BuildListenerEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.DataTypeBaseDictionaryEnumerator
+  } // end of class NAnt.Core.BuildListenerEnumerator
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit CommandLineOptions
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit LogWriter
+  	extends [mscorlib]System.IO.TextWriter
   {
-    .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
+    .field  private initonly  class NAnt.Core.Task _task
+    .field  private initonly  valuetype NAnt.Core.Level _outputLevel
+    .field  private  string _message
 
-    // method line 2302
+    // method line 2347
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           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 0x2bd7d
-	// Code size 58 (0x3a)
+        // Method begins at RVA 0x2ba64
+	// Code size 34 (0x22)
 	.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 2303
-    .method public hidebysig specialname 
-           instance default string get_TargetFramework ()  cil managed 
-    {
-        // Method begins at RVA 0x2bdb8
-	// 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 2304
-    .method public hidebysig specialname 
-           instance default void set_TargetFramework (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2bdd3
-	// 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
+	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 2305
-    .method public hidebysig specialname 
-           instance default string get_DefaultFramework ()  cil managed 
+    // method line 2348
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
     {
-        // Method begins at RVA 0x2bde0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2ba88
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Text.Encoding	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_0001:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_DefaultFramework
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method LogWriter::get_Encoding
 
-    // method line 2306
-    .method public hidebysig specialname 
-           instance default void set_DefaultFramework (string 'value')  cil managed 
+    // method line 2349
+    .method public virtual hidebysig 
+           instance default void Write (char[] chars)  cil managed 
     {
-        // Method begins at RVA 0x2bdfb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2baa2
+	// Code size 20 (0x14)
 	.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
-
-    // method line 2307
-    .method public hidebysig specialname 
-           instance default string get_BuildFile ()  cil managed 
-    {
-        // Method begins at RVA 0x2be08
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_BuildFile
+	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 2308
-    .method public hidebysig specialname 
-           instance default void set_BuildFile (string 'value')  cil managed 
+    // method line 2350
+    .method public virtual hidebysig 
+           instance default void Write (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2be23
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2bab7
+	// Code size 20 (0x14)
 	.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
-
-    // method line 2309
-    .method public hidebysig specialname 
-           instance default bool get_Pause ()  cil managed 
-    {
-        // Method begins at RVA 0x2be30
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Pause
+	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 2310
-    .method public hidebysig specialname 
-           instance default void set_Pause (bool 'value')  cil managed 
+    // method line 2351
+    .method public virtual hidebysig 
+           instance default void WriteLine ()  cil managed 
     {
-        // Method begins at RVA 0x2be4b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2bacc
+	// Code size 13 (0xd)
 	.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 2311
-    .method public hidebysig specialname 
-           instance default bool get_Verbose ()  cil managed 
-    {
-        // Method begins at RVA 0x2be58
-	// 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::_verbose
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Verbose
+	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 2312
-    .method public hidebysig specialname 
-           instance default void set_Verbose (bool 'value')  cil managed 
+    // method line 2352
+    .method public virtual hidebysig 
+           instance default void WriteLine (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2be73
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2bada
+	// Code size 54 (0x36)
 	.maxstack 8
 	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:  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 2313
-    .method public hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+    // method line 2353
+    .method public virtual hidebysig 
+           instance default void WriteLine (string line, object[] args)  cil managed 
     {
-        // Method begins at RVA 0x2be80
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x2bb14
+	// Code size 65 (0x41)
+	.maxstack 5
 	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Debug
+	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 2314
-    .method public hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+    // method line 2354
+    .method public virtual hidebysig 
+           instance default void Flush ()  cil managed 
     {
-        // Method begins at RVA 0x2be9b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2bb61
+	// Code size 54 (0x36)
 	.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 2315
-    .method public hidebysig specialname 
-           instance default bool get_Quiet ()  cil managed 
-    {
-        // Method begins at RVA 0x2bea8
-	// 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::_quiet
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0007:  callvirt instance int32 string::get_Length()
+	IL_000c:  brfalse IL_0035
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Quiet
+	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 2316
-    .method public hidebysig specialname 
-           instance default void set_Quiet (bool 'value')  cil managed 
+    // method line 2355
+    .method public virtual hidebysig 
+           instance default void Close ()  cil managed 
     {
-        // Method begins at RVA 0x2bec3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2bb98
+	// Code size 14 (0xe)
 	.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
+	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 2317
-    .method public hidebysig specialname 
-           instance default bool get_EmacsMode ()  cil managed 
+    // method line 2356
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0x2bed0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2bba8
+	// Code size 47 (0x2f)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_emacsMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
+	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:  ret 
-    } // end of method CommandLineOptions::get_EmacsMode
-
-    // method line 2318
-    .method public hidebysig specialname 
-           instance default void set_EmacsMode (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2beeb
-	// Code size 9 (0x9)
-	.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
-
-    // method line 2319
-    .method public hidebysig specialname 
-           instance default bool get_FindInParent ()  cil managed 
-    {
-        // Method begins at RVA 0x2bef8
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_FindInParent
+	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 2320
-    .method public hidebysig specialname 
-           instance default void set_FindInParent (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2bf13
-	// Code size 9 (0x9)
-	.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_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method LogWriter::InitializeLifetimeService
 
-    // method line 2321
-    .method public hidebysig specialname 
-           instance default int32 get_IndentationLevel ()  cil managed 
+    // method line 2357
+    .method family hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_OutputLevel ()  cil managed 
     {
-        // Method begins at RVA 0x2bf20
+        // Method begins at RVA 0x2bbe4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype NAnt.Core.Level	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
+	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 CommandLineOptions::get_IndentationLevel
-
-    // method line 2322
-    .method public hidebysig specialname 
-           instance default void set_IndentationLevel (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2bf3b
-	// 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
-
-    // method line 2323
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.NameValueCollection get_Properties ()  cil managed 
-    {
-        // Method begins at RVA 0x2bf48
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		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
+    } // end of method LogWriter::get_OutputLevel
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Properties
+	.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
+}
 
-    // method line 2324
-    .method public hidebysig specialname 
-           instance default string get_LoggerType ()  cil managed 
-    {
-        // Method begins at RVA 0x2bf64
-	// 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::_loggerType
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+.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                                           ) // ..
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_LoggerType
+    .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 2325
-    .method public hidebysig specialname 
-           instance default void set_LoggerType (string 'value')  cil managed 
+    // method line 2358
+    .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 0x2bf7f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2bbff
+	// Code size 31 (0x1f)
 	.maxstack 8
-	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_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 2326
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_LogFile ()  cil managed 
+    // method line 2359
+    .method family virtual hidebysig 
+           instance default object EvaluateProperty (string propertyName)  cil managed 
     {
-        // Method begins at RVA 0x2bf8c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2bc20
+	// Code size 16 (0x10)
+	.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.CommandLineOptions::_logFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_LogFile
-
-    // method line 2327
-    .method public hidebysig specialname 
-           instance default void set_LogFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2bfa7
-	// Code size 9 (0x9)
-	.maxstack 8
+		object	V_0)
 	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 line 2328
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Listeners ()  cil managed 
-    {
-        // Method begins at RVA 0x2bfb4
-	// 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
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Listeners
-
-    // method line 2329
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_ExtensionAssemblies ()  cil managed 
-    {
-        // Method begins at RVA 0x2bfd0
-	// 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::_extensionAssemblies
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0003:  call instance string class NAnt.Core.ExpressionEvaluator::GetPropertyValue(string)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_ExtensionAssemblies
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method ExpressionEvaluator::EvaluateProperty
 
-    // method line 2330
-    .method public hidebysig specialname 
-           instance default bool get_ShowProjectHelp ()  cil managed 
+    // method line 2360
+    .method family virtual hidebysig 
+           instance default object EvaluateFunction (class [mscorlib]System.Reflection.MethodInfo methodInfo, object[] args)  cil managed 
     {
-        // Method begins at RVA 0x2bfec
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2bc3c
+	// Code size 184 (0xb8)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		object	V_0,
+		class [mscorlib]System.Reflection.ConstructorInfo	V_1,
+		object	V_2,
+		class [mscorlib]System.Reflection.TargetInvocationException	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 CommandLineOptions::get_ShowProjectHelp
+	.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
 
-    // method line 2331
-    .method public hidebysig specialname 
-           instance default void set_ShowProjectHelp (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2c007
-	// 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
+	  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
 
-    // method line 2332
-    .method public hidebysig specialname 
-           instance default bool get_NoLogo ()  cil managed 
-    {
-        // Method begins at RVA 0x2c014
-	// 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::_noLogo
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_NoLogo
+	  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
 
-    // method line 2333
-    .method public hidebysig specialname 
-           instance default void set_NoLogo (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2c02f
-	// 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_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
 
-    // method line 2334
-    .method public hidebysig specialname 
-           instance default bool get_ShowHelp ()  cil managed 
-    {
-        // Method begins at RVA 0x2c03c
-	// 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
+	} // 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_ShowHelp
+	  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 2335
-    .method public hidebysig specialname 
-           instance default void set_ShowHelp (bool 'value')  cil managed 
+    // method line 2361
+    .method public hidebysig 
+           instance default string GetPropertyValue (string propertyName)  cil managed 
     {
-        // Method begins at RVA 0x2c057
-	// 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
+        .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 line 2336
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Targets ()  cil managed 
-    {
-        // Method begins at RVA 0x2c064
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2bd10
+	// Code size 271 (0x10f)
+	.maxstack 5
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		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 [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
-
-		.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
-
-		.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....
-
-		.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
-
-		.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
+	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
 
-		.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_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
 
-		.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_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
 
-		.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_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
 
-		.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_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
 
-		.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_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
 
-		.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_010d:  ldloc.3 
+	IL_010e:  ret 
+    } // end of method ExpressionEvaluator::GetPropertyValue
 
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_Targets () 
-	}
-  } // end of class NAnt.Core.CommandLineOptions
+  } // end of class NAnt.Core.ExpressionEvaluator
 }
 
 .namespace NAnt.Core
 {
-  .class private auto ansi beforefieldinit ProjectSettingsLoader
+  .class public auto ansi beforefieldinit ConsoleDriver
   	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
+    .field private static literal  int32 INDENTATION_SIZE = int32(0x00000004)
 
-    // method line 2337
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    // method line 2362
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2c07f
-	// Code size 58 (0x3a)
+        // Method begins at RVA 0x2be2b
+	// 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 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
+	IL_0006:  ret 
+    } // end of method ConsoleDriver::.ctor
 
-    // method line 2338
-    .method family hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    // method line 2363
+    .method public static hidebysig 
+           default int32 Main (string[] args)  cil managed 
     {
-        // Method begins at RVA 0x2c0bc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2be34
+	// Code size 1595 (0x63b)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		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:  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
+	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
 
-    // method line 2339
-    .method private hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
-    {
-        // Method begins at RVA 0x2c0d8
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettingsLoader::get_NamespaceManager
+	    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
 
-    // method line 2340
-    .method public hidebysig 
-           instance default void ProcessSettings ()  cil managed 
-    {
-        // Method begins at RVA 0x2c0f4
-	// 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_0072:  ldloc.s 4
+	    IL_0074:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Debug()
+	    IL_0079:  brfalse IL_008b
 
-	IL_0011:  nop 
-	IL_0012:  br IL_006e
+	    IL_007e:  nop 
+	    IL_007f:  ldc.i4 1000
+	    IL_0084:  stloc.2 
+	    IL_0085:  nop 
+	    IL_0086:  br IL_00b8
 
-	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
+	    IL_008b:  ldloc.s 4
+	    IL_008d:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Verbose()
+	    IL_0092:  brfalse IL_00a4
 
-    // method line 2341
-    .method private hidebysig 
-           instance default void ProcessPlatform (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
-    {
-        // Method begins at RVA 0x2c170
-	// 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_0097:  nop 
+	    IL_0098:  ldc.i4 2000
+	    IL_009d:  stloc.2 
+	    IL_009e:  nop 
+	    IL_009f:  br IL_00b8
 
-	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_00a4:  ldloc.s 4
+	    IL_00a6:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Quiet()
+	    IL_00ab:  brfalse IL_00b8
 
-	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_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_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_00c4:  nop 
+	    IL_00c5:  ldloc.1 
+	    IL_00c6:  brfalse IL_00f3
 
-	IL_00e3:  ldc.i4 1000
-	IL_00e8:  br IL_00f2
+	    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_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_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_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_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_019c:  ldc.i4 1000
-	IL_01a1:  br IL_01ab
+	      IL_0187:  leave IL_01a3
 
-	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
+	    } // 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
 
-    // method line 2342
-    .method private hidebysig 
-           instance default void ProcessFrameworks (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
-    {
-        // Method begins at RVA 0x2c33c
-	// 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_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_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_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_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_01ea:  leave IL_0206
 
-	  IL_0049:  nop 
-	  IL_004a:  leave IL_0074
+	    } // 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_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_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_007f:  leave IL_0098
+	      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
 
-	} // 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_0254:  leave IL_0270
 
-	  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
+	    } // 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
 
-    // method line 2343
-    .method private hidebysig 
-           instance default void ProcessGlobalProperties (class [System.Xml]System.Xml.XmlNodeList propertyNodes)  cil managed 
-    {
-        // Method begins at RVA 0x2c3f4
-	// Code size 143 (0x8f)
-	.maxstack 3
-	.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 [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 
-	.try { // 0
-	  IL_0009:  br IL_0068
+	      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_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_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_0027:  nop 
-	  IL_0028:  leave IL_0068
+	    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_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
+	    } // 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_0073:  leave IL_008e
+	      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 .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
+	    } // end handler 3
+	    IL_035d:  nop 
+	    IL_035e:  br IL_0413
 
-	  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_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
 
-    // method line 2344
-    .method private hidebysig 
-           instance default class NAnt.Core.FrameworkInfo ConfigureRuntimeFramework ()  cil managed 
-    {
-        // Method begins at RVA 0x2c4a0
-	// 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_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_0011:  ldstr "mono"
-	IL_0016:  br IL_0020
+	    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_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_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_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_040a:  nop 
+	    IL_040b:  ldc.i4.1 
+	    IL_040c:  stloc.s 5
+	    IL_040e:  leave IL_0638
 
-	  IL_0064:  leave IL_0089
+	    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_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_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_007a:  nop 
-	  IL_007b:  leave IL_0089
+	    IL_0437:  nop 
+	    IL_0438:  ldloc.1 
+	    IL_0439:  callvirt instance bool class NAnt.Core.Project::Run()
+	    IL_043e:  brtrue IL_044c
 
-	  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_0443:  nop 
+	    IL_0444:  ldc.i4.1 
+	    IL_0445:  stloc.s 5
+	    IL_0447:  leave IL_0638
 
-	  IL_0095:  leave IL_00b1
+	    IL_044c:  nop 
+	    IL_044d:  ldc.i4.0 
+	    IL_044e:  stloc.s 5
+	    IL_0450:  leave IL_0638
 
-	} // 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
+	  } // 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_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_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_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_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_00e4:  nop 
-	  IL_00e5:  leave IL_0125
+	  } // 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_00ea:  nop 
-	  IL_00eb:  leave IL_0111
+	    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
 
-	} // 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_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_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
+	  } // 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_0108:  nop 
-	  IL_0109:  rethrow 
-	  IL_010b:  nop 
-	  IL_010c:  leave IL_0111
+	    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
 
-	} // 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_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_0125:  ldloc.s 6
-	IL_0127:  brtrue IL_014e
+	  } // end handler 6
+	} // end .try 7
+	finally  { // 7
+	  IL_060f:  nop 
+	  IL_0610:  ldloc.1 
+	  IL_0611:  brfalse IL_061e
 
-	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_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_0157:  ldloc.s 9
-	IL_0159:  ret 
-    } // end of method ProjectSettingsLoader::ConfigureRuntimeFramework
+	  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 2345
-    .method private hidebysig 
-           instance default class NAnt.Core.FrameworkInfo ConfigureTargetFramework (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
+    // method line 2364
+    .method public static hidebysig 
+           default void ShowProjectHelp (class [System.Xml]System.Xml.XmlDocument buildDoc)  cil managed 
     {
-        // Method begins at RVA 0x2c624
-	// Code size 170 (0xaa)
-	.maxstack 7
+        // Method begins at RVA 0x2c540
+	// Code size 150 (0x96)
+	.maxstack 4
 	.locals init (
-		string	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		class NAnt.Core.FrameworkInfo	V_2)
+		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:  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_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_00a8:  ldloc.1 
-	IL_00a9:  ret 
-    } // end of method ProjectSettingsLoader::ConfigureTargetFramework
+	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 2346
-    .method private static hidebysig 
-           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
+    // method line 2365
+    .method public static hidebysig 
+           default string GetBuildFileName (string directory, string searchPattern, bool findInParent)  cil managed 
     {
-        // Method begins at RVA 0x2c6dc
-	// Code size 58 (0x3a)
-	.maxstack 2
+        // Method begins at RVA 0x2c5e4
+	// Code size 296 (0x128)
+	.maxstack 4
 	.locals init (
 		string	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1,
-		string	V_2)
+		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.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 beforefieldinit ValidationException
-  	extends NAnt.Core.BuildException
-  {
+	IL_0003:  ldarg.1 
+	IL_0004:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0009:  brfalse IL_0017
 
-    // method line 2347
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2c722
-	// 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
+	IL_000e:  nop 
+	IL_000f:  ldarg.1 
+	IL_0010:  stloc.0 
+	IL_0011:  nop 
+	IL_0012:  br IL_011f
 
-    // method line 2348
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message)  cil managed 
-    {
-        // Method begins at RVA 0x2c72b
-	// 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
+	IL_0017:  nop 
+	IL_0018:  ldarg.1 
+	IL_0019:  brtrue IL_0027
 
-    // method line 2349
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
-    {
-        // Method begins at RVA 0x2c735
-	// 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
+	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
 
-    // method line 2350
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x2c740
-	// 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
+	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
 
-    // method line 2351
-    .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 0x2c74b
-	// 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
+	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
 
-    // method line 2352
-    .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 0x2c757
-	// 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
+	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
 
-  } // end of class NAnt.Core.ValidationException
-}
+	IL_0075:  ldloc.2 
+	IL_0076:  ldlen 
+	IL_0077:  conv.i4 
+	IL_0078:  ldc.i4.1 
+	IL_0079:  ble IL_00a5
 
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit DataTypeBaseBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
-  {
-    .field  private initonly  string _className
-    .field  private  string _dataTypeName
+	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
 
-    // method line 2353
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
-    {
-        // Method begins at RVA 0x2c762
-	// 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
+	IL_00ad:  ldarg.2 
+	IL_00ae:  brfalse IL_0101
 
-    // method line 2354
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
-    {
-        // Method begins at RVA 0x2c772
-	// 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
+	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
 
-    // method line 2355
-    .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
-    {
-        // Method begins at RVA 0x2c784
-	// 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_00c2:  ldloc.s 4
+	IL_00c4:  brfalse IL_00df
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilder::get_ClassName
+	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
 
-    // method line 2356
-    .method public hidebysig specialname 
-           instance default string get_DataTypeName ()  cil managed 
-    {
-        // Method begins at RVA 0x2c7a0
-	// 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_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_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_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_004c:  ldloc.1 
-	IL_004d:  ret 
-    } // end of method DataTypeBaseBuilder::get_DataTypeName
+	IL_0126:  ldloc.3 
+	IL_0127:  ret 
+    } // end of method ConsoleDriver::GetBuildFileName
 
-    // method line 2357
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBase CreateDataTypeBase ()  cil managed 
+    // method line 2366
+    .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 0x2c7fc
-        .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 0x2c718
+	// Code size 153 (0x99)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+		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:  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 beforefieldinit TaskBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
-  {
-    .field  private initonly  string _className
-    .field  private  string _taskName
-
-    // method line 2358
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
-    {
-        // Method begins at RVA 0x2c832
-	// 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:  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
 
-    // method line 2359
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
-    {
-        // Method begins at RVA 0x2c842
-	// 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_0032:  ldc.i4 1000
+	IL_0037:  br IL_0041
 
-    // method line 2360
-    .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
-    {
-        // Method begins at RVA 0x2c854
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TaskBuilder::get_ClassName
+	  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
 
-    // method line 2361
-    .method public hidebysig specialname 
-           instance default string get_TaskName ()  cil managed 
-    {
-        // Method begins at RVA 0x2c870
-	// 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_0079:  leave IL_0092
 
-	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
+	} // 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_004c:  ldloc.1 
-	IL_004d:  ret 
-    } // end of method TaskBuilder::get_TaskName
+	  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 2362
-    .method public hidebysig 
-           instance default class NAnt.Core.Task CreateTask ()  cil managed 
+    // method line 2367
+    .method public static hidebysig 
+           default class NAnt.Core.IBuildLogger CreateLogger (string typeName)  cil managed 
     {
-        // Method begins at RVA 0x2c8cc
+        // Method begins at RVA 0x2c7d0
         .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 70 (0x46)
-	.maxstack 8
+	// Code size 144 (0x90)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Task	V_0,
-		class NAnt.Core.Extensibility.IPluginConsumer	V_1,
-		class NAnt.Core.Task	V_2)
+		class [mscorlib]System.Type	V_0,
+		object	V_1,
+		class NAnt.Core.IBuildLogger	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 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_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
 
-    // method line 2363
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2c91e
-	// 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_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
 
-    // method line 2364
-    .method private final virtual hidebysig newslot 
-           instance default object System.ICloneable.Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x2c934
-	.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
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PathScanner::System.ICloneable.Clone
+	IL_008e:  ldloc.2 
+	IL_008f:  ret 
+    } // end of method ConsoleDriver::CreateLogger
 
-    // method line 2365
-    .method public hidebysig 
-           instance default class NAnt.Core.PathScanner Clone ()  cil managed 
+    // method line 2368
+    .method public static hidebysig 
+           default class NAnt.Core.IBuildListener CreateListener (string typeName)  cil managed 
     {
-        // Method begins at RVA 0x2c950
-	// Code size 33 (0x21)
-	.maxstack 2
+        // Method begins at RVA 0x2c86c
+        .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 NAnt.Core.PathScanner	V_0,
-		class NAnt.Core.PathScanner	V_1)
-	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_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method PathScanner::Clone
-
-    // method line 2366
-    .method public hidebysig 
-           instance default void Add (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x2c97d
-	// Code size 15 (0xf)
-	.maxstack 8
+		class [mscorlib]System.Type	V_0,
+		object	V_1,
+		class NAnt.Core.IBuildListener	V_2)
 	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:  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
 
-    // method line 2367
-    .method public hidebysig 
-           instance default void Clear ()  cil managed 
-    {
-        // Method begins at RVA 0x2c98d
-	// 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
+	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
 
-    // method line 2368
-    .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection Scan ()  cil managed 
-    {
-        // Method begins at RVA 0x2c99c
-	// Code size 20 (0x14)
-	.maxstack 2
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PathScanner::Scan
+	IL_008e:  ldloc.2 
+	IL_008f:  ret 
+    } // end of method ConsoleDriver::CreateListener
 
     // method line 2369
-    .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection Scan (string name)  cil managed 
+    .method private static hidebysig 
+           default void AddBuildListeners (class NAnt.Core.CommandLineOptions cmdlineOptions, class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x2c9bc
-	// Code size 371 (0x173)
+        // Method begins at RVA 0x2c908
+	// Code size 412 (0x19c)
 	.maxstack 4
 	.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)
+		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 [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0001:  newobj instance void class NAnt.Core.BuildListenerCollection::'.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_0014:  nop 
-	IL_0015:  ldloc.0 
-	IL_0016:  stloc.2 
-	IL_0017:  br IL_0171
-
-	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_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_0052:  nop 
-	  IL_0053:  ldloc.s 4
-	  IL_0055:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_005a:  brfalse IL_006f
+	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_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_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_006f:  nop 
-	  IL_0070:  leave IL_0142
+	} // 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:  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_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_00a8:  nop 
-	  IL_00a9:  leave IL_0130
-
-	  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_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_00d6:  nop 
-	  IL_00d7:  leave IL_0130
-
-	  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_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_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
+	} // 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_0104:  nop 
-	    IL_0105:  leave IL_012f
+	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
 
-	  } // 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_00db:  ldarg.0 
+	IL_00dc:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
+	IL_00e1:  brfalse IL_00ef
 
-	  } // 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_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_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_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_014e:  leave IL_016a
+	  } // 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
 
-	} // 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_0178:  leave IL_0194
 
-	  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
+	} // 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_0171:  ldloc.2 
-	IL_0172:  ret 
-    } // end of method PathScanner::Scan
+	  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 2370
     .method private static hidebysig 
-           default class [System]System.Collections.Specialized.StringCollection Clone (class [System]System.Collections.Specialized.StringCollection stringCollection)  cil managed 
+           default void ShowHelp (class NAnt.Core.Util.CommandLineParser parser)  cil managed 
     {
-        // Method begins at RVA 0x2cb70
-	// 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)
+        // Method begins at RVA 0x2cae4
+	// Code size 68 (0x44)
+	.maxstack 1
 	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 PathScanner::Clone
+	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 2371
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    .method private static hidebysig 
+           default void WriteException (class [mscorlib]System.Exception cause)  cil managed 
     {
-        // Method begins at RVA 0x2cba7
-	// 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
+        // Method begins at RVA 0x2cb34
+	// 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
 
-  } // end of class NAnt.Core.PathScanner
+	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
 }
 
   .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,114 +4,47 @@
         <name>NAnt.Core</name>
     </assembly>
     <members>
-        <member name="T:NAnt.Core.Tasks.NAntTask">
+        <member name="T:NAnt.Core.Tasks.UpToDateTask">
              <summary>
-             Runs NAnt on a supplied build file, or a set of build files.
+             Check modification dates on groups of files.
              </summary>
              <remarks>
-               <para>
-               By default, all the properties of the current project will be available
-               in the new project. Alternatively, you can set <see cref="P:NAnt.Core.Tasks.NAntTask.InheritAll" />
-               to <see langword="false" /> to not copy any properties to the new 
-               project.
-               </para>
-               <para>
-               You can also set properties in the new project from the old project by 
-               using nested property tags. These properties are always passed to the 
-               new project regardless of the setting of <see cref="P:NAnt.Core.Tasks.NAntTask.InheritAll" />.
-               This allows you to parameterize your subprojects.
-               </para>
-               <para>
-               References to data types can also be passed to the new project, but by
-               default they are not. If you set the <see cref="P:NAnt.Core.Tasks.NAntTask.InheritRefs" /> to 
-               <see langword="true" />, all references will be copied.
-               </para>
+             If all <see cref="P:NAnt.Core.Tasks.UpToDateTask.TargetFiles" /> are same or newer than all <see cref="P:NAnt.Core.Tasks.UpToDateTask.SourceFiles" />, the specified property is set to <see langword="true" />, otherwise it
+             is set to <see langword="false" />.
              </remarks>
              <example>
                <para>
-               Build a project located in a different directory if the <c>debug</c> 
-               property is not <see langword="true" />.
-               </para>
-               <code>
-                 <![CDATA[
-             <nant buildfile="${src.dir}/Extras/BuildServer/BuildServer.build" unless="${debug}" />
-                 ]]>
-               </code>
-             </example>
-             <example>
-               <para>
-               Build a project while adding a set of properties to that project.
-               </para>
-               <code>
-                 <![CDATA[
-             <nant buildfile="${src.dir}/Extras/BuildServer/BuildServer.build">
-                 <properties>
-                     <property name="build.dir" value="c:/buildserver" />
-                     <property name="build.debug" value="false" />
-                     <property name="lib.dir" value="c:/shared/lib" readonly="true" />
-                 </properties>
-             </nant>
-                 ]]>
-               </code>
-             </example>
-             <example>
-               <para>
-               Build all projects named <c>default.build</c> located anywhere under 
-               the project base directory.
+               Check file dates. If <c>myfile.dll</c> is same or newer than <c>myfile.cs</c>, then set <c>myfile.dll.uptodate</c> property 
+               to either <see langword="true" /> or <see langword="false" />.
                </para>
                <code>
                  <![CDATA[
-             <nant>
-                 <buildfiles>
-                     <include name="**/default.build" />
-                     <!-- avoid recursive execution of current build file -->
-                     <exclude name="${project::get-buildfile-path()}" />
-                 </buildfiles>
-             </nant>
+             <uptodate property="myfile.dll.uptodate">
+                 <sourcefiles>
+                     <include name="myfile.cs" />
+                 </sourcefiles>
+                 <targetfiles>
+                     <include name="myfile.dll" />
+                 </targetfiles>
+             </uptodate>
                  ]]>
                </code>
              </example>
             </member>
-        <member name="P:NAnt.Core.Tasks.NAntTask.BuildFile">
-             <summary>
-             The build file to build.
-             </summary>
-            </member>
-        <member name="P:NAnt.Core.Tasks.NAntTask.DefaultTarget">
-             <summary>
-             The target to execute. To specify more than one target seperate 
-             targets with a space. Targets are executed in order if possible. 
-             The default is to use target specified in the project's default 
-             attribute.
-             </summary>
-            </member>
-        <member name="P:NAnt.Core.Tasks.NAntTask.BuildFiles">
-             <summary>
-             Used to specify a set of build files to process.
-             </summary>
-            </member>
-        <member name="P:NAnt.Core.Tasks.NAntTask.InheritAll">
-             <summary>
-             Specifies whether current property values should be inherited by 
-             the executed project. The default is <see langword="true" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.Core.Tasks.NAntTask.InheritRefs">
+        <member name="P:NAnt.Core.Tasks.UpToDateTask.PropertyName">
              <summary>
-             Specifies whether all references will be copied to the new project. 
-             The default is <see langword="false" />.
+             Property that will be set to <see langword="true" /> or <see langword="false" /> depending on the 
+             result of the date check.
              </summary>
             </member>
-        <member name="P:NAnt.Core.Tasks.NAntTask.OverrideProperties">
+        <member name="P:NAnt.Core.Tasks.UpToDateTask.SourceFiles">
              <summary>
-             Specifies a collection of properties that should be created in the
-             executed project.  Note, existing properties with identical names 
-             that are not read-only will be overwritten.
+             The <see cref="T:NAnt.Core.Types.FileSet" /> that contains list of source files. 
              </summary>
             </member>
-        <member name="M:NAnt.Core.Tasks.NAntTask.Initialize">
+        <member name="P:NAnt.Core.Tasks.UpToDateTask.TargetFiles">
              <summary>
-             Validates the <see cref="T:NAnt.Core.Tasks.NAntTask" /> element.
+             The <see cref="T:NAnt.Core.Types.FileSet" /> that contains list of target files. 
              </summary>
             </member>
         <member name="T:NAnt.Core.Tasks.GetTask">
@@ -231,136 +164,424 @@
              Sets the timestamp of a given file to a specified time.
              </summary>
             </member>
-        <member name="T:NAnt.Core.Tasks.EchoTask">
+        <member name="T:NAnt.Core.Tasks.ChooseTask">
              <summary>
-             Writes a message to the build log or a specified file.
+               <para>
+               Executes an alternate set of task or type definition depending on
+               conditions that are individually set on each group.
+               </para>
              </summary>
              <remarks>
                <para>
-               The message can be specified using the <see cref="P:NAnt.Core.Tasks.EchoTask.Message" /> attribute
-               or as inline content. If neither is included - or the message contains
-               only whitespace - then an empty message will be emitted in the output.
+               The <see cref="T:NAnt.Core.Tasks.ChooseTask" /> selects one among a number of possible
+               alternatives. It consists of a sequence of <c>&lt;when&gt;</c> elements
+               followed by an optional <c>&lt;otherwise&gt;</c> element.
                </para>
                <para>
-               Macros in the message will be expanded.
+               Each <c>&lt;when&gt;</c> element has a single attribute, test, which 
+               specifies an expression. The content of the <c>&lt;when&gt;</c> and 
+               <c>&lt;otherwise&gt;</c> elements is a set of nested tasks.
                </para>
                <para>
-               When writing to a file, the <see cref="P:NAnt.Core.Tasks.EchoTask.MessageLevel" /> attribute is
-               ignored.
+               The content of the first, and only the first, <c>&lt;when&gt;</c>
+               element whose test is <see langword="true" /> is executed. If no 
+               <c>&lt;when&gt;</c> element is <see langword="true" />, the 
+               content of the <c>&lt;otherwise&gt;</c> element is executed.
+               If no <c>&lt;when&gt;</c> element is <see langword="true" />, and no
+               <c>&lt;otherwise&gt;</c> element is present, nothing is done.
                </para>
-               <note>
-               Since NAnt 0.86, a newline will no longer be implictly added when
-               writing a message to a file.
-               </note>
              </remarks>
              <example>
                <para>
-               Writes a message with level <see cref="F:NAnt.Core.Level.Debug" /> to the build log.
+               Execute alternate set of tasks depending on the configuration being
+               built.
                </para>
                <code>
                  <![CDATA[
-             <echo message="Hello, World!" level="Debug" />
+             <choose>
+                 <when test="${build.config == 'Debug'}">
+                     <!-- compile app in debug configuration -->
+                     ...
+                 </when>
+                 <when test="${build.config == 'Release'}">
+                     <!-- compile app in release configuration -->
+                     ...
+                 </when>
+                 <otherwise>
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)
@@ -1,12 +1,12 @@
-.assembly extern NAnt.Core
-{
-  .ver 0:93:1:0
-}
 .assembly extern mscorlib
 {
   .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
@@ -72,3817 +72,4813 @@
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit DelaySignTask
+  .class public auto ansi beforefieldinit AssemblyLinkerTask
   	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.TaskNameAttribute::'.ctor'(string) =  (01 00 02 61 6C 00 00 ) // ...al..
 
-    .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.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 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 _responseFileName
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _target
+    .field  private  string _algorithmID
+    .field  private  string _company
+    .field  private  string _configuration
+    .field  private  string _copyright
+    .field  private  string _culture
+    .field  private  valuetype NAnt.DotNet.Types.DelaySign _delaySign
+    .field  private  string _description
+    .field  private  class [mscorlib]System.IO.FileInfo _evidenceFile
+    .field  private  string _fileVersion
+    .field  private  string _flags
     .field  private  string _keyContainer
-    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
+    .field  private  class [mscorlib]System.IO.FileInfo _keyfile
+    .field  private  string _mainMethod
+    .field  private  class NAnt.DotNet.Types.ModuleSet _modules
+    .field  private  string _product
+    .field  private  string _productVersion
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _resources
+    .field  private  class NAnt.DotNet.Types.EmbeddedResourceCollection _embeddedResources
+    .field  private  class [mscorlib]System.IO.FileInfo _templateFile
+    .field  private  string _title
+    .field  private  string _trademark
+    .field  private  string _version
+    .field  private  class [mscorlib]System.IO.FileInfo _win32Icon
+    .field  private  class [mscorlib]System.IO.FileInfo _win32Res
+    .field  private  bool _supportsTemplate
 
     // method line 1
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
         // Method begins at RVA 0x2050
-	// Code size 18 (0x12)
+	// Code size 47 (0x2f)
 	.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_0001:  newobj instance void class NAnt.DotNet.Types.ModuleSet::'.ctor'()
+	IL_0006:  stfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_modules
 	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_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.AssemblyLinkerTask::_resources
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::'.ctor'()
+	IL_001c:  stfld class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::_embeddedResources
+	IL_0021:  ldarg.0 
+	IL_0022:  ldc.i4.1 
+	IL_0023:  stfld bool NAnt.DotNet.Tasks.AssemblyLinkerTask::_supportsTemplate
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_002e:  ret 
+    } // end of method AssemblyLinkerTask::.ctor
 
     // method line 2
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Targets ()  cil managed 
+           instance default string get_AlgorithmID ()  cil managed 
     {
-        // Method begins at RVA 0x2064
+        // Method begins at RVA 0x2080
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		string	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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_algorithmID
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DelaySignTask::get_Targets
+    } // end of method AssemblyLinkerTask::get_AlgorithmID
 
     // method line 3
     .method public hidebysig specialname 
-           instance default void set_Targets (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_AlgorithmID (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x207f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x209b
+	// Code size 14 (0xe)
 	.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_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_algorithmID
+	IL_000d:  ret 
+    } // end of method AssemblyLinkerTask::set_AlgorithmID
 
     // method line 4
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+           instance default string get_Company ()  cil managed 
     {
-        // Method begins at RVA 0x208c
+        // Method begins at RVA 0x20ac
 	// 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.DelaySignTask::_keyFile
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_company
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DelaySignTask::get_KeyFile
+    } // end of method AssemblyLinkerTask::get_Company
 
     // method line 5
     .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Company (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20a7
+        // Method begins at RVA 0x20c7
 	// 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_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_company
 	IL_0008:  ret 
-    } // end of method DelaySignTask::set_KeyFile
+    } // end of method AssemblyLinkerTask::set_Company
 
     // method line 6
     .method public hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
+           instance default string get_Configuration ()  cil managed 
     {
-        // Method begins at RVA 0x20b4
+        // Method begins at RVA 0x20d4
 	// 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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_configuration
 	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 AssemblyLinkerTask::get_Configuration
 
     // method line 7
     .method public hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
+           instance default void set_Configuration (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20cf
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x20ef
+	// 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.DelaySignTask::_keyContainer
-	IL_000d:  ret 
-    } // end of method DelaySignTask::set_KeyContainer
+	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_configuration
+	IL_0008:  ret 
+    } // end of method AssemblyLinkerTask::set_Configuration
 
     // method line 8
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    .method public hidebysig specialname 
+           instance default string get_Copyright ()  cil managed 
     {
-        // Method begins at RVA 0x20e0
-	// Code size 40 (0x28)
+        // Method begins at RVA 0x20fc
+	// Code size 15 (0xf)
 	.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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_copyright
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method DelaySignTask::get_ProgramArguments
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyLinkerTask::get_Copyright
 
     // method line 9
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    .method public hidebysig specialname 
+           instance default void set_Copyright (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2114
-	// 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)
+        // Method begins at RVA 0x2117
+	// Code size 9 (0x9)
+	.maxstack 8
 	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 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  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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_copyright
+	IL_0008:  ret 
+    } // end of method AssemblyLinkerTask::set_Copyright
 
     // method line 10
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x463d
-	// 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.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
-
-    // method line 11
     .method public hidebysig specialname 
-           instance default string get_BaseAddress ()  cil managed 
+           instance default string get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0x4654
+        // Method begins at RVA 0x2124
 	// 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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_culture
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_BaseAddress
+    } // end of method AssemblyLinkerTask::get_Culture
 
-    // method line 12
+    // method line 11
     .method public hidebysig specialname 
-           instance default void set_BaseAddress (string 'value')  cil managed 
+           instance default void set_Culture (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x466f
+        // Method begins at RVA 0x213f
 	// 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::_baseAddress
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_culture
 	IL_000d:  ret 
-    } // end of method CscTask::set_BaseAddress
+    } // end of method AssemblyLinkerTask::set_Culture
 
-    // method line 13
+    // method line 12
     .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
+           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x4680
+        // Method begins at RVA 0x2150
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
+		valuetype NAnt.DotNet.Types.DelaySign	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
+	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.AssemblyLinkerTask::_delaySign
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_DebugOutput
+    } // end of method AssemblyLinkerTask::get_DelaySign
 
-    // method line 14
+    // method line 13
     .method public hidebysig specialname 
-           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
+           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
     {
-        // Method begins at RVA 0x469b
+        // Method begins at RVA 0x216b
 	// 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.CscTask::_debugOutput
+	IL_0003:  stfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.AssemblyLinkerTask::_delaySign
 	IL_0008:  ret 
-    } // end of method CscTask::set_DebugOutput
+    } // end of method AssemblyLinkerTask::set_DelaySign
 
-    // method line 15
-    .method public virtual hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+    // method line 14
+    .method public hidebysig specialname 
+           instance default string get_Description ()  cil managed 
     {
-        // Method begins at RVA 0x46a8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x2178
+	// 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 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_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_description
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method CscTask::get_Debug
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyLinkerTask::get_Description
 
-    // method line 16
-    .method public virtual hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+    // method line 15
+    .method public hidebysig specialname 
+           instance default void set_Description (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x46c9
+        // Method begins at RVA 0x2193
 	// 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_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_description
 	IL_0008:  ret 
-    } // end of method CscTask::set_Debug
+    } // end of method AssemblyLinkerTask::set_Description
 
-    // method line 17
+    // method line 16
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_EvidenceFile ()  cil managed 
     {
-        // Method begins at RVA 0x46d4
+        // Method begins at RVA 0x21a0
 	// 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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_evidenceFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_DocFile
+    } // end of method AssemblyLinkerTask::get_EvidenceFile
 
-    // method line 18
+    // method line 17
     .method public hidebysig specialname 
-           instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_EvidenceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x46ef
+        // Method begins at RVA 0x21bb
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_evidenceFile
 	IL_0008:  ret 
-    } // end of method CscTask::set_DocFile
+    } // end of method AssemblyLinkerTask::set_EvidenceFile
 
-    // method line 19
+    // method line 18
     .method public hidebysig specialname 
-           instance default int32 get_FileAlign ()  cil managed 
+           instance default string get_FileVersion ()  cil managed 
     {
-        // Method begins at RVA 0x46fc
+        // Method begins at RVA 0x21c8
 	// 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.CscTask::_fileAlign
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_fileVersion
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_FileAlign
+    } // end of method AssemblyLinkerTask::get_FileVersion
 
-    // method line 20
+    // method line 19
     .method public hidebysig specialname 
-           instance default void set_FileAlign (int32 'value')  cil managed 
+           instance default void set_FileVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4717
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x21e3
+	// Code size 14 (0xe)
 	.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
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_fileVersion
+	IL_000d:  ret 
+    } // end of method AssemblyLinkerTask::set_FileVersion
 
-    // method line 21
+    // method line 20
     .method public hidebysig specialname 
-           instance default bool get_NoStdLib ()  cil managed 
+           instance default string get_Flags ()  cil managed 
     {
-        // Method begins at RVA 0x4724
+        // Method begins at RVA 0x21f4
 	// 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.CscTask::_nostdlib
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_flags
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_NoStdLib
+    } // end of method AssemblyLinkerTask::get_Flags
 
-    // method line 22
+    // method line 21
     .method public hidebysig specialname 
-           instance default void set_NoStdLib (bool 'value')  cil managed 
+           instance default void set_Flags (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x473f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x220f
+	// Code size 14 (0xe)
 	.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_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_flags
+	IL_000d:  ret 
+    } // end of method AssemblyLinkerTask::set_Flags
 
-    // method line 23
+    // method line 22
     .method public hidebysig specialname 
-           instance default bool get_NoConfig ()  cil managed 
+           instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x474c
+        // Method begins at RVA 0x2220
 	// 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.CscTask::_noconfig
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_keyContainer
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_NoConfig
+    } // end of method AssemblyLinkerTask::get_KeyContainer
 
-    // method line 24
+    // method line 23
     .method public hidebysig specialname 
-           instance default void set_NoConfig (bool 'value')  cil managed 
+           instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4767
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x223b
+	// Code size 14 (0xe)
 	.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_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_keyContainer
+	IL_000d:  ret 
+    } // end of method AssemblyLinkerTask::set_KeyContainer
 
-    // method line 25
+    // method line 24
     .method public hidebysig specialname 
-           instance default bool get_Checked ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x4774
+        // Method begins at RVA 0x224c
 	// 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.CscTask::_checked
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_keyfile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_Checked
+    } // end of method AssemblyLinkerTask::get_KeyFile
 
-    // method line 26
+    // method line 25
     .method public hidebysig specialname 
-           instance default void set_Checked (bool 'value')  cil managed 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x478f
+        // Method begins at RVA 0x2267
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_keyfile
 	IL_0008:  ret 
-    } // end of method CscTask::set_Checked
+    } // end of method AssemblyLinkerTask::set_KeyFile
 
-    // method line 27
+    // method line 26
     .method public hidebysig specialname 
-           instance default bool get_Unsafe ()  cil managed 
+           instance default string get_MainMethod ()  cil managed 
     {
-        // Method begins at RVA 0x479c
+        // Method begins at RVA 0x2274
 	// 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.CscTask::_unsafe
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_mainMethod
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_Unsafe
+    } // end of method AssemblyLinkerTask::get_MainMethod
 
-    // method line 28
+    // method line 27
     .method public hidebysig specialname 
-           instance default void set_Unsafe (bool 'value')  cil managed 
+           instance default void set_MainMethod (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x47b7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x228f
+	// Code size 14 (0xe)
 	.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
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_mainMethod
+	IL_000d:  ret 
+    } // end of method AssemblyLinkerTask::set_MainMethod
 
-    // method line 29
+    // method line 28
     .method public hidebysig specialname 
-           instance default string get_LangVersion ()  cil managed 
+           instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
     {
-        // Method begins at RVA 0x47c4
+        // Method begins at RVA 0x22a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.ModuleSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_langVersion
+	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_modules
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_LangVersion
+    } // end of method AssemblyLinkerTask::get_ModuleSet
 
-    // method line 30
+    // method line 29
     .method public hidebysig specialname 
-           instance default void set_LangVersion (string 'value')  cil managed 
+           instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x47df
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x22bb
+	// 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.CscTask::_langVersion
-	IL_000d:  ret 
-    } // end of method CscTask::set_LangVersion
+	IL_0003:  stfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_modules
+	IL_0008:  ret 
+    } // end of method AssemblyLinkerTask::set_ModuleSet
 
-    // method line 31
+    // method line 30
     .method public hidebysig specialname 
-           instance default bool get_Optimize ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x47f0
+        // Method begins at RVA 0x22c8
 	// 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.CscTask::_optimize
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_outputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_Optimize
+    } // end of method AssemblyLinkerTask::get_OutputFile
 
-    // method line 32
+    // method line 31
     .method public hidebysig specialname 
-           instance default void set_Optimize (bool 'value')  cil managed 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x480b
+        // Method begins at RVA 0x22e3
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_outputFile
 	IL_0008:  ret 
-    } // end of method CscTask::set_Optimize
+    } // end of method AssemblyLinkerTask::set_OutputFile
 
-    // method line 33
+    // method line 32
     .method public hidebysig specialname 
-           instance default string get_Platform ()  cil managed 
+           instance default string get_OutputTarget ()  cil managed 
     {
-        // Method begins at RVA 0x4818
+        // Method begins at RVA 0x22f0
 	// 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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_target
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_Platform
+    } // end of method AssemblyLinkerTask::get_OutputTarget
 
-    // method line 34
+    // method line 33
     .method public hidebysig specialname 
-           instance default void set_Platform (string 'value')  cil managed 
+           instance default void set_OutputTarget (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4833
+        // Method begins at RVA 0x230b
 	// 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_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_target
 	IL_000d:  ret 
-    } // end of method CscTask::set_Platform
+    } // end of method AssemblyLinkerTask::set_OutputTarget
 
-    // method line 35
+    // method line 34
     .method public hidebysig specialname 
-           instance default string get_WarningLevel ()  cil managed 
+           instance default string get_Product ()  cil managed 
     {
-        // Method begins at RVA 0x4844
+        // Method begins at RVA 0x231c
 	// 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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_product
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_WarningLevel
+    } // end of method AssemblyLinkerTask::get_Product
 
-    // method line 36
+    // method line 35
     .method public hidebysig specialname 
-           instance default void set_WarningLevel (string 'value')  cil managed 
+           instance default void set_Product (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x485f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2337
+	// 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.CscTask::_warningLevel
-	IL_000d:  ret 
-    } // end of method CscTask::set_WarningLevel
+	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_product
+	IL_0008:  ret 
+    } // end of method AssemblyLinkerTask::set_Product
 
-    // method line 37
+    // method line 36
     .method public hidebysig specialname 
-           instance default string get_Codepage ()  cil managed 
+           instance default string get_ProductVersion ()  cil managed 
     {
-        // Method begins at RVA 0x4870
+        // Method begins at RVA 0x2344
 	// 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::_codepage
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_productVersion
 	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 AssemblyLinkerTask::get_ProductVersion
 
-    // method line 38
+    // method line 37
     .method public hidebysig specialname 
-           instance default void set_Codepage (string 'value')  cil managed 
+           instance default void set_ProductVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x488b
+        // Method begins at RVA 0x235f
 	// 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_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_productVersion
 	IL_000d:  ret 
-    } // end of method CscTask::set_Codepage
+    } // end of method AssemblyLinkerTask::set_ProductVersion
 
-    // method line 39
+    // method line 38
     .method public hidebysig specialname 
-           instance default bool get_SupportsDocGeneration ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Resources ()  cil managed 
     {
-        // Method begins at RVA 0x489c
+        // Method begins at RVA 0x2370
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_resources
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_SupportsDocGeneration
+    } // end of method AssemblyLinkerTask::get_Resources
 
-    // method line 40
+    // method line 39
     .method public hidebysig specialname 
-           instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
+           instance default void set_Resources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x48b7
+        // Method begins at RVA 0x238b
 	// 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_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_resources
 	IL_0008:  ret 
-    } // end of method CscTask::set_SupportsDocGeneration
+    } // end of method AssemblyLinkerTask::set_Resources
 
-    // method line 41
+    // method line 40
     .method public hidebysig specialname 
-           instance default bool get_SupportsPlatform ()  cil managed 
+           instance default class NAnt.DotNet.Types.EmbeddedResourceCollection get_EmbeddedResources ()  cil managed 
     {
-        // Method begins at RVA 0x48c4
+        // Method begins at RVA 0x2398
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.EmbeddedResourceCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsPlatform
+	IL_0002:  ldfld class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::_embeddedResources
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_SupportsPlatform
+    } // end of method AssemblyLinkerTask::get_EmbeddedResources
 
-    // method line 42
+    // method line 41
     .method public hidebysig specialname 
-           instance default void set_SupportsPlatform (bool 'value')  cil managed 
+           instance default void set_EmbeddedResources (class NAnt.DotNet.Types.EmbeddedResourceCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x48df
+        // Method begins at RVA 0x23b3
 	// 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_0003:  stfld class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::_embeddedResources
 	IL_0008:  ret 
-    } // end of method CscTask::set_SupportsPlatform
+    } // end of method AssemblyLinkerTask::set_EmbeddedResources
 
-    // method line 43
+    // method line 42
     .method public hidebysig specialname 
-           instance default bool get_SupportsLangVersion ()  cil managed 
+           instance default bool get_SupportsTemplate ()  cil managed 
     {
-        // Method begins at RVA 0x48ec
+        // Method begins at RVA 0x23c0
 	// 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_0002:  ldfld bool NAnt.DotNet.Tasks.AssemblyLinkerTask::_supportsTemplate
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_SupportsLangVersion
+    } // end of method AssemblyLinkerTask::get_SupportsTemplate
 
-    // method line 44
+    // method line 43
     .method public hidebysig specialname 
-           instance default void set_SupportsLangVersion (bool 'value')  cil managed 
+           instance default void set_SupportsTemplate (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4907
+        // Method begins at RVA 0x23db
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.AssemblyLinkerTask::_supportsTemplate
 	IL_0008:  ret 
-    } // end of method CscTask::set_SupportsLangVersion
+    } // end of method AssemblyLinkerTask::set_SupportsTemplate
 
-    // method line 45
-    .method family virtual hidebysig 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 44
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_TemplateFile ()  cil managed 
     {
-        // Method begins at RVA 0x4914
-	// Code size 812 (0x32c)
-	.maxstack 7
+        // Method begins at RVA 0x23e8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
-		int32	V_1)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_templateFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyLinkerTask::get_TemplateFile
 
-    // method line 46
-    .method family virtual hidebysig 
-           instance default bool NeedsCompiling ()  cil managed 
+    // method line 45
+    .method public hidebysig specialname 
+           instance default void set_TemplateFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4c4c
-	// Code size 118 (0x76)
-	.maxstack 7
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x2403
+	// Code size 9 (0x9)
+	.maxstack 8
 	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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_templateFile
+	IL_0008:  ret 
+    } // end of method AssemblyLinkerTask::set_TemplateFile
 
-    // method line 47
-    .method public virtual hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
+    // method line 46
+    .method public hidebysig specialname 
+           instance default string get_Title ()  cil managed 
     {
-        // Method begins at RVA 0x4cd0
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2410
+	// Code size 15 (0xf)
 	.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 48
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
-    {
-        // Method begins at RVA 0x4cec
-	// 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 49
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
-    {
-        // Method begins at RVA 0x4d08
-	// 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_000d:  ret 
-    } // end of method CscTask::get_NamespaceRegex
-
-    // method line 50
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x4d22
-	// 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..
-
-		.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 ()
-	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_NamespaceRegex () 
-	}
-  } // end of class NAnt.DotNet.Tasks.CscTask
-}
-
-.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..
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_title
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    .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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyLinkerTask::get_Title
 
-    // method line 51
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 47
+    .method public hidebysig specialname 
+           instance default void set_Title (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4d42
-	// Code size 40 (0x28)
+        // Method begins at RVA 0x242b
+	// Code size 9 (0x9)
 	.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
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_title
+	IL_0008:  ret 
+    } // end of method AssemblyLinkerTask::set_Title
 
-    // method line 52
+    // method line 48
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
+           instance default string get_Trademark ()  cil managed 
     {
-        // Method begins at RVA 0x4d6c
+        // Method begins at RVA 0x2438
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_trademark
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NDocTask::get_Assemblies
+    } // end of method AssemblyLinkerTask::get_Trademark
 
-    // method line 53
+    // method line 49
     .method public hidebysig specialname 
-           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+           instance default void set_Trademark (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4d87
+        // Method begins at RVA 0x2453
 	// 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_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_trademark
 	IL_0008:  ret 
-    } // end of method NDocTask::set_Assemblies
+    } // end of method AssemblyLinkerTask::set_Trademark
 
-    // method line 54
+    // method line 50
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Summaries ()  cil managed 
+           instance default string get_Version ()  cil managed 
     {
-        // Method begins at RVA 0x4d94
+        // Method begins at RVA 0x2460
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		string	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_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_version
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NDocTask::get_Summaries
+    } // end of method AssemblyLinkerTask::get_Version
 
-    // method line 55
+    // method line 51
     .method public hidebysig specialname 
-           instance default void set_Summaries (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Version (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4daf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x247b
+	// Code size 14 (0xe)
 	.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
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_version
+	IL_000d:  ret 
+    } // end of method AssemblyLinkerTask::set_Version
 
-    // method line 56
+    // method line 52
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Documenters ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Win32Icon ()  cil managed 
     {
-        // Method begins at RVA 0x4dbc
+        // Method begins at RVA 0x248c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.RawXml	V_0)
+		class [mscorlib]System.IO.FileInfo	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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_win32Icon
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NDocTask::get_Documenters
+    } // end of method AssemblyLinkerTask::get_Win32Icon
 
-    // method line 57
+    // method line 53
     .method public hidebysig specialname 
-           instance default void set_Documenters (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
+           instance default void set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4dd7
+        // Method begins at RVA 0x24a7
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_win32Icon
 	IL_0008:  ret 
-    } // end of method NDocTask::set_Documenters
+    } // end of method AssemblyLinkerTask::set_Win32Icon
 
-    // method line 58
+    // method line 54
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.DirSet get_ReferencePaths ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Win32Res ()  cil managed 
     {
-        // Method begins at RVA 0x4de4
+        // Method begins at RVA 0x24b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.DirSet	V_0)
+		class [mscorlib]System.IO.FileInfo	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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_win32Res
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NDocTask::get_ReferencePaths
+    } // end of method AssemblyLinkerTask::get_Win32Res
 
-    // method line 59
+    // method line 55
     .method public hidebysig specialname 
-           instance default void set_ReferencePaths (class [NAnt.Core]NAnt.Core.Types.DirSet 'value')  cil managed 
+           instance default void set_Win32Res (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4dff
+        // 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 [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_win32Res
 	IL_0008:  ret 
-    } // end of method NDocTask::set_ReferencePaths
+    } // end of method AssemblyLinkerTask::set_Win32Res
 
-    // method line 60
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 56
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x4e0c
-	// Code size 64 (0x40)
-	.maxstack 4
+        // Method begins at RVA 0x24dc
+	// Code size 50 (0x32)
+	.maxstack 3
+	.locals init (
+		string	V_0)
 	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
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	IL_0007:  brfalse IL_0028
 
-    // method line 61
+	IL_000c:  nop 
+	IL_000d:  ldstr "@\""
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	IL_0018:  ldstr "\""
+	IL_001d:  call string string::Concat(string, string, string)
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0030
+
+	IL_0028:  nop 
+	IL_0029:  ldnull 
+	IL_002a:  stloc.0 
+	IL_002b:  br IL_0030
+
+	IL_0030:  ldloc.0 
+	IL_0031:  ret 
+    } // end of method AssemblyLinkerTask::get_ProgramArguments
+
+    // method line 57
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x4e58
-    } // end of method NDocTask::ExecuteTask
-
-    // method line 62
-    .method private hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x550c
-	// Code size 58 (0x3a)
+        // Method begins at RVA 0x251c
+	// Code size 1471 (0x5bf)
 	.maxstack 8
+	.locals init (
+		class [mscorlib]System.IO.StreamWriter	V_0,
+		class NAnt.DotNet.Types.Module	V_1,
+		class NAnt.DotNet.Types.ModuleEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		valuetype NAnt.DotNet.Types.DelaySign	V_4,
+		string	V_5,
+		class [System]System.Collections.Specialized.StringEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class NAnt.DotNet.Types.EmbeddedResource	V_8,
+		class NAnt.DotNet.Types.EmbeddedResourceEnumerator	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		class [mscorlib]System.IO.StreamReader	V_11)
 	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_0002:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
-	IL_0025:  brfalse IL_0039
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
+	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 class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
+	IL_0034:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Types.ModuleSet::get_Dir()
+	IL_0039:  brtrue IL_005b
 
-	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>
+	IL_003e:  nop 
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_004b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0050:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0055:  callvirt instance void class NAnt.DotNet.Types.ModuleSet::set_Dir(class [mscorlib]System.IO.DirectoryInfo)
+	IL_005a:  nop 
+	IL_005b:  ldarg.0 
+	IL_005c:  callvirt instance bool class NAnt.DotNet.Tasks.AssemblyLinkerTask::NeedsCompiling()
+	IL_0061:  brfalse IL_05be
 
-    // method line 63
-    .method private hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x5547
-	// 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>
+	IL_0066:  nop 
+	IL_0067:  ldarg.0 
+	IL_0068:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	IL_006d:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	IL_0072:  ldarg.0 
+	IL_0073:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	IL_0078:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
+	IL_007d:  stloc.0 
+	.try { // 3
+	  IL_007e:  nop 
+	  IL_007f:  ldarg.0 
+	  IL_0080:  ldc.i4 3000
+	  IL_0085:  ldstr "String_CompilingFiles"
+	  IL_008a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_008f:  ldc.i4.2 
+	  IL_0090:  newarr [mscorlib]System.Object
+	  IL_0095:  dup 
+	  IL_0096:  ldc.i4.0 
+	  IL_0097:  ldarg.0 
+	  IL_0098:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
+	  IL_009d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_00a2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	  IL_00a7:  ldarg.0 
+	  IL_00a8:  call instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
+	  IL_00ad:  callvirt instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
+	  IL_00b2:  add 
+	  IL_00b3:  ldarg.0 
+	  IL_00b4:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
+	  IL_00b9:  callvirt instance class NAnt.DotNet.Types.ModuleCollection class NAnt.DotNet.Types.ModuleSet::get_Modules()
+	  IL_00be:  callvirt instance int32 class NAnt.DotNet.Types.ModuleCollection::get_Count()
+	  IL_00c3:  add 
+	  IL_00c4:  box [mscorlib]System.Int32
+	  IL_00c9:  stelem.ref 
+	  IL_00ca:  dup 
+	  IL_00cb:  ldc.i4.1 
+	  IL_00cc:  ldarg.0 
+	  IL_00cd:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	  IL_00d2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00d7:  stelem.ref 
+	  IL_00d8:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_00dd:  nop 
+	  IL_00de:  ldarg.0 
+	  IL_00df:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
+	  IL_00e4:  callvirt instance class NAnt.DotNet.Types.ModuleCollection class NAnt.DotNet.Types.ModuleSet::get_Modules()
+	  IL_00e9:  callvirt instance class NAnt.DotNet.Types.ModuleEnumerator class NAnt.DotNet.Types.ModuleCollection::GetEnumerator()
+	  IL_00ee:  stloc.2 
+	  .try { // 0
+	    IL_00ef:  br IL_010e
 
-    // method line 64
-    .method private hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x5570
-    } // end of method NDocTask::<NULL METHOD SIGNATURE>
+	    IL_00f4:  ldloc.2 
+	    IL_00f5:  callvirt instance class NAnt.DotNet.Types.Module class NAnt.DotNet.Types.ModuleEnumerator::get_Current()
+	    IL_00fa:  stloc.1 
+	    IL_00fb:  nop 
+	    IL_00fc:  ldloc.0 
+	    IL_00fd:  ldstr "\"{0}\""
+	    IL_0102:  ldloc.1 
+	    IL_0103:  callvirt instance string object::ToString()
+	    IL_0108:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	    IL_010d:  nop 
+	    IL_010e:  ldloc.2 
+	    IL_010f:  callvirt instance bool class NAnt.DotNet.Types.ModuleEnumerator::MoveNext()
+	    IL_0114:  brtrue IL_00f4
 
-    // method line 65
-    .method private hidebysig 
-           instance default void ExpandPropertiesInNodes (class [System.Xml]System.Xml.XmlNodeList nodes)  cil managed 
+	    IL_0119:  leave IL_0132
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_011e:  ldloc.2 
+	    IL_011f:  isinst [mscorlib]System.IDisposable
+	    IL_0124:  dup 
+	    IL_0125:  stloc.3 
+	    IL_0126:  brfalse IL_0131
+
+	    IL_012b:  ldloc.3 
+	    IL_012c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0131:  endfinally 
+	  } // end handler 0
+	  IL_0132:  ldloc.0 
+	  IL_0133:  ldstr "/target:\"{0}\""
+	  IL_0138:  ldarg.0 
+	  IL_0139:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputTarget()
+	  IL_013e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0143:  ldloc.0 
+	  IL_0144:  ldstr "/out:\"{0}\""
+	  IL_0149:  ldarg.0 
+	  IL_014a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	  IL_014f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0154:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0159:  ldarg.0 
+	  IL_015a:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_AlgorithmID()
+	  IL_015f:  brfalse IL_0177
+
+	  IL_0164:  nop 
+	  IL_0165:  ldloc.0 
+	  IL_0166:  ldstr "/algid:\"{0}\""
+	  IL_016b:  ldarg.0 
+	  IL_016c:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_AlgorithmID()
+	  IL_0171:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0176:  nop 
+	  IL_0177:  ldarg.0 
+	  IL_0178:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Company()
+	  IL_017d:  brfalse IL_0195
+
+	  IL_0182:  nop 
+	  IL_0183:  ldloc.0 
+	  IL_0184:  ldstr "/company:\"{0}\""
+	  IL_0189:  ldarg.0 
+	  IL_018a:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Company()
+	  IL_018f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0194:  nop 
+	  IL_0195:  ldarg.0 
+	  IL_0196:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Configuration()
+	  IL_019b:  brfalse IL_01b3
+
+	  IL_01a0:  nop 
+	  IL_01a1:  ldloc.0 
+	  IL_01a2:  ldstr "/configuration:\"{0}\""
+	  IL_01a7:  ldarg.0 
+	  IL_01a8:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Configuration()
+	  IL_01ad:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_01b2:  nop 
+	  IL_01b3:  ldarg.0 
+	  IL_01b4:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Copyright()
+	  IL_01b9:  brfalse IL_01d1
+
+	  IL_01be:  nop 
+	  IL_01bf:  ldloc.0 
+	  IL_01c0:  ldstr "/copyright:\"{0}\""
+	  IL_01c5:  ldarg.0 
+	  IL_01c6:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Copyright()
+	  IL_01cb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_01d0:  nop 
+	  IL_01d1:  ldarg.0 
+	  IL_01d2:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture()
+	  IL_01d7:  brfalse IL_01ef
+
+	  IL_01dc:  nop 
+	  IL_01dd:  ldloc.0 
+	  IL_01de:  ldstr "/culture:\"{0}\""
+	  IL_01e3:  ldarg.0 
+	  IL_01e4:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture()
+	  IL_01e9:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_01ee:  nop 
+	  IL_01ef:  ldarg.0 
+	  IL_01f0:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_DelaySign()
+	  IL_01f5:  stloc.s 4
+	  IL_01f7:  ldloc.s 4
+	  IL_01f9:  switch (
+	    IL_020f,
+	    IL_0224,
+	    IL_0214)
+	  IL_020a:  br IL_0234
+
+	  IL_020f:  leave IL_025a
+
+	  IL_0214:  ldloc.0 
+	  IL_0215:  ldstr "/delaysign+"
+	  IL_021a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_021f:  leave IL_025a
+
+	  IL_0224:  ldloc.0 
+	  IL_0225:  ldstr "/delaysign-"
+	  IL_022a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_022f:  leave IL_025a
+
+	  IL_0234:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0239:  ldstr "Value {0} is not supported for \"delaysign\"."
+	  IL_023e:  ldarg.0 
+	  IL_023f:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_DelaySign()
+	  IL_0244:  box NAnt.DotNet.Types.DelaySign
+	  IL_0249:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_024e:  ldarg.0 
+	  IL_024f:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	  IL_0254:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_0259:  throw 
+	  IL_025a:  ldarg.0 
+	  IL_025b:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Description()
+	  IL_0260:  brfalse IL_0278
+
+	  IL_0265:  nop 
+	  IL_0266:  ldloc.0 
+	  IL_0267:  ldstr "/description:\"{0}\""
+	  IL_026c:  ldarg.0 
+	  IL_026d:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Description()
+	  IL_0272:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0277:  nop 
+	  IL_0278:  ldarg.0 
+	  IL_0279:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
+	  IL_027e:  brfalse IL_029b
+
+	  IL_0283:  nop 
+	  IL_0284:  ldloc.0 
+	  IL_0285:  ldstr "/evidence:\"{0}\""
+	  IL_028a:  ldarg.0 
+	  IL_028b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
+	  IL_0290:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0295:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_029a:  nop 
+	  IL_029b:  ldarg.0 
+	  IL_029c:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_FileVersion()
+	  IL_02a1:  brfalse IL_02b9
+
+	  IL_02a6:  nop 
+	  IL_02a7:  ldloc.0 
+	  IL_02a8:  ldstr "/fileversion:\"{0}\""
+	  IL_02ad:  ldarg.0 
+	  IL_02ae:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_FileVersion()
+	  IL_02b3:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_02b8:  nop 
+	  IL_02b9:  ldarg.0 
+	  IL_02ba:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Flags()
+	  IL_02bf:  brfalse IL_02d7
+
+	  IL_02c4:  nop 
+	  IL_02c5:  ldloc.0 
+	  IL_02c6:  ldstr "/flags:\"{0}\""
+	  IL_02cb:  ldarg.0 
+	  IL_02cc:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Flags()
+	  IL_02d1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_02d6:  nop 
+	  IL_02d7:  ldarg.0 
+	  IL_02d8:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_MainMethod()
+	  IL_02dd:  brfalse IL_02f5
+
+	  IL_02e2:  nop 
+	  IL_02e3:  ldloc.0 
+	  IL_02e4:  ldstr "/main:\"{0}\""
+	  IL_02e9:  ldarg.0 
+	  IL_02ea:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_MainMethod()
+	  IL_02ef:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_02f4:  nop 
+	  IL_02f5:  ldarg.0 
+	  IL_02f6:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyContainer()
+	  IL_02fb:  brfalse IL_0313
+
+	  IL_0300:  nop 
+	  IL_0301:  ldloc.0 
+	  IL_0302:  ldstr "/keyname:\"{0}\""
+	  IL_0307:  ldarg.0 
+	  IL_0308:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyContainer()
+	  IL_030d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0312:  nop 
+	  IL_0313:  ldarg.0 
+	  IL_0314:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Product()
+	  IL_0319:  brfalse IL_0331
+
+	  IL_031e:  nop 
+	  IL_031f:  ldloc.0 
+	  IL_0320:  ldstr "/product:\"{0}\""
+	  IL_0325:  ldarg.0 
+	  IL_0326:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Product()
+	  IL_032b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0330:  nop 
+	  IL_0331:  ldarg.0 
+	  IL_0332:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProductVersion()
+	  IL_0337:  brfalse IL_034f
+
+	  IL_033c:  nop 
+	  IL_033d:  ldloc.0 
+	  IL_033e:  ldstr "/productversion:\"{0}\""
+	  IL_0343:  ldarg.0 
+	  IL_0344:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProductVersion()
+	  IL_0349:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_034e:  nop 
+	  IL_034f:  ldarg.0 
+	  IL_0350:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
+	  IL_0355:  brfalse IL_03b4
+
+	  IL_035a:  nop 
+	  IL_035b:  ldarg.0 
+	  IL_035c:  call instance bool class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_SupportsTemplate()
+	  IL_0361:  brfalse IL_0383
+
+	  IL_0366:  nop 
+	  IL_0367:  ldloc.0 
+	  IL_0368:  ldstr "/template:\"{0}\""
+	  IL_036d:  ldarg.0 
+	  IL_036e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
+	  IL_0373:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0378:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_037d:  nop 
+	  IL_037e:  br IL_03b3
+
+	  IL_0383:  nop 
+	  IL_0384:  ldarg.0 
+	  IL_0385:  ldc.i4 4000
+	  IL_038a:  ldstr "String_LinkerDoesNotSupportTemplateAssembly"
+	  IL_038f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0394:  ldc.i4.1 
+	  IL_0395:  newarr [mscorlib]System.Object
+	  IL_039a:  dup 
+	  IL_039b:  ldc.i4.0 
+	  IL_039c:  ldarg.0 
+	  IL_039d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_03a2:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	  IL_03a7:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	  IL_03ac:  stelem.ref 
+	  IL_03ad:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_03b2:  nop 
+	  IL_03b3:  nop 
+	  IL_03b4:  ldarg.0 
+	  IL_03b5:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Title()
+	  IL_03ba:  brfalse IL_03d2
+
+	  IL_03bf:  nop 
+	  IL_03c0:  ldloc.0 
+	  IL_03c1:  ldstr "/title:\"{0}\""
+	  IL_03c6:  ldarg.0 
+	  IL_03c7:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Title()
+	  IL_03cc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_03d1:  nop 
+	  IL_03d2:  ldarg.0 
+	  IL_03d3:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Trademark()
+	  IL_03d8:  brfalse IL_03f0
+
+	  IL_03dd:  nop 
+	  IL_03de:  ldloc.0 
+	  IL_03df:  ldstr "/trademark:\"{0}\""
+	  IL_03e4:  ldarg.0 
+	  IL_03e5:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Trademark()
+	  IL_03ea:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_03ef:  nop 
+	  IL_03f0:  ldarg.0 
+	  IL_03f1:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
+	  IL_03f6:  brfalse IL_0413
+
+	  IL_03fb:  nop 
+	  IL_03fc:  ldloc.0 
+	  IL_03fd:  ldstr "/keyfile:\"{0}\""
+	  IL_0402:  ldarg.0 
+	  IL_0403:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
+	  IL_0408:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_040d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0412:  nop 
+	  IL_0413:  ldarg.0 
+	  IL_0414:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Version()
+	  IL_0419:  brfalse IL_0431
+
+	  IL_041e:  nop 
+	  IL_041f:  ldloc.0 
+	  IL_0420:  ldstr "/version:\"{0}\""
+	  IL_0425:  ldarg.0 
+	  IL_0426:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Version()
+	  IL_042b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0430:  nop 
+	  IL_0431:  ldarg.0 
+	  IL_0432:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
+	  IL_0437:  brfalse IL_0454
+
+	  IL_043c:  nop 
+	  IL_043d:  ldloc.0 
+	  IL_043e:  ldstr "/win32icon:\"{0}\""
+	  IL_0443:  ldarg.0 
+	  IL_0444:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
+	  IL_0449:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_044e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0453:  nop 
+	  IL_0454:  ldarg.0 
+	  IL_0455:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
+	  IL_045a:  brfalse IL_0477
+
+	  IL_045f:  nop 
+	  IL_0460:  ldloc.0 
+	  IL_0461:  ldstr "/win32res:\"{0}\""
+	  IL_0466:  ldarg.0 
+	  IL_0467:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
+	  IL_046c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0471:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0476:  nop 
+	  IL_0477:  nop 
+	  IL_0478:  ldarg.0 
+	  IL_0479:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
+	  IL_047e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_0483:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0488:  stloc.s 6
+	  .try { // 1
+	    IL_048a:  br IL_04a7
+
+	    IL_048f:  ldloc.s 6
+	    IL_0491:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0496:  stloc.s 5
+	    IL_0498:  nop 
+	    IL_0499:  ldloc.0 
+	    IL_049a:  ldstr "/embed:\"{0}\""
+	    IL_049f:  ldloc.s 5
+	    IL_04a1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	    IL_04a6:  nop 
+	    IL_04a7:  ldloc.s 6
+	    IL_04a9:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_04ae:  brtrue IL_048f
+
+	    IL_04b3:  leave IL_04cf
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_04b8:  ldloc.s 6
+	    IL_04ba:  isinst [mscorlib]System.IDisposable
+	    IL_04bf:  dup 
+	    IL_04c0:  stloc.s 7
+	    IL_04c2:  brfalse IL_04ce
+
+	    IL_04c7:  ldloc.s 7
+	    IL_04c9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_04ce:  endfinally 
+	  } // end handler 1
+	  IL_04cf:  nop 
+	  IL_04d0:  ldarg.0 
+	  IL_04d1:  call instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
+	  IL_04d6:  callvirt instance class NAnt.DotNet.Types.EmbeddedResourceEnumerator class NAnt.DotNet.Types.EmbeddedResourceCollection::GetEnumerator()
+	  IL_04db:  stloc.s 9
+	  .try { // 2
+	    IL_04dd:  br IL_0506
+
+	    IL_04e2:  ldloc.s 9
+	    IL_04e4:  callvirt instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceEnumerator::get_Current()
+	    IL_04e9:  stloc.s 8
+	    IL_04eb:  nop 
+	    IL_04ec:  ldloc.0 
+	    IL_04ed:  ldstr "/embed:\"{0}\",{1}"
+	    IL_04f2:  ldloc.s 8
+	    IL_04f4:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_File()
+	    IL_04f9:  ldloc.s 8
+	    IL_04fb:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_ManifestResourceName()
+	    IL_0500:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
+	    IL_0505:  nop 
+	    IL_0506:  ldloc.s 9
+	    IL_0508:  callvirt instance bool class NAnt.DotNet.Types.EmbeddedResourceEnumerator::MoveNext()
+	    IL_050d:  brtrue IL_04e2
+
+	    IL_0512:  leave IL_052e
+
+	  } // end .try 2
+	  finally  { // 2
+	    IL_0517:  ldloc.s 9
+	    IL_0519:  isinst [mscorlib]System.IDisposable
+	    IL_051e:  dup 
+	    IL_051f:  stloc.s 10
+	    IL_0521:  brfalse IL_052d
+
+	    IL_0526:  ldloc.s 10
+	    IL_0528:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_052d:  endfinally 
+	  } // end handler 2
+	  IL_052e:  ldloc.0 
+	  IL_052f:  ldstr "/nologo"
+	  IL_0534:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0539:  ldloc.0 
+	  IL_053a:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_053f:  ldarg.0 
+	  IL_0540:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_0545:  brfalse IL_0596
+
+	  IL_054a:  nop 
+	  IL_054b:  ldarg.0 
+	  IL_054c:  ldc.i4 2000
+	  IL_0551:  ldstr "String_ContentsOf"
+	  IL_0556:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_055b:  ldc.i4.1 
+	  IL_055c:  newarr [mscorlib]System.Object
+	  IL_0561:  dup 
+	  IL_0562:  ldc.i4.0 
+	  IL_0563:  ldarg.0 
+	  IL_0564:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	  IL_0569:  stelem.ref 
+	  IL_056a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_056f:  ldarg.0 
+	  IL_0570:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	  IL_0575:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
+	  IL_057a:  stloc.s 11
+	  IL_057c:  ldarg.0 
+	  IL_057d:  ldc.i4 2000
+	  IL_0582:  ldloc.s 11
+	  IL_0584:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_0589:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_058e:  ldloc.s 11
+	  IL_0590:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_0595:  nop 
+	  IL_0596:  ldarg.0 
+	  IL_0597:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_059c:  nop 
+	  IL_059d:  leave IL_05bd
+
+	} // end .try 3
+	finally  { // 3
+	  IL_05a2:  nop 
+	  IL_05a3:  ldloc.0 
+	  IL_05a4:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_05a9:  ldarg.0 
+	  IL_05aa:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	  IL_05af:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_05b4:  ldarg.0 
+	  IL_05b5:  ldnull 
+	  IL_05b6:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
+	  IL_05bb:  nop 
+	  IL_05bc:  endfinally 
+	} // end handler 3
+	IL_05bd:  nop 
+	IL_05be:  ret 
+    } // end of method AssemblyLinkerTask::ExecuteTask
+
+    // method line 58
+    .method family virtual hidebysig newslot 
+           instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x5688
-	// Code size 272 (0x110)
-	.maxstack 4
+        // Method begins at RVA 0x2b4c
+	// Code size 1229 (0x4cd)
+	.maxstack 7
 	.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,
+		bool	V_0,
+		string	V_1,
+		class NAnt.DotNet.Types.Module	V_2,
+		class NAnt.DotNet.Types.ModuleEnumerator	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)
+		class NAnt.DotNet.Types.EmbeddedResource	V_5,
+		class NAnt.DotNet.Types.EmbeddedResourceEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [System]System.Collections.Specialized.StringCollection	V_8,
+		class [NAnt.Core]NAnt.Core.Types.Argument	V_9,
+		class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator	V_10,
+		string	V_11,
+		string	V_12,
+		int32	V_13,
+		bool	V_14,
+		class [mscorlib]System.IDisposable	V_15)
 	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_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brtrue IL_0042
 
-	  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_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.AssemblyLinkerTask::get_OutputFile()
+	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_04cb
 
-	  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_0042:  ldnull 
+	IL_0043:  stloc.1 
+	IL_0044:  nop 
+	IL_0045:  ldarg.0 
+	IL_0046:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
+	IL_004b:  callvirt instance class NAnt.DotNet.Types.ModuleCollection class NAnt.DotNet.Types.ModuleSet::get_Modules()
+	IL_0050:  callvirt instance class NAnt.DotNet.Types.ModuleEnumerator class NAnt.DotNet.Types.ModuleCollection::GetEnumerator()
+	IL_0055:  stloc.3 
+	.try { // 0
+	  IL_0056:  br IL_00a8
 
-	    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_005b:  ldloc.3 
+	  IL_005c:  callvirt instance class NAnt.DotNet.Types.Module class NAnt.DotNet.Types.ModuleEnumerator::get_Current()
+	  IL_0061:  stloc.2 
+	  IL_0062:  nop 
+	  IL_0063:  ldloc.2 
+	  IL_0064:  callvirt instance string class NAnt.DotNet.Types.Module::get_File()
+	  IL_0069:  ldarg.0 
+	  IL_006a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	  IL_006f:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0074:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	  IL_0079:  stloc.1 
+	  IL_007a:  ldloc.1 
+	  IL_007b:  brfalse IL_00a7
 
-	    IL_007c:  leave IL_0097
+	  IL_0080:  nop 
+	  IL_0081:  ldarg.0 
+	  IL_0082:  ldc.i4 2000
+	  IL_0087:  ldstr "String_FileHasBeenUpdated"
+	  IL_008c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0091:  ldc.i4.1 
+	  IL_0092:  newarr [mscorlib]System.Object
+	  IL_0097:  dup 
+	  IL_0098:  ldc.i4.0 
+	  IL_0099:  ldloc.1 
+	  IL_009a:  stelem.ref 
+	  IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_00a0:  ldc.i4.1 
+	  IL_00a1:  stloc.0 
+	  IL_00a2:  leave IL_04cb
 
-	  } // 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_00a7:  nop 
+	  IL_00a8:  ldloc.3 
+	  IL_00a9:  callvirt instance bool class NAnt.DotNet.Types.ModuleEnumerator::MoveNext()
+	  IL_00ae:  brtrue IL_005b
 
-	    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_00b3:  leave IL_00ce
 
-	  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
+	} // end .try 0
+	finally  { // 0
+	  IL_00b8:  ldloc.3 
+	  IL_00b9:  isinst [mscorlib]System.IDisposable
+	  IL_00be:  dup 
+	  IL_00bf:  stloc.s 4
+	  IL_00c1:  brfalse IL_00cd
 
-	  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_00c6:  ldloc.s 4
+	  IL_00c8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00cd:  endfinally 
+	} // end handler 0
+	IL_00ce:  ldarg.0 
+	IL_00cf:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
+	IL_00d4:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00d9:  ldarg.0 
+	IL_00da:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_00df:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_00e4:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_00e9:  stloc.1 
+	IL_00ea:  ldloc.1 
+	IL_00eb:  brfalse IL_0117
 
-	  IL_00f4:  leave IL_010f
+	IL_00f0:  nop 
+	IL_00f1:  ldarg.0 
+	IL_00f2:  ldc.i4 2000
+	IL_00f7:  ldstr "String_FileHasBeenUpdated"
+	IL_00fc:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0101:  ldc.i4.1 
+	IL_0102:  newarr [mscorlib]System.Object
+	IL_0107:  dup 
+	IL_0108:  ldc.i4.0 
+	IL_0109:  ldloc.1 
+	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:  ldc.i4.1 
+	IL_0111:  stloc.0 
+	IL_0112:  br IL_04cb
+
+	IL_0117:  ldarg.0 
+	IL_0118:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
+	IL_011d:  brfalse IL_016d
+
+	IL_0122:  nop 
+	IL_0123:  ldarg.0 
+	IL_0124:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
+	IL_0129:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_012e:  ldarg.0 
+	IL_012f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_0134:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0139:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_013e:  stloc.1 
+	IL_013f:  ldloc.1 
+	IL_0140:  brfalse IL_016c
+
+	IL_0145:  nop 
+	IL_0146:  ldarg.0 
+	IL_0147:  ldc.i4 2000
+	IL_014c:  ldstr "String_FileHasBeenUpdated"
+	IL_0151:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0156:  ldc.i4.1 
+	IL_0157:  newarr [mscorlib]System.Object
+	IL_015c:  dup 
+	IL_015d:  ldc.i4.0 
+	IL_015e:  ldloc.1 
+	IL_015f:  stelem.ref 
+	IL_0160:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0165:  ldc.i4.1 
+	IL_0166:  stloc.0 
+	IL_0167:  br IL_04cb
+
+	IL_016c:  nop 
+	IL_016d:  ldarg.0 
+	IL_016e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
+	IL_0173:  brfalse IL_01c3
+
+	IL_0178:  nop 
+	IL_0179:  ldarg.0 
+	IL_017a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
+	IL_017f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0184:  ldarg.0 
+	IL_0185:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_018a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_018f:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0194:  stloc.1 
+	IL_0195:  ldloc.1 
+	IL_0196:  brfalse IL_01c2
+
+	IL_019b:  nop 
+	IL_019c:  ldarg.0 
+	IL_019d:  ldc.i4 2000
+	IL_01a2:  ldstr "String_FileHasBeenUpdated"
+	IL_01a7:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01ac:  ldc.i4.1 
+	IL_01ad:  newarr [mscorlib]System.Object
+	IL_01b2:  dup 
+	IL_01b3:  ldc.i4.0 
+	IL_01b4:  ldloc.1 
+	IL_01b5:  stelem.ref 
+	IL_01b6:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_01bb:  ldc.i4.1 
+	IL_01bc:  stloc.0 
+	IL_01bd:  br IL_04cb
+
+	IL_01c2:  nop 
+	IL_01c3:  ldarg.0 
+	IL_01c4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
+	IL_01c9:  brfalse IL_0219
+
+	IL_01ce:  nop 
+	IL_01cf:  ldarg.0 
+	IL_01d0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
+	IL_01d5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01da:  ldarg.0 
+	IL_01db:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_01e0:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_01e5:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_01ea:  stloc.1 
+	IL_01eb:  ldloc.1 
+	IL_01ec:  brfalse IL_0218
+
+	IL_01f1:  nop 
+	IL_01f2:  ldarg.0 
+	IL_01f3:  ldc.i4 2000
+	IL_01f8:  ldstr "String_FileHasBeenUpdated"
+	IL_01fd:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0202:  ldc.i4.1 
+	IL_0203:  newarr [mscorlib]System.Object
+	IL_0208:  dup 
+	IL_0209:  ldc.i4.0 
+	IL_020a:  ldloc.1 
+	IL_020b:  stelem.ref 
+	IL_020c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0211:  ldc.i4.1 
+	IL_0212:  stloc.0 
+	IL_0213:  br IL_04cb
+
+	IL_0218:  nop 
+	IL_0219:  ldarg.0 
+	IL_021a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
+	IL_021f:  brfalse IL_026f
+
+	IL_0224:  nop 
+	IL_0225:  ldarg.0 
+	IL_0226:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
+	IL_022b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0230:  ldarg.0 
+	IL_0231:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_0236:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_023b:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0240:  stloc.1 
+	IL_0241:  ldloc.1 
+	IL_0242:  brfalse IL_026e
+
+	IL_0247:  nop 
+	IL_0248:  ldarg.0 
+	IL_0249:  ldc.i4 2000
+	IL_024e:  ldstr "String_FileHasBeenUpdated"
+	IL_0253:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0258:  ldc.i4.1 
+	IL_0259:  newarr [mscorlib]System.Object
+	IL_025e:  dup 
+	IL_025f:  ldc.i4.0 
+	IL_0260:  ldloc.1 
+	IL_0261:  stelem.ref 
+	IL_0262:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0267:  ldc.i4.1 
+	IL_0268:  stloc.0 
+	IL_0269:  br IL_04cb
+
+	IL_026e:  nop 
+	IL_026f:  ldarg.0 
+	IL_0270:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
+	IL_0275:  brfalse IL_02c5
+
+	IL_027a:  nop 
+	IL_027b:  ldarg.0 
+	IL_027c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
+	IL_0281:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0286:  ldarg.0 
+	IL_0287:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_028c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0291:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0296:  stloc.1 
+	IL_0297:  ldloc.1 
+	IL_0298:  brfalse IL_02c4
+
+	IL_029d:  nop 
+	IL_029e:  ldarg.0 
+	IL_029f:  ldc.i4 2000
+	IL_02a4:  ldstr "String_FileHasBeenUpdated"
+	IL_02a9:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02ae:  ldc.i4.1 
+	IL_02af:  newarr [mscorlib]System.Object
+	IL_02b4:  dup 
+	IL_02b5:  ldc.i4.0 
+	IL_02b6:  ldloc.1 
+	IL_02b7:  stelem.ref 
+	IL_02b8:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_02bd:  ldc.i4.1 
+	IL_02be:  stloc.0 
+	IL_02bf:  br IL_04cb
+
+	IL_02c4:  nop 
+	IL_02c5:  nop 
+	IL_02c6:  ldarg.0 
+	IL_02c7:  call instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
+	IL_02cc:  callvirt instance class NAnt.DotNet.Types.EmbeddedResourceEnumerator class NAnt.DotNet.Types.EmbeddedResourceCollection::GetEnumerator()
+	IL_02d1:  stloc.s 6
+	.try { // 1
+	  IL_02d3:  br IL_0328
+
+	  IL_02d8:  ldloc.s 6
+	  IL_02da:  callvirt instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceEnumerator::get_Current()
+	  IL_02df:  stloc.s 5
+	  IL_02e1:  nop 
+	  IL_02e2:  ldloc.s 5
+	  IL_02e4:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_File()
+	  IL_02e9:  ldarg.0 
+	  IL_02ea:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	  IL_02ef:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_02f4:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	  IL_02f9:  stloc.1 
+	  IL_02fa:  ldloc.1 
+	  IL_02fb:  brfalse IL_0327
+
+	  IL_0300:  nop 
+	  IL_0301:  ldarg.0 
+	  IL_0302:  ldc.i4 2000
+	  IL_0307:  ldstr "String_FileHasBeenUpdated"
+	  IL_030c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0311:  ldc.i4.1 
+	  IL_0312:  newarr [mscorlib]System.Object
+	  IL_0317:  dup 
+	  IL_0318:  ldc.i4.0 
+	  IL_0319:  ldloc.1 
+	  IL_031a:  stelem.ref 
+	  IL_031b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0320:  ldc.i4.1 
+	  IL_0321:  stloc.0 
+	  IL_0322:  leave IL_04cb
+
+	  IL_0327:  nop 
+	  IL_0328:  ldloc.s 6
+	  IL_032a:  callvirt instance bool class NAnt.DotNet.Types.EmbeddedResourceEnumerator::MoveNext()
+	  IL_032f:  brtrue IL_02d8
+
+	  IL_0334:  leave IL_0350
 
 	} // 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_0339:  ldloc.s 6
+	  IL_033b:  isinst [mscorlib]System.IDisposable
+	  IL_0340:  dup 
+	  IL_0341:  stloc.s 7
+	  IL_0343:  brfalse IL_034f
 
-	  IL_0107:  ldloc.s 7
-	  IL_0109:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010e:  endfinally 
+	  IL_0348:  ldloc.s 7
+	  IL_034a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_034f:  endfinally 
 	} // end handler 1
-	IL_010f:  ret 
-    } // end of method NDocTask::ExpandPropertiesInNodes
+	IL_0350:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0355:  stloc.s 8
+	IL_0357:  nop 
+	IL_0358:  ldarg.0 
+	IL_0359:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_035e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::GetEnumerator()
+	IL_0363:  stloc.s 10
+	.try { // 2
+	  IL_0365:  br IL_045c
 
-    // method line 66
-    .method private hidebysig 
-           instance default void SetHtmlHelpCompiler (object sender, string hhcexe)  cil managed 
-    {
-        // Method begins at RVA 0x57c0
-	// 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_036a:  ldloc.s 10
+	  IL_036c:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Argument class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::get_Current()
+	  IL_0371:  stloc.s 9
+	  IL_0373:  nop 
+	  IL_0374:  ldloc.s 9
+	  IL_0376:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_IfDefined()
+	  IL_037b:  brfalse IL_045b
 
-	IL_0030:  br IL_00a3
+	  IL_0380:  ldloc.s 9
+	  IL_0382:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_UnlessDefined()
+	  IL_0387:  brtrue IL_045b
 
-	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_038c:  nop 
+	  IL_038d:  ldloc.s 9
+	  IL_038f:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Argument::get_Value()
+	  IL_0394:  stloc.s 11
+	  IL_0396:  ldloc.s 11
+	  IL_0398:  brfalse IL_045a
 
-	IL_006c:  br IL_00a3
+	  IL_039d:  ldloc.s 11
+	  IL_039f:  ldstr "/embed:"
+	  IL_03a4:  callvirt instance bool string::StartsWith(string)
+	  IL_03a9:  brtrue IL_03bf
 
-	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
+	  IL_03ae:  ldloc.s 11
+	  IL_03b0:  ldstr "/embedresource:"
+	  IL_03b5:  callvirt instance bool string::StartsWith(string)
+	  IL_03ba:  brfalse IL_045a
 
-    // method line 67
-    .method private hidebysig 
-           instance default string ResolveHhcExe ()  cil managed 
-    {
-        // Method begins at RVA 0x5870
-	// 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_03bf:  nop 
+	  IL_03c0:  ldloc.s 11
+	  IL_03c2:  ldloc.s 11
+	  IL_03c4:  ldc.i4.s 0x3a
+	  IL_03c6:  callvirt instance int32 string::IndexOf(char)
+	  IL_03cb:  ldc.i4.1 
+	  IL_03cc:  add 
+	  IL_03cd:  callvirt instance string string::Substring(int32)
+	  IL_03d2:  stloc.s 12
+	  IL_03d4:  ldloc.s 12
+	  IL_03d6:  ldc.i4.s 0x2c
+	  IL_03d8:  callvirt instance int32 string::IndexOf(char)
+	  IL_03dd:  stloc.s 13
+	  IL_03df:  ldloc.s 13
+	  IL_03e1:  ldc.i4.m1 
+	  IL_03e2:  beq IL_03f5
 
-	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_03e7:  nop 
+	  IL_03e8:  ldloc.s 12
+	  IL_03ea:  ldc.i4.0 
+	  IL_03eb:  ldloc.s 13
+	  IL_03ed:  callvirt instance string string::Substring(int32, int32)
+	  IL_03f2:  stloc.s 12
+	  IL_03f4:  nop 
+	  IL_03f5:  ldloc.s 12
+	  IL_03f7:  callvirt instance int32 string::get_Length()
+	  IL_03fc:  ldc.i4.2 
+	  IL_03fd:  ble IL_0421
 
-	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_0402:  ldloc.s 12
+	  IL_0404:  ldstr "\""
+	  IL_0409:  callvirt instance bool string::StartsWith(string)
+	  IL_040e:  brfalse IL_0421
 
-	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_0413:  ldloc.s 12
+	  IL_0415:  ldstr "\""
+	  IL_041a:  callvirt instance bool string::EndsWith(string)
+	  IL_041f:  br.s IL_0422
 
-	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_0421:  ldc.i4.0 
+	  IL_0422:  stloc.s 14
+	  IL_0424:  ldloc.s 14
+	  IL_0426:  brfalse IL_0440
 
-	IL_00a3:  ldloc.s 5
-	IL_00a5:  ret 
-    } // end of method NDocTask::ResolveHhcExe
+	  IL_042b:  nop 
+	  IL_042c:  ldloc.s 12
+	  IL_042e:  ldc.i4.1 
+	  IL_042f:  ldloc.s 12
+	  IL_0431:  callvirt instance int32 string::get_Length()
+	  IL_0436:  ldc.i4.2 
+	  IL_0437:  sub 
+	  IL_0438:  callvirt instance string string::Substring(int32, int32)
+	  IL_043d:  stloc.s 12
+	  IL_043f:  nop 
+	  IL_0440:  ldarg.0 
+	  IL_0441:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0446:  ldloc.s 12
+	  IL_0448:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
+	  IL_044d:  stloc.s 12
+	  IL_044f:  ldloc.s 8
+	  IL_0451:  ldloc.s 12
+	  IL_0453:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0458:  pop 
+	  IL_0459:  nop 
+	  IL_045a:  nop 
+	  IL_045b:  nop 
+	  IL_045c:  ldloc.s 10
+	  IL_045e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::MoveNext()
+	  IL_0463:  brtrue IL_036a
 
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet Assemblies ()
+	  IL_0468:  leave IL_0484
+
+	} // end .try 2
+	finally  { // 2
+	  IL_046d:  ldloc.s 10
+	  IL_046f:  isinst [mscorlib]System.IDisposable
+	  IL_0474:  dup 
+	  IL_0475:  stloc.s 15
+	  IL_0477:  brfalse IL_0483
+
+	  IL_047c:  ldloc.s 15
+	  IL_047e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0483:  endfinally 
+	} // end handler 2
+	IL_0484:  ldloc.s 8
+	IL_0486:  ldarg.0 
+	IL_0487:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
+	IL_048c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0491:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_0496:  stloc.1 
+	IL_0497:  ldloc.1 
+	IL_0498:  brfalse IL_04c4
+
+	IL_049d:  nop 
+	IL_049e:  ldarg.0 
+	IL_049f:  ldc.i4 2000
+	IL_04a4:  ldstr "String_FileHasBeenUpdated"
+	IL_04a9:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_04ae:  ldc.i4.1 
+	IL_04af:  newarr [mscorlib]System.Object
+	IL_04b4:  dup 
+	IL_04b5:  ldc.i4.0 
+	IL_04b6:  ldloc.1 
+	IL_04b7:  stelem.ref 
+	IL_04b8:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_04bd:  ldc.i4.1 
+	IL_04be:  stloc.0 
+	IL_04bf:  br IL_04cb
+
+	IL_04c4:  ldc.i4.0 
+	IL_04c5:  stloc.0 
+	IL_04c6:  br IL_04cb
+
+	IL_04cb:  ldloc.0 
+	IL_04cc:  ret 
+    } // end of method AssemblyLinkerTask::NeedsCompiling
+
+	.property instance string AlgorithmID ()
 	{
-		.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.
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 61 6C 67 69 64 01 00 54 02 08 52 65 71   // ...algid..T..Req
+		75 69 72 65 64 00                               ) // uired.
 
-		.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') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 01 00 54 08 04 42 61 73 65 10 00 00 00 ) // ....T..Base....
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_AlgorithmID () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_AlgorithmID (string 'value') 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Summaries ()
+	.property instance string Company ()
 	{
-		.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..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 63 6F 6D 70 61 6E 79 01 00 54 02 08 52   // ...company..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
 
-		.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') 
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Company () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Company (string 'value') 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.RawXml Documenters ()
+	.property instance string Configuration ()
 	{
-		.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.
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E   // ...configuration
+		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..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') 
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Configuration () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Configuration (string 'value') 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.DirSet ReferencePaths ()
+	.property instance string Copyright ()
 	{
-		.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..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 63 6F 70 79 72 69 67 68 74 01 00 54 02   // ...copyright..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
 
-		.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') 
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Copyright () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Copyright (string 'value') 
 	}
-  } // end of class NAnt.DotNet.Tasks.NDocTask
+	.property instance string Culture ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 63 75 6C 74 75 72 65 01 00 54 02 08 52   // ...culture..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Culture (string 'value') 
+	}
+	.property instance valuetype NAnt.DotNet.Types.DelaySign 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 01 00 54 02   // ...delaysign..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.get instance default valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.AssemblyLinkerTask::get_DelaySign () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value') 
+	}
+	.property instance string Description ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 64 65 73 63 72 69 70 74 69 6F 6E 01 00   // ...description..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Description () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Description (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo EvidenceFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 65 76 69 64 65 6E 63 65 01 00 54 02 08   // ...evidence..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_EvidenceFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string FileVersion ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 66 69 6C 65 76 65 72 73 69 6F 6E 01 00   // ...fileversion..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_FileVersion () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_FileVersion (string 'value') 
+	}
+	.property instance string Flags ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 66 6C 61 67 73 01 00 54 02 08 52 65 71   // ...flags..T..Req
+		75 69 72 65 64 00                               ) // uired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 01 00 54 08 04 42 61 73 65 10 00 00 00 ) // ....T..Base....
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Flags () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Flags (string '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.AssemblyLinkerTask::get_KeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyContainer (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 01 00 54 02 08 52   // ...keyfile..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string MainMethod ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6E 00 00 ) // ...main..
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_MainMethod () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_MainMethod (string 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.ModuleSet ModuleSet ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 6D 6F 64 75 6C 65 73 00 00 ) // ...modules..
+
+		.get instance default class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_ModuleSet (class NAnt.DotNet.Types.ModuleSet '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.AssemblyLinkerTask::get_OutputFile () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string OutputTarget ()
+	{
+		.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.AssemblyLinkerTask::get_OutputTarget () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputTarget (string 'value') 
+	}
+	.property instance string Product ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 70 72 6F 64 75 63 74 01 00 54 02 08 52   // ...product..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Product () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Product (string 'value') 
+	}
+	.property instance string ProductVersion ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 70 72 6F 64 75 63 74 76 65 72 73 69 6F   // ...productversio
+		6E 01 00 54 02 08 52 65 71 75 69 72 65 64 00    ) // n..T..Required.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProductVersion () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_ProductVersion (string 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Resources ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 73 6F 75 72 63 65 73 00 00 ) // ...sources..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Resources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.EmbeddedResourceCollection EmbeddedResources ()
+	{
+		.get instance default class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_EmbeddedResources (class NAnt.DotNet.Types.EmbeddedResourceCollection 'value') 
+	}
+	.property instance bool SupportsTemplate ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 10 73 75 70 70 6F 72 74 73 74 65 6D 70 6C   // ...supportstempl
+		61 74 65 00 00                                  ) // ate..
+
+		.get instance default bool NAnt.DotNet.Tasks.AssemblyLinkerTask::get_SupportsTemplate () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_SupportsTemplate (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo TemplateFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 74 65 6D 70 6C 61 74 65 01 00 54 02 08   // ...template..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_TemplateFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string Title ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 74 69 74 6C 65 01 00 54 02 08 52 65 71   // ...title..T..Req
+		75 69 72 65 64 00                               ) // uired.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Title () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Title (string 'value') 
+	}
+	.property instance string Trademark ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 74 72 61 64 65 6D 61 72 6B 01 00 54 02   // ...trademark..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Trademark () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Trademark (string 'value') 
+	}
+	.property instance string Version ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 76 65 72 73 69 6F 6E 01 00 54 02 08 52   // ...version..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Version () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Version (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Win32Icon ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 77 69 6E 33 32 69 63 6F 6E 01 00 54 02   // ...win32icon..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Win32Res ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 77 69 6E 33 32 72 65 73 01 00 54 02 08   // ...win32res..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Win32Res (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.DotNet.Tasks.AssemblyLinkerTask
 }
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi serializable beforefieldinit LicenseTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi beforefieldinit ScriptTask
+  	extends [NAnt.Core]NAnt.Core.Task
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 6C 69 63 65 6E 73 65 00 00 ) // ...license..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 73 63 72 69 70 74 00 00 ) // ...script..
 
-    .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  string _language
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
+    .field  private  string _mainClass
+    .field  private  string _rootClassName
+    .field  private  string _prefix
+    .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
+    .field  private  class [NAnt.Core]NAnt.Core.Types.RawXml _code
+    .field  private static initonly  string[] _defaultNamespaces
+    .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 ) // ....
 
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _assemblies
-    .field  private  class [mscorlib]System.IO.FileInfo _inputFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  string _target
-    .field  private  string _programFileName
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _workingDirectory
-    .field  private  bool _supportsAssemblyReferences
-    .field  private  bool _hasCommandLineCompiler
 
-    // method line 68
+    // method line 59
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5922
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x3074
+	// Code size 58 (0x3a)
 	.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.LicenseTask::_assemblies
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.DotNet.Tasks.LicenseTask::_hasCommandLineCompiler
+	IL_0001:  ldnull 
+	IL_0002:  stfld string NAnt.DotNet.Tasks.ScriptTask::_language
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_000d:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::_references
 	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0018:  ret 
-    } // end of method LicenseTask::.ctor
-
-    // method line 69
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x593c
-	// 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.LicenseTask::_inputFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method LicenseTask::get_InputFile
-
-    // method line 70
-    .method public hidebysig specialname 
-           instance default void set_InputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5957
-	// 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.LicenseTask::_inputFile
-	IL_0008:  ret 
-    } // end of method LicenseTask::set_InputFile
+	IL_0013:  ldstr ""
+	IL_0018:  stfld string NAnt.DotNet.Tasks.ScriptTask::_mainClass
+	IL_001d:  ldarg.0 
+	IL_001e:  ldstr "script"
+	IL_0023:  stfld string NAnt.DotNet.Tasks.ScriptTask::_prefix
+	IL_0028:  ldarg.0 
+	IL_0029:  newobj instance void class NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
+	IL_002e:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.ScriptTask::_imports
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0039:  ret 
+    } // end of method ScriptTask::.ctor
 
-    // method line 71
+    // method line 60
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+           instance default string get_Language ()  cil managed 
     {
-        // Method begins at RVA 0x5964
+        // Method begins at RVA 0x30b0
 	// 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.LicenseTask::_outputFile
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_language
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LicenseTask::get_OutputFile
+    } // end of method ScriptTask::get_Language
 
-    // method line 72
+    // method line 61
     .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Language (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x597f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x30cb
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::_outputFile
-	IL_0008:  ret 
-    } // end of method LicenseTask::set_OutputFile
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.ScriptTask::_language
+	IL_000d:  ret 
+    } // end of method ScriptTask::set_Language
 
-    // method line 73
+    // method line 62
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x598c
+        // Method begins at RVA 0x30dc
 	// 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.LicenseTask::_assemblies
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::_references
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LicenseTask::get_Assemblies
+    } // end of method ScriptTask::get_References
 
-    // method line 74
+    // method line 63
     .method public hidebysig specialname 
-           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+           instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x59a7
+        // Method begins at RVA 0x30f7
 	// 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.LicenseTask::_assemblies
+	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::_references
 	IL_0008:  ret 
-    } // end of method LicenseTask::set_Assemblies
+    } // end of method ScriptTask::set_References
 
-    // method line 75
+    // method line 64
     .method public hidebysig specialname 
-           instance default string get_LicenseTarget ()  cil managed 
+           instance default string get_MainClass ()  cil managed 
     {
-        // Method begins at RVA 0x59b4
+        // 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:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_mainClass
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LicenseTask::get_LicenseTarget
+    } // end of method ScriptTask::get_MainClass
 
-    // method line 76
+    // method line 65
     .method public hidebysig specialname 
-           instance default void set_LicenseTarget (string 'value')  cil managed 
+           instance default void set_MainClass (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x59cf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x311f
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.LicenseTask::set_Target(string)
-	IL_0008:  ret 
-    } // end of method LicenseTask::set_LicenseTarget
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.ScriptTask::_mainClass
+	IL_000d:  ret 
+    } // end of method ScriptTask::set_MainClass
 
-    // method line 77
+    // method line 66
     .method public hidebysig specialname 
-           instance default string get_Target ()  cil managed 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x59dc
+        // 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:  ldfld string NAnt.DotNet.Tasks.LicenseTask::_target
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_prefix
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LicenseTask::get_Target
+    } // end of method ScriptTask::get_Prefix
 
-    // method line 78
+    // method line 67
     .method public hidebysig specialname 
-           instance default void set_Target (string 'value')  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x59f7
+        // Method begins at RVA 0x314b
 	// 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.LicenseTask::_target
+	IL_0008:  stfld string NAnt.DotNet.Tasks.ScriptTask::_prefix
 	IL_000d:  ret 
-    } // end of method LicenseTask::set_Target
+    } // end of method ScriptTask::set_Prefix
 
-    // method line 79
+    // method line 68
     .method public hidebysig specialname 
-           instance default bool get_SupportsAssemblyReferences ()  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
     {
-        // Method begins at RVA 0x5a08
+        // Method begins at RVA 0x315c
 	// 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.LicenseTask::_supportsAssemblyReferences
+	IL_0002:  ldfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.ScriptTask::_imports
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LicenseTask::get_SupportsAssemblyReferences
+    } // end of method ScriptTask::get_Imports
 
-    // method line 80
+    // method line 69
     .method public hidebysig specialname 
-           instance default void set_SupportsAssemblyReferences (bool 'value')  cil managed 
+           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x5a23
+        // Method begins at RVA 0x3177
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.LicenseTask::_supportsAssemblyReferences
+	IL_0003:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.ScriptTask::_imports
 	IL_0008:  ret 
-    } // end of method LicenseTask::set_SupportsAssemblyReferences
+    } // end of method ScriptTask::set_Imports
 
-    // method line 81
+    // method line 70
     .method public hidebysig specialname 
-           instance default bool get_HasCommandLineCompiler ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Code ()  cil managed 
     {
-        // Method begins at RVA 0x5a30
+        // Method begins at RVA 0x3184
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.RawXml	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.LicenseTask::_hasCommandLineCompiler
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.ScriptTask::_code
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LicenseTask::get_HasCommandLineCompiler
+    } // end of method ScriptTask::get_Code
 
-    // method line 82
+    // method line 71
     .method public hidebysig specialname 
-           instance default void set_HasCommandLineCompiler (bool 'value')  cil managed 
+           instance default void set_Code (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
     {
-        // Method begins at RVA 0x5a4b
+        // Method begins at RVA 0x319f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.LicenseTask::_hasCommandLineCompiler
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.ScriptTask::_code
 	IL_0008:  ret 
-    } // end of method LicenseTask::set_HasCommandLineCompiler
+    } // end of method ScriptTask::set_Code
 
-    // method line 83
+    // method line 72
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x5a58
-	// Code size 112 (0x70)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	IL_0007:  brtrue IL_0033
-
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "NA2013"
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001c:  ldarg.0 
-	IL_001d:  callvirt instance string class [NAnt.Core]NAnt.Core.Element::get_Name()
-	IL_0022:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0027:  ldarg.0 
-	IL_0028:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_002d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0032:  throw 
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	IL_0039:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_003e:  brtrue IL_006f
-
-	IL_0043:  nop 
-	IL_0044:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0049:  ldstr "NA2014"
-	IL_004e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0053:  ldarg.0 
-	IL_0054:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	IL_0059:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_005e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0063:  ldarg.0 
-	IL_0064:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_0069:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_006e:  throw 
-	IL_006f:  ret 
-    } // end of method LicenseTask::Initialize
-
-    // method line 84
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x5ad4
-	// Code size 39 (0x27)
-	.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.Tasks.LicenseTask::_workingDirectory
-	IL_0007:  brtrue IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0025
-
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.LicenseTask::_workingDirectory
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
-
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method LicenseTask::get_BaseDirectory
-
-    // method line 85
-    .method public virtual hidebysig specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5b07
-	// 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.Tasks.LicenseTask::_workingDirectory
-	IL_0008:  ret 
-    } // end of method LicenseTask::set_BaseDirectory
-
-    // method line 86
-    .method public virtual hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
-    {
-        // Method begins at RVA 0x5b14
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.ArgumentCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method LicenseTask::get_Arguments
-
-    // method line 87
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x5b30
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method LicenseTask::get_ProgramArguments
-
-    // method line 88
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x5b4c
-	// Code size 40 (0x28)
-	.maxstack 2
+        // Method begins at RVA 0x31ac
+	// Code size 41 (0x29)
+	.maxstack 5
 	.locals init (
-		string	V_0)
+		valuetype [mscorlib]System.Guid	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
-	IL_0007:  brtrue IL_001a
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_0014:  stfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method LicenseTask::get_ProgramFileName
+	IL_0002:  ldstr "nant"
+	IL_0007:  call valuetype [mscorlib]System.Guid valuetype [mscorlib]System.Guid::NewGuid()
+	IL_000c:  stloc.0 
+	IL_000d:  ldloca.s 0
+	IL_000f:  ldstr "N"
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  call instance string valuetype [mscorlib]System.Guid::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_001e:  call string string::Concat(string, string)
+	IL_0023:  stfld string NAnt.DotNet.Tasks.ScriptTask::_rootClassName
+	IL_0028:  ret 
+    } // end of method ScriptTask::Initialize
 
-    // method line 89
+    // method line 73
     .method family virtual hidebysig 
-           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x5b80
-	// Code size 547 (0x223)
-	.maxstack 4
+        // Method begins at RVA 0x31e4
+	// Code size 1226 (0x4ca)
+	.maxstack 7
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Tasks.CopyTask	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		string	V_4,
-		string	V_5,
-		class [System]System.Collections.Specialized.StringEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7)
+		class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo	V_0,
+		class [System]System.CodeDom.Compiler.ICodeCompiler	V_1,
+		class [System]System.CodeDom.Compiler.CompilerParameters	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.Reflection.Assembly	V_5,
+		class [mscorlib]System.Exception	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [System]System.Collections.Specialized.StringCollection	V_8,
+		class NAnt.DotNet.Types.NamespaceImport	V_9,
+		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_10,
+		class [mscorlib]System.IDisposable	V_11,
+		class [System]System.CodeDom.CodeCompileUnit	V_12,
+		class [mscorlib]System.IO.StringWriter	V_13,
+		string	V_14,
+		class [System]System.CodeDom.Compiler.CompilerResults	V_15,
+		class [mscorlib]System.Reflection.Assembly	V_16,
+		string	V_17,
+		class [System]System.CodeDom.Compiler.CompilerError	V_18,
+		class [mscorlib]System.Collections.IEnumerator	V_19,
+		class [mscorlib]System.IDisposable	V_20,
+		bool	V_21,
+		string	V_22,
+		class [mscorlib]System.Type	V_23,
+		class [mscorlib]System.Reflection.MethodInfo	V_24,
+		class [mscorlib]System.Reflection.ParameterInfo[]	V_25,
+		class [mscorlib]System.Exception	V_26)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.LicenseTask::get_SupportsAssemblyReferences()
-	IL_0007:  brtrue IL_01ac
-
-	IL_000c:  nop 
-	IL_000d:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::'.ctor'()
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_001f:  ldloc.0 
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0026:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_002b:  ldloc.0 
-	IL_002c:  ldarg.0 
-	IL_002d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0032:  ldloc.0 
-	IL_0033:  ldarg.0 
-	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:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0044:  brtrue IL_0056
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_Language()
+	IL_0008:  call instance class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo class NAnt.DotNet.Tasks.ScriptTask::CreateCompilerInfo(string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ScriptTask::get_References()
+	IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0019:  brtrue IL_003b
 
-	IL_0049:  nop 
-	IL_004a:  ldloc.0 
-	IL_004b:  ldc.i4 4000
-	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	IL_0055:  nop 
-	IL_0056:  ldloc.0 
-	IL_0057:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	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 void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0068:  ldloc.0 
-	IL_0069:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_006e:  ldloc.0 
-	IL_006f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0074:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0079:  ldloc.0 
-	IL_007a:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_007f:  ldloc.0 
-	IL_0080:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0085:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_008a:  ldloc.0 
-	IL_008b:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0090:  ldarg.0 
-	IL_0091:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_0096:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_00a0:  ldloc.0 
-	IL_00a1:  ldc.i4.1 
-	IL_00a2:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_Flatten(bool)
-	IL_00a7:  nop 
-	IL_00a8:  ldarg.0 
-	IL_00a9:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_00ae:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00b3:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00b8:  stloc.2 
-	.try { // 0
-	  IL_00b9:  br IL_00d9
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ScriptTask::get_References()
+	IL_0025:  ldarg.0 
+	IL_0026:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_002b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0030:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0035:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_003a:  nop 
+	IL_003b:  ldloc.0 
+	IL_003c:  ldfld class [System]System.CodeDom.Compiler.ICodeCompiler NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::Compiler
+	IL_0041:  stloc.1 
+	IL_0042:  newobj instance void class [System]System.CodeDom.Compiler.CompilerParameters::'.ctor'()
+	IL_0047:  stloc.2 
+	IL_0048:  ldloc.2 
+	IL_0049:  ldc.i4.0 
+	IL_004a:  callvirt instance void class [System]System.CodeDom.Compiler.CompilerParameters::set_GenerateExecutable(bool)
+	IL_004f:  ldloc.2 
+	IL_0050:  ldc.i4.1 
+	IL_0051:  callvirt instance void class [System]System.CodeDom.Compiler.CompilerParameters::set_GenerateInMemory(bool)
+	IL_0056:  ldloc.2 
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_MainClass()
+	IL_005d:  callvirt instance void class [System]System.CodeDom.Compiler.CompilerParameters::set_MainClass(string)
+	IL_0062:  ldloc.2 
+	IL_0063:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [System]System.CodeDom.Compiler.CompilerParameters::get_ReferencedAssemblies()
+	IL_0068:  ldtoken [NAnt.Core]NAnt.Core.Project
+	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0072:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
+	IL_0077:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	IL_007c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0081:  pop 
+	IL_0082:  ldarg.0 
+	IL_0083:  ldc.i4 2000
+	IL_0088:  ldstr "Adding assembly {0}"
+	IL_008d:  ldc.i4.1 
+	IL_008e:  newarr [mscorlib]System.Object
+	IL_0093:  dup 
+	IL_0094:  ldc.i4.0 
+	IL_0095:  ldtoken [NAnt.Core]NAnt.Core.Project
+	IL_009a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_009f:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
+	IL_00a4:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_00a9:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_00ae:  stelem.ref 
+	IL_00af:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00b4:  nop 
+	IL_00b5:  ldarg.0 
+	IL_00b6:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ScriptTask::get_References()
+	IL_00bb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00c0:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00c5:  stloc.s 4
+	.try { // 1
+	  IL_00c7:  br IL_0156
 
-	  IL_00be:  ldloc.2 
-	  IL_00bf:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00c4:  stloc.1 
-	  IL_00c5:  nop 
-	  IL_00c6:  ldloc.0 
-	  IL_00c7:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	  IL_00cc:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_00d1:  ldloc.1 
-	  IL_00d2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00d7:  pop 
-	  IL_00d8:  nop 
-	  IL_00d9:  ldloc.2 
-	  IL_00da:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00df:  brtrue IL_00be
+	  IL_00cc:  ldloc.s 4
+	  IL_00ce:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00d3:  stloc.3 
+	  IL_00d4:  nop 
+	  .try { // 0
+	    IL_00d5:  nop 
+	    IL_00d6:  ldloc.3 
+	    IL_00d7:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	    IL_00dc:  stloc.s 5
+	    IL_00de:  ldarg.0 
+	    IL_00df:  ldc.i4 2000
+	    IL_00e4:  ldstr "Adding assembly {0}"
+	    IL_00e9:  ldc.i4.1 
+	    IL_00ea:  newarr [mscorlib]System.Object
+	    IL_00ef:  dup 
+	    IL_00f0:  ldc.i4.0 
+	    IL_00f1:  ldloc.s 5
+	    IL_00f3:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	    IL_00f8:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	    IL_00fd:  stelem.ref 
+	    IL_00fe:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_0103:  ldloc.s 5
+	    IL_0105:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	    IL_010a:  call bool string::IsNullOrEmpty(string)
+	    IL_010f:  brtrue IL_0129
 
-	  IL_00e4:  leave IL_00fd
+	    IL_0114:  nop 
+	    IL_0115:  ldloc.2 
+	    IL_0116:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [System]System.CodeDom.Compiler.CompilerParameters::get_ReferencedAssemblies()
+	    IL_011b:  ldloc.s 5
+	    IL_011d:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	    IL_0122:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0127:  pop 
+	    IL_0128:  nop 
+	    IL_0129:  nop 
+	    IL_012a:  leave IL_0155
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00e9:  ldloc.2 
-	  IL_00ea:  isinst [mscorlib]System.IDisposable
-	  IL_00ef:  dup 
-	  IL_00f0:  stloc.3 
-	  IL_00f1:  brfalse IL_00fc
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_012f:  stloc.s 6
+	    IL_0131:  nop 
+	    IL_0132:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0137:  ldstr "NA2028"
+	    IL_013c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_0141:  ldloc.3 
+	    IL_0142:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0147:  ldarg.0 
+	    IL_0148:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	    IL_014d:  ldloc.s 6
+	    IL_014f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_0154:  throw 
+	  } // end handler 0
+	  IL_0155:  nop 
+	  IL_0156:  ldloc.s 4
+	  IL_0158:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_015d:  brtrue IL_00cc
 
-	  IL_00f6:  ldloc.3 
-	  IL_00f7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00fc:  endfinally 
-	} // end handler 0
-	IL_00fd:  ldloc.0 
-	IL_00fe:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0103:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	IL_0108:  ldarg.0 
-	IL_0109:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_010e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0113:  pop 
-	IL_0114:  ldloc.0 
-	IL_0115:  ldarg.0 
-	IL_0116:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_011b:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_ToDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0120:  ldloc.0 
-	IL_0121:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0126:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 1
-	  IL_012b:  nop 
-	  IL_012c:  ldloc.0 
-	  IL_012d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0132:  nop 
-	  IL_0133:  leave IL_0146
+	  IL_0162:  leave IL_017e
 
 	} // end .try 1
 	finally  { // 1
-	  IL_0138:  nop 
-	  IL_0139:  ldloc.0 
-	  IL_013a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_013f:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0144:  nop 
-	  IL_0145:  endfinally 
-	} // end handler 1
-	IL_0146:  ldarg.0 
-	IL_0147:  ldarg.0 
-	IL_0148:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_014d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0152:  ldarg.0 
-	IL_0153:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_0158:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_015d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0162:  stfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
-	IL_0167:  ldarg.0 
-	IL_0168:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_016d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0172:  ldarg.0 
-	IL_0173:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	IL_0178:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_017d:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0182:  stloc.s 4
-	IL_0184:  ldloc.s 4
-	IL_0186:  call bool string::IsNullOrEmpty(string)
-	IL_018b:  brtrue IL_01a6
+	  IL_0167:  ldloc.s 4
+	  IL_0169:  isinst [mscorlib]System.IDisposable
+	  IL_016e:  dup 
+	  IL_016f:  stloc.s 7
+	  IL_0171:  brfalse IL_017d
 
-	IL_0190:  ldloc.s 4
-	IL_0192:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0197:  brtrue IL_01a6
+	  IL_0176:  ldloc.s 7
+	  IL_0178:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_017d:  endfinally 
+	} // end handler 1
+	IL_017e:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0183:  stloc.s 8
+	IL_0185:  nop 
+	IL_0186:  ldarg.0 
+	IL_0187:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.ScriptTask::get_Imports()
+	IL_018c:  callvirt instance class NAnt.DotNet.Types.NamespaceImportEnumerator class NAnt.DotNet.Types.NamespaceImportCollection::GetEnumerator()
+	IL_0191:  stloc.s 10
+	.try { // 2
+	  IL_0193:  br IL_01cc
 
-	IL_019c:  nop 
-	IL_019d:  ldloc.s 4
-	IL_019f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	IL_01a4:  pop 
-	IL_01a5:  nop 
-	IL_01a6:  nop 
-	IL_01a7:  br IL_021b
+	  IL_0198:  ldloc.s 10
+	  IL_019a:  callvirt instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current()
+	  IL_019f:  stloc.s 9
+	  IL_01a1:  nop 
+	  IL_01a2:  ldloc.s 9
+	  IL_01a4:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_IfDefined()
+	  IL_01a9:  brfalse IL_01cb
 
-	IL_01ac:  nop 
-	IL_01ad:  nop 
-	IL_01ae:  ldarg.0 
-	IL_01af:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_01b4:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_01b9:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_01be:  stloc.s 6
-	.try { // 2
-	  IL_01c0:  br IL_01f2
+	  IL_01ae:  ldloc.s 9
+	  IL_01b0:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined()
+	  IL_01b5:  brtrue IL_01cb
 
-	  IL_01c5:  ldloc.s 6
-	  IL_01c7:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_01cc:  stloc.s 5
-	  IL_01ce:  nop 
-	  IL_01cf:  ldarg.0 
-	  IL_01d0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_01d5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_01da:  ldstr "/i:\"{0}\""
-	  IL_01df:  ldloc.s 5
-	  IL_01e1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_01e6:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_01eb:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_01f0:  pop 
-	  IL_01f1:  nop 
-	  IL_01f2:  ldloc.s 6
-	  IL_01f4:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_01f9:  brtrue IL_01c5
+	  IL_01ba:  nop 
+	  IL_01bb:  ldloc.s 8
+	  IL_01bd:  ldloc.s 9
+	  IL_01bf:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
+	  IL_01c4:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_01c9:  pop 
+	  IL_01ca:  nop 
+	  IL_01cb:  nop 
+	  IL_01cc:  ldloc.s 10
+	  IL_01ce:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImportEnumerator::MoveNext()
+	  IL_01d3:  brtrue IL_0198
 
-	  IL_01fe:  leave IL_021a
+	  IL_01d8:  leave IL_01f4
 
 	} // end .try 2
 	finally  { // 2
-	  IL_0203:  ldloc.s 6
-	  IL_0205:  isinst [mscorlib]System.IDisposable
-	  IL_020a:  dup 
-	  IL_020b:  stloc.s 7
-	  IL_020d:  brfalse IL_0219
+	  IL_01dd:  ldloc.s 10
+	  IL_01df:  isinst [mscorlib]System.IDisposable
+	  IL_01e4:  dup 
+	  IL_01e5:  stloc.s 11
+	  IL_01e7:  brfalse IL_01f3
 
-	  IL_0212:  ldloc.s 7
-	  IL_0214:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0219:  endfinally 
+	  IL_01ec:  ldloc.s 11
+	  IL_01ee:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01f3:  endfinally 
 	} // end handler 2
-	IL_021a:  nop 
-	IL_021b:  ldarg.0 
-	IL_021c:  ldarg.1 
-	IL_021d:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
-	IL_0222:  ret 
-    } // end of method LicenseTask::PrepareProcess
+	IL_01f4:  ldloc.0 
+	IL_01f5:  ldarg.0 
+	IL_01f6:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_rootClassName
+	IL_01fb:  ldarg.0 
+	IL_01fc:  call instance class [NAnt.Core]NAnt.Core.Types.RawXml class NAnt.DotNet.Tasks.ScriptTask::get_Code()
+	IL_0201:  callvirt instance class [System.Xml]System.Xml.XmlNode class [NAnt.Core]NAnt.Core.Types.RawXml::get_Xml()
+	IL_0206:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	IL_020b:  ldloc.s 8
+	IL_020d:  ldarg.0 
+	IL_020e:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_Prefix()
+	IL_0213:  callvirt instance class [System]System.CodeDom.CodeCompileUnit class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::GenerateCode(string, string, class [System]System.Collections.Specialized.StringCollection, string)
+	IL_0218:  stloc.s 12
+	IL_021a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_021f:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'(class [mscorlib]System.IFormatProvider)
+	IL_0224:  stloc.s 13
+	IL_0226:  ldloc.0 
+	IL_0227:  ldfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::CodeGen
+	IL_022c:  ldloc.s 12
+	IL_022e:  ldloc.s 13
+	IL_0230:  ldnull 
+	IL_0231:  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_0236:  ldloc.s 13
+	IL_0238:  callvirt instance string object::ToString()
+	IL_023d:  stloc.s 14
+	IL_023f:  ldarg.0 
+	IL_0240:  ldc.i4 1000
+	IL_0245:  ldstr "String_GeneratedCodeLooksLike"
+	IL_024a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_024f:  ldstr "\n{0}"
+	IL_0254:  call string string::Concat(string, string)
+	IL_0259:  ldc.i4.1 
+	IL_025a:  newarr [mscorlib]System.Object
+	IL_025f:  dup 
+	IL_0260:  ldc.i4.0 
+	IL_0261:  ldloc.s 14
+	IL_0263:  stelem.ref 
+	IL_0264:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0269:  ldloc.1 
+	IL_026a:  ldloc.2 
+	IL_026b:  ldloc.s 12
+	IL_026d:  callvirt instance class [System]System.CodeDom.Compiler.CompilerResults class [System]System.CodeDom.Compiler.ICodeCompiler::CompileAssemblyFromDom(class [System]System.CodeDom.Compiler.CompilerParameters, class [System]System.CodeDom.CodeCompileUnit)
+	IL_0272:  stloc.s 15
+	IL_0274:  ldnull 
+	IL_0275:  stloc.s 16
+	IL_0277:  ldloc.s 15
+	IL_0279:  callvirt instance class [System]System.CodeDom.Compiler.CompilerErrorCollection class [System]System.CodeDom.Compiler.CompilerResults::get_Errors()
+	IL_027e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0283:  ldc.i4.0 
+	IL_0284:  ble IL_031a
 
-    // method line 90
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x5dd8
-	// Code size 724 (0x2d4)
-	.maxstack 9
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		class [mscorlib]System.Exception	V_1,
-		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_2,
-		class [mscorlib]System.AppDomain	V_3,
-		class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_0009:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000e:  brtrue IL_0030
+	IL_0289:  nop 
+	IL_028a:  ldstr "NA2029"
+	IL_028f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0294:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0299:  call string string::Concat(string, string)
+	IL_029e:  stloc.s 17
+	IL_02a0:  nop 
+	IL_02a1:  ldloc.s 15
+	IL_02a3:  callvirt instance class [System]System.CodeDom.Compiler.CompilerErrorCollection class [System]System.CodeDom.Compiler.CompilerResults::get_Errors()
+	IL_02a8:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.CollectionBase::GetEnumerator()
+	IL_02ad:  stloc.s 19
+	.try { // 3
+	  IL_02af:  br IL_02d9
 
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_001a:  ldarg.0 
-	IL_001b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0020:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0025:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_002a:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_OutputFile()
-	IL_0036:  brtrue IL_0093
+	  IL_02b4:  ldloc.s 19
+	  IL_02b6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_02bb:  castclass [System]System.CodeDom.Compiler.CompilerError
+	  IL_02c0:  stloc.s 18
+	  IL_02c2:  nop 
+	  IL_02c3:  ldloc.s 17
+	  IL_02c5:  ldloc.s 18
+	  IL_02c7:  callvirt instance string object::ToString()
+	  IL_02cc:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_02d1:  call string string::Concat(string, string, string)
+	  IL_02d6:  stloc.s 17
+	  IL_02d8:  nop 
+	  IL_02d9:  ldloc.s 19
+	  IL_02db:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02e0:  brtrue IL_02b4
 
-	IL_003b:  nop 
-	.try { // 0
-	  IL_003c:  nop 
-	  IL_003d:  ldarg.0 
-	  IL_003e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0043:  ldarg.0 
-	  IL_0044:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	  IL_0049:  ldstr ".licenses"
-	  IL_004e:  call string string::Concat(string, string)
-	  IL_0053:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
-	  IL_0058:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_005d:  stloc.0 
-	  IL_005e:  nop 
-	  IL_005f:  leave IL_008d
+	  IL_02e5:  leave IL_0301
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0064:  stloc.1 
-	  IL_0065:  nop 
-	  IL_0066:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_006b:  ldstr "NA2015"
-	  IL_0070:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0075:  ldarg.0 
-	  IL_0076:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	  IL_007b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0080:  ldarg.0 
-	  IL_0081:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	  IL_0086:  ldloc.1 
-	  IL_0087:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_008c:  throw 
-	} // end handler 0
-	IL_008d:  nop 
-	IL_008e:  br IL_009c
+	} // end .try 3
+	finally  { // 3
+	  IL_02ea:  ldloc.s 19
+	  IL_02ec:  isinst [mscorlib]System.IDisposable
+	  IL_02f1:  dup 
+	  IL_02f2:  stloc.s 20
+	  IL_02f4:  brfalse IL_0300
 
-	IL_0093:  nop 
-	IL_0094:  ldarg.0 
-	IL_0095:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_OutputFile()
-	IL_009a:  stloc.0 
-	IL_009b:  nop 
-	IL_009c:  ldloc.0 
-	IL_009d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_00a2:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_00a7:  brtrue IL_00b9
+	  IL_02f9:  ldloc.s 20
+	  IL_02fb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0300:  endfinally 
+	} // end handler 3
+	IL_0301:  ldloc.s 17
+	IL_0303:  ldloc.s 14
+	IL_0305:  call string string::Concat(string, string)
+	IL_030a:  stloc.s 17
+	IL_030c:  ldloc.s 17
+	IL_030e:  ldarg.0 
+	IL_030f:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_0314:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0319:  throw 
+	IL_031a:  nop 
+	IL_031b:  ldloc.s 15
+	IL_031d:  callvirt instance class [mscorlib]System.Reflection.Assembly class [System]System.CodeDom.Compiler.CompilerResults::get_CompiledAssembly()
+	IL_0322:  stloc.s 16
+	IL_0324:  nop 
+	IL_0325:  ldloc.s 16
+	IL_0327:  ldarg.0 
+	IL_0328:  call bool class [NAnt.Core]NAnt.Core.TypeFactory::ScanAssembly(class [mscorlib]System.Reflection.Assembly, class [NAnt.Core]NAnt.Core.Task)
+	IL_032d:  stloc.s 21
+	IL_032f:  ldarg.0 
+	IL_0330:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_rootClassName
+	IL_0335:  stloc.s 22
+	IL_0337:  ldarg.0 
+	IL_0338:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_MainClass()
+	IL_033d:  call bool string::IsNullOrEmpty(string)
+	IL_0342:  brtrue IL_035d
 
-	IL_00ac:  nop 
-	IL_00ad:  ldloc.0 
-	IL_00ae:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_00b3:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_00b8:  nop 
-	IL_00b9:  ldarg.0 
-	IL_00ba:  ldloc.0 
-	IL_00bb:  call instance bool class NAnt.DotNet.Tasks.LicenseTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
-	IL_00c0:  brtrue IL_00cb
+	IL_0347:  nop 
+	IL_0348:  ldloc.s 22
+	IL_034a:  ldstr "+"
+	IL_034f:  ldarg.0 
+	IL_0350:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_MainClass()
+	IL_0355:  call string string::Concat(string, string, string)
+	IL_035a:  stloc.s 22
+	IL_035c:  nop 
+	IL_035d:  ldloc.s 16
+	IL_035f:  ldloc.s 22
+	IL_0361:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
+	IL_0366:  stloc.s 23
+	IL_0368:  ldloc.s 23
+	IL_036a:  ldnull 
+	IL_036b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0370:  brfalse IL_0398
 
-	IL_00c5:  nop 
-	IL_00c6:  br IL_02d3
+	IL_0375:  nop 
+	IL_0376:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_037b:  ldstr "NA2030"
+	IL_0380:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0385:  ldloc.s 22
+	IL_0387:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_038c:  ldarg.0 
+	IL_038d:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_0392:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0397:  throw 
+	IL_0398:  ldloc.s 23
+	IL_039a:  ldstr "ScriptMain"
+	IL_039f:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_03a4:  stloc.s 24
+	IL_03a6:  ldloc.s 24
+	IL_03a8:  ldnull 
+	IL_03a9:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_03ae:  brfalse IL_03d8
 
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldc.i4 2000
-	IL_00d1:  ldstr "String_CompilingLicenseUsingTarget"
-	IL_00d6:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00db:  ldc.i4.3 
-	IL_00dc:  newarr [mscorlib]System.Object
-	IL_00e1:  dup 
-	IL_00e2:  ldc.i4.0 
-	IL_00e3:  ldarg.0 
-	IL_00e4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	IL_00e9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00ee:  stelem.ref 
-	IL_00ef:  dup 
-	IL_00f0:  ldc.i4.1 
-	IL_00f1:  ldloc.0 
-	IL_00f2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00f7:  stelem.ref 
-	IL_00f8:  dup 
-	IL_00f9:  ldc.i4.2 
-	IL_00fa:  ldarg.0 
-	IL_00fb:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	IL_0100:  stelem.ref 
-	IL_0101:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0106:  ldarg.0 
-	IL_0107:  call instance bool class NAnt.DotNet.Tasks.LicenseTask::get_HasCommandLineCompiler()
-	IL_010c:  brfalse IL_026d
+	IL_03b3:  nop 
+	IL_03b4:  ldloc.s 21
+	IL_03b6:  brtrue IL_03d2
 
-	IL_0111:  nop 
-	IL_0112:  ldarg.0 
-	IL_0113:  call class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Util.FileUtils::GetTempDirectory()
-	IL_0118:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	.try { // 1
-	  IL_011d:  nop 
-	  IL_011e:  ldarg.0 
-	  IL_011f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_0124:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0129:  ldstr "/target:\"{0}\""
-	  IL_012e:  ldarg.0 
-	  IL_012f:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	  IL_0134:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0139:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_013e:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_0143:  pop 
-	  IL_0144:  ldarg.0 
-	  IL_0145:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_014a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_014f:  ldstr "/complist:\"{0}\""
-	  IL_0154:  ldarg.0 
-	  IL_0155:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	  IL_015a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_015f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0164:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_0169:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_016e:  pop 
-	  IL_016f:  ldarg.0 
-	  IL_0170:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_0175:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_017a:  ldstr "/outdir:\"{0}\""
-	  IL_017f:  ldarg.0 
-	  IL_0180:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	  IL_0185:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_018a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_018f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_0194:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_0199:  pop 
-	  IL_019a:  ldarg.0 
-	  IL_019b:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_01a0:  ldstr "/nologo"
-	  IL_01a5:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_01aa:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_01af:  pop 
-	  IL_01b0:  ldarg.0 
-	  IL_01b1:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_01b6:  brfalse IL_01d3
+	IL_03bb:  nop 
+	IL_03bc:  ldstr "NA2031"
+	IL_03c1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_03c6:  ldarg.0 
+	IL_03c7:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_03cc:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_03d1:  throw 
+	IL_03d2:  nop 
+	IL_03d3:  br IL_04c9
 
-	  IL_01bb:  nop 
-	  IL_01bc:  ldarg.0 
-	  IL_01bd:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_01c2:  ldstr "/v"
-	  IL_01c7:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_01cc:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_01d1:  pop 
-	  IL_01d2:  nop 
-	  IL_01d3:  ldarg.0 
-	  IL_01d4:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_01d9:  ldloc.0 
-	  IL_01da:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01df:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_01e4:  brfalse IL_01f6
+	IL_03d8:  ldloc.s 24
+	IL_03da:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsStatic()
+	IL_03df:  brtrue IL_03fb
 
-	  IL_01e9:  nop 
-	  IL_01ea:  ldloc.0 
-	  IL_01eb:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01f0:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_01f5:  nop 
-	  IL_01f6:  ldarg.0 
-	  IL_01f7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	  IL_01fc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0201:  ldarg.0 
-	  IL_0202:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	  IL_0207:  ldstr ".licenses"
-	  IL_020c:  call string string::Concat(string, string)
-	  IL_0211:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0216:  ldloc.0 
-	  IL_0217:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_021c:  ldc.i4.1 
-	  IL_021d:  call void class [mscorlib]System.IO.File::Copy(string, string, bool)
-	  IL_0222:  nop 
-	  IL_0223:  leave IL_0267
+	IL_03e4:  nop 
+	IL_03e5:  ldstr "NA2032"
+	IL_03ea:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_03ef:  ldarg.0 
+	IL_03f0:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_03f5:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_03fa:  throw 
+	IL_03fb:  ldloc.s 24
+	IL_03fd:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0402:  stloc.s 25
+	IL_0404:  ldloc.s 25
+	IL_0406:  ldlen 
+	IL_0407:  conv.i4 
+	IL_0408:  ldc.i4.1 
+	IL_0409:  beq IL_0425
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0228:  nop 
-	  IL_0229:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
-	  IL_022e:  stloc.2 
-	  IL_022f:  ldloc.2 
-	  IL_0230:  ldarg.0 
-	  IL_0231:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0236:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	  IL_023b:  ldloc.2 
-	  IL_023c:  ldarg.0 
-	  IL_023d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	  IL_0242:  ldloc.2 
-	  IL_0243:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	  IL_0248:  ldloc.2 
-	  IL_0249:  ldarg.0 
-	  IL_024a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	  IL_024f:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_Directory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_0254:  ldloc.2 
-	  IL_0255:  ldc.i4 9999
-	  IL_025a:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	  IL_025f:  ldloc.2 
-	  IL_0260:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0265:  nop 
-	  IL_0266:  endfinally 
-	} // end handler 1
-	IL_0267:  nop 
-	IL_0268:  br IL_02d3
+	IL_040e:  nop 
+	IL_040f:  ldstr "NA2033"
+	IL_0414:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0419:  ldarg.0 
+	IL_041a:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_041f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0424:  throw 
+	IL_0425:  ldloc.s 25
+	IL_0427:  ldc.i4.0 
+	IL_0428:  ldelem.ref 
+	IL_0429:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_042e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0433:  ldtoken [NAnt.Core]NAnt.Core.Project
+	IL_0438:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_043d:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0442:  call bool string::op_Inequality(string, string)
+	IL_0447:  brfalse IL_048a
 
-	IL_026d:  nop 
-	IL_026e:  ldstr "LicenseGatheringDomain"
-	IL_0273:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::CreateDomain(string)
-	IL_0278:  stloc.3 
-	IL_0279:  ldloc.3 
-	IL_027a:  ldtoken NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer
-	IL_027f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0284:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
-	IL_0289:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
-	IL_028e:  ldtoken NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer
-	IL_0293:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0298:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_029d:  ldc.i4.0 
-	IL_029e:  ldc.i4.s 0x14
-	IL_02a0:  ldnull 
-	IL_02a1:  ldc.i4.0 
-	IL_02a2:  newarr [mscorlib]System.Object
-	IL_02a7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02ac:  ldc.i4.0 
-	IL_02ad:  newarr [mscorlib]System.Object
-	IL_02b2:  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_02b7:  castclass NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer
-	IL_02bc:  stloc.s 4
-	IL_02be:  ldloc.s 4
-	IL_02c0:  ldarg.0 
-	IL_02c1:  ldloc.0 
-	IL_02c2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_02c7:  callvirt instance void class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer::CreateLicenseFile(class NAnt.DotNet.Tasks.LicenseTask, string)
-	IL_02cc:  ldloc.3 
-	IL_02cd:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
-	IL_02d2:  nop 
-	IL_02d3:  ret 
-    } // end of method LicenseTask::ExecuteTask
+	IL_044c:  nop 
+	IL_044d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0452:  ldstr "NA2034"
+	IL_0457:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_045c:  ldloc.s 25
+	IL_045e:  ldc.i4.0 
+	IL_045f:  ldelem.ref 
+	IL_0460:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_0465:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_046a:  ldtoken [NAnt.Core]NAnt.Core.Project
+	IL_046f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0474:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0479:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_047e:  ldarg.0 
+	IL_047f:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_0484:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0489:  throw 
+	.try { // 4
+	  IL_048a:  nop 
+	  IL_048b:  ldloc.s 24
+	  IL_048d:  ldnull 
+	  IL_048e:  ldc.i4.1 
+	  IL_048f:  newarr [mscorlib]System.Object
+	  IL_0494:  dup 
+	  IL_0495:  ldc.i4.0 
+	  IL_0496:  ldarg.0 
+	  IL_0497:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_049c:  stelem.ref 
+	  IL_049d:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	  IL_04a2:  pop 
+	  IL_04a3:  nop 
+	  IL_04a4:  leave IL_04c9
 
-    // method line 91
+	} // end .try 4
+	catch class [mscorlib]System.Exception { // 4
+	  IL_04a9:  stloc.s 26
+	  IL_04ab:  nop 
+	  IL_04ac:  ldstr "NA2035"
+	  IL_04b1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_04b6:  ldarg.0 
+	  IL_04b7:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	  IL_04bc:  ldloc.s 26
+	  IL_04be:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	  IL_04c3:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_04c8:  throw 
+	} // end handler 4
+	IL_04c9:  ret 
+    } // end of method ScriptTask::ExecuteTask
+
+    // method line 74
     .method private hidebysig 
-           instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo licensesFile)  cil managed 
+           instance default class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo CreateCompilerInfo (string language)  cil managed 
     {
-        // Method begins at RVA 0x60ec
-	// Code size 214 (0xd6)
-	.maxstack 7
+        // Method begins at RVA 0x36fc
+	// Code size 375 (0x177)
+	.maxstack 3
 	.locals init (
-		bool	V_0,
-		string	V_1)
+		class [System]System.CodeDom.Compiler.CodeDomProvider	V_0,
+		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
+		int32	V_2,
+		class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo	V_3,
+		class [mscorlib]System.Exception	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0007:  brtrue IL_0038
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	.try { // 0
+	  IL_0003:  nop 
+	  IL_0004:  ldarg.1 
+	  IL_0005:  brfalse IL_0137
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldc.i4 2000
-	IL_0013:  ldstr "String_OutputFileDoesNotExist"
-	IL_0018:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  ldc.i4.1 
-	IL_001e:  newarr [mscorlib]System.Object
-	IL_0023:  dup 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  ldarg.1 
-	IL_0026:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002b:  stelem.ref 
-	IL_002c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0031:  ldc.i4.1 
-	IL_0032:  stloc.0 
-	IL_0033:  br IL_00d4
+	  IL_000a:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.DotNet.Tasks.ScriptTask::'<>f__switch$map0'
+	  IL_000f:  brtrue IL_00b2
 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_003e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0043:  ldarg.1 
-	IL_0044:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0049:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_004e:  stloc.1 
-	IL_004f:  ldloc.1 
-	IL_0050:  brfalse IL_007c
+	  IL_0014:  ldc.i4.s 0x0c
+	  IL_0016:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
+	  IL_001b:  stloc.1 
+	  IL_001c:  ldloc.1 
+	  IL_001d:  ldstr "vb"
+	  IL_0022:  ldc.i4.0 
+	  IL_0023:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0028:  ldloc.1 
+	  IL_0029:  ldstr "VB"
+	  IL_002e:  ldc.i4.0 
+	  IL_002f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0034:  ldloc.1 
+	  IL_0035:  ldstr "VISUALBASIC"
+	  IL_003a:  ldc.i4.0 
+	  IL_003b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0040:  ldloc.1 
+	  IL_0041:  ldstr "c#"
+	  IL_0046:  ldc.i4.1 
+	  IL_0047:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_004c:  ldloc.1 
+	  IL_004d:  ldstr "C#"
+	  IL_0052:  ldc.i4.1 
+	  IL_0053:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0058:  ldloc.1 
+	  IL_0059:  ldstr "CSHARP"
+	  IL_005e:  ldc.i4.1 
+	  IL_005f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0064:  ldloc.1 
+	  IL_0065:  ldstr "js"
+	  IL_006a:  ldc.i4.2 
+	  IL_006b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0070:  ldloc.1 
+	  IL_0071:  ldstr "JS"
+	  IL_0076:  ldc.i4.2 
+	  IL_0077:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_007c:  ldloc.1 
+	  IL_007d:  ldstr "JSCRIPT"
+	  IL_0082:  ldc.i4.2 
+	  IL_0083:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0088:  ldloc.1 
+	  IL_0089:  ldstr "vjs"
+	  IL_008e:  ldc.i4.3 
+	  IL_008f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_0094:  ldloc.1 
+	  IL_0095:  ldstr "VJS"
+	  IL_009a:  ldc.i4.3 
+	  IL_009b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_00a0:  ldloc.1 
+	  IL_00a1:  ldstr "JSHARP"
+	  IL_00a6:  ldc.i4.3 
+	  IL_00a7:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	  IL_00ac:  ldloc.1 
+	  IL_00ad:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.DotNet.Tasks.ScriptTask::'<>f__switch$map0'
+	  IL_00b2:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.DotNet.Tasks.ScriptTask::'<>f__switch$map0'
+	  IL_00b7:  ldarg.1 
+	  IL_00b8:  ldloca.s 2
+	  IL_00ba:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
+	  IL_00bf:  brfalse IL_0137
 
-	IL_0055:  nop 
-	IL_0056:  ldarg.0 
-	IL_0057:  ldc.i4 2000
-	IL_005c:  ldstr "String_FileHasBeenUpdated"
-	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:  ldloc.1 
-	IL_006f:  stelem.ref 
-	IL_0070:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0075:  ldc.i4.1 
-	IL_0076:  stloc.0 
-	IL_0077:  br IL_00d4
+	  IL_00c4:  ldloc.2 
+	  IL_00c5:  switch (
+	    IL_00e3,
+	    IL_00f8,
+	    IL_010d,
+	    IL_0122,
+	    IL_0137)
+	  IL_00de:  br IL_0137
 
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	IL_0082:  brfalse IL_00cd
+	  IL_00e3:  ldstr "Microsoft.VisualBasic.VBCodeProvider"
+	  IL_00e8:  ldstr "System, Culture=neutral"
+	  IL_00ed:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
+	  IL_00f2:  stloc.0 
+	  IL_00f3:  leave IL_0143
 
-	IL_0087:  nop 
-	IL_0088:  ldarg.0 
-	IL_0089:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	IL_008e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0093:  ldarg.1 
-	IL_0094:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0099:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_009e:  stloc.1 
-	IL_009f:  ldloc.1 
-	IL_00a0:  brfalse IL_00cc
+	  IL_00f8:  ldstr "Microsoft.CSharp.CSharpCodeProvider"
+	  IL_00fd:  ldstr "System, Culture=neutral"
+	  IL_0102:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
+	  IL_0107:  stloc.0 
+	  IL_0108:  leave IL_0143
 
-	IL_00a5:  nop 
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldc.i4 2000
-	IL_00ac:  ldstr "String_FileHasBeenUpdated"
-	IL_00b1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00b6:  ldc.i4.1 
-	IL_00b7:  newarr [mscorlib]System.Object
-	IL_00bc:  dup 
-	IL_00bd:  ldc.i4.0 
-	IL_00be:  ldloc.1 
-	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_00d4
+	  IL_010d:  ldstr "Microsoft.JScript.JScriptCodeProvider"
+	  IL_0112:  ldstr "Microsoft.JScript, Culture=neutral"
+	  IL_0117:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
+	  IL_011c:  stloc.0 
+	  IL_011d:  leave IL_0143
 
-	IL_00cc:  nop 
-	IL_00cd:  ldc.i4.0 
-	IL_00ce:  stloc.0 
-	IL_00cf:  br IL_00d4
+	  IL_0122:  ldstr "Microsoft.VJSharp.VJSharpCodeProvider"
+	  IL_0127:  ldstr "VJSharpCodeProvider, Culture=neutral"
+	  IL_012c:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
+	  IL_0131:  stloc.0 
+	  IL_0132:  leave IL_0143
 
-	IL_00d4:  ldloc.0 
-	IL_00d5:  ret 
-    } // end of method LicenseTask::NeedsCompiling
+	  IL_0137:  ldarg.1 
+	  IL_0138:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string)
+	  IL_013d:  stloc.0 
+	  IL_013e:  leave IL_0143
 
-	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
-	{
-		.custom instance void class [NAnt.Core]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.
+	  IL_0143:  ldloc.0 
+	  IL_0144:  newobj instance void class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::'.ctor'(class [System]System.CodeDom.Compiler.CodeDomProvider)
+	  IL_0149:  stloc.3 
+	  IL_014a:  leave IL_0175
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::get_InputFile () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_InputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_014f:  stloc.s 4
+	  IL_0151:  nop 
+	  IL_0152:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0157:  ldstr "NA2036"
+	  IL_015c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0161:  ldarg.1 
+	  IL_0162:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0167:  ldarg.0 
+	  IL_0168:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	  IL_016d:  ldloc.s 4
+	  IL_016f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0174:  throw 
+	} // end handler 0
+	IL_0175:  ldloc.3 
+	IL_0176:  ret 
+    } // end of method ScriptTask::CreateCompilerInfo
+
+    // method line 75
+    .method private static hidebysig 
+           default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (string typeName, string assemblyName)  cil managed 
+    {
+        // Method begins at RVA 0x389c
+	// Code size 72 (0x48)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		class [mscorlib]System.Type	V_1,
+		class [System]System.CodeDom.Compiler.CodeDomProvider	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadWithPartialName(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldnull 
+	IL_000a:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
+	IL_000f:  brfalse IL_0030
+
+	IL_0014:  nop 
+	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001a:  ldstr "NA2037"
+	IL_001f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0024:  ldarg.1 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_002f:  throw 
+	IL_0030:  ldloc.0 
+	IL_0031:  ldarg.0 
+	IL_0032:  ldc.i4.1 
+	IL_0033:  ldc.i4.1 
+	IL_0034:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
+	IL_0039:  stloc.1 
+	IL_003a:  ldloc.1 
+	IL_003b:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(class [mscorlib]System.Type)
+	IL_0040:  stloc.2 
+	IL_0041:  br IL_0046
+
+	IL_0046:  ldloc.2 
+	IL_0047:  ret 
+    } // end of method ScriptTask::CreateCodeDomProvider
+
+    // method line 76
+    .method private static hidebysig 
+           default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (string assemblyQualifiedTypeName)  cil managed 
+    {
+        // Method begins at RVA 0x38f0
+	// Code size 24 (0x18)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		class [System]System.CodeDom.Compiler.CodeDomProvider	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.1 
+	IL_0003:  ldc.i4.1 
+	IL_0004:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
+	IL_0009:  stloc.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(class [mscorlib]System.Type)
+	IL_0010:  stloc.1 
+	IL_0011:  br IL_0016
+
+	IL_0016:  ldloc.1 
+	IL_0017:  ret 
+    } // end of method ScriptTask::CreateCodeDomProvider
+
+    // method line 77
+    .method private static hidebysig 
+           default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (class [mscorlib]System.Type providerType)  cil managed 
+    {
+        // Method begins at RVA 0x3914
+	// Code size 66 (0x42)
+	.maxstack 3
+	.locals init (
+		object	V_0,
+		class [System]System.CodeDom.Compiler.CodeDomProvider	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  isinst [System]System.CodeDom.Compiler.CodeDomProvider
+	IL_000e:  brtrue IL_0034
+
+	IL_0013:  nop 
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  ldstr "NA2038"
+	IL_001e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0029:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002e:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0033:  throw 
+	IL_0034:  ldloc.0 
+	IL_0035:  castclass [System]System.CodeDom.Compiler.CodeDomProvider
+	IL_003a:  stloc.1 
+	IL_003b:  br IL_0040
+
+	IL_0040:  ldloc.1 
+	IL_0041:  ret 
+    } // end of method ScriptTask::CreateCodeDomProvider
+
+    // method line 78
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3962
+	// Code size 60 (0x3c)
+	.maxstack 8
+	IL_0000:  ldc.i4.6 
+	IL_0001:  newarr [mscorlib]System.String
+	IL_0006:  dup 
+	IL_0007:  ldc.i4.0 
+	IL_0008:  ldstr "System"
+	IL_000d:  stelem.ref 
+	IL_000e:  dup 
+	IL_000f:  ldc.i4.1 
+	IL_0010:  ldstr "System.Collections"
+	IL_0015:  stelem.ref 
+	IL_0016:  dup 
+	IL_0017:  ldc.i4.2 
+	IL_0018:  ldstr "System.IO"
+	IL_001d:  stelem.ref 
+	IL_001e:  dup 
+	IL_001f:  ldc.i4.3 
+	IL_0020:  ldstr "System.Text"
+	IL_0025:  stelem.ref 
+	IL_0026:  dup 
+	IL_0027:  ldc.i4.4 
+	IL_0028:  ldstr "NAnt.Core"
+	IL_002d:  stelem.ref 
+	IL_002e:  dup 
+	IL_002f:  ldc.i4.5 
+	IL_0030:  ldstr "NAnt.Core.Attributes"
+	IL_0035:  stelem.ref 
+	IL_0036:  stsfld string[] NAnt.DotNet.Tasks.ScriptTask::_defaultNamespaces
+	IL_003b:  ret 
+    } // end of method ScriptTask::.cctor
+
+	.property instance string Language ()
 	{
 		.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 00                            ) // quired.
+		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.
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::get_OutputFile () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.DotNet.Tasks.ScriptTask::get_Language () 
+		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Language (string 'value') 
 	}
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet Assemblies ()
+	.property instance class NAnt.DotNet.Types.AssemblyFileSet References ()
 	{
-		.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 00 00 ) // ...assemblies..
+		.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.LicenseTask::get_Assemblies () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::get_References () 
+		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
 	}
-	.property instance string LicenseTarget ()
+	.property instance string MainClass ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 6C 69 63 65 6E 73 65 74 61 72 67 65 74   // ...licensetarget
-		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.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 23 55 73 65 20 74 68 65 20 22 74 61 72 67   // ..#Use the "targ
-		65 74 22 20 61 74 74 72 69 62 75 74 65 20 69 6E   // et" attribute in
-		73 74 65 61 64 2E 00 00 00                      ) // stead....
+		01 00 09 6D 61 69 6E 63 6C 61 73 73 01 00 54 02   // ...mainclass..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
 
-		.get instance default string NAnt.DotNet.Tasks.LicenseTask::get_LicenseTarget () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_LicenseTarget (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.ScriptTask::get_MainClass () 
+		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_MainClass (string 'value') 
 	}
-	.property instance string Target ()
+	.property instance string Prefix ()
 	{
 		.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
+		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]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.LicenseTask::get_Target () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_Target (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.ScriptTask::get_Prefix () 
+		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Prefix (string 'value') 
 	}
-	.property instance bool SupportsAssemblyReferences ()
+	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 1A 73 75 70 70 6F 72 74 73 61 73 73 65 6D   // ...supportsassem
-		62 6C 79 72 65 66 65 72 65 6E 63 65 73 00 00    ) // blyreferences..
+		.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 bool NAnt.DotNet.Tasks.LicenseTask::get_SupportsAssemblyReferences () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_SupportsAssemblyReferences (bool 'value') 
+		.get instance default class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.ScriptTask::get_Imports () 
+		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value') 
 	}
-	.property instance bool HasCommandLineCompiler ()
+	.property instance class [NAnt.Core]NAnt.Core.Types.RawXml Code ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 16 68 61 73 63 6F 6D 6D 61 6E 64 6C 69 6E   // ...hascommandlin
-		65 63 6F 6D 70 69 6C 65 72 00 00                ) // ecompiler..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 04 63 6F 64 65 01 00 54 02 08 52 65 71 75   // ...code..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-		.get instance default bool NAnt.DotNet.Tasks.LicenseTask::get_HasCommandLineCompiler () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_HasCommandLineCompiler (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.LicenseTask::get_BaseDirectory () 
-		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection Arguments ()
-	{
-		.get instance default class [NAnt.Core]NAnt.Core.Types.ArgumentCollection NAnt.DotNet.Tasks.LicenseTask::get_Arguments () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.LicenseTask::get_ProgramArguments () 
-	}
-	.property instance string ProgramFileName ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.LicenseTask::get_ProgramFileName () 
+		.get instance default class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.ScriptTask::get_Code () 
+		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Code (class [NAnt.Core]NAnt.Core.Types.RawXml 'value') 
 	}
-  .class nested private auto ansi beforefieldinit LicenseGatherer
-  	extends [mscorlib]System.MarshalByRefObject
+  .class nested assembly auto ansi beforefieldinit CompilerInfo
+  	extends [mscorlib]System.Object
   {
+    .field  public initonly  class [System]System.CodeDom.Compiler.ICodeCompiler Compiler
+    .field  public initonly  class [System]System.CodeDom.Compiler.ICodeGenerator CodeGen
 
-    // method line 92
+    // method line 79
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System]System.CodeDom.Compiler.CodeDomProvider provider)  cil managed 
+    {
+        // Method begins at RVA 0x399f
+	// 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:  callvirt instance class [System]System.CodeDom.Compiler.ICodeCompiler class [System]System.CodeDom.Compiler.CodeDomProvider::CreateCompiler()
+	IL_000e:  stfld class [System]System.CodeDom.Compiler.ICodeCompiler NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::Compiler
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance class [System]System.CodeDom.Compiler.ICodeGenerator class [System]System.CodeDom.Compiler.CodeDomProvider::CreateGenerator()
+	IL_001a:  stfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::CodeGen
+	IL_001f:  ret 
+    } // end of method CompilerInfo::.ctor
+
+    // method line 80
+    .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 0x39c0
+	// Code size 492 (0x1ec)
+	.maxstack 4
+	.locals init (
+		class [System]System.CodeDom.CodeCompileUnit	V_0,
+		class [System]System.CodeDom.CodeTypeDeclaration	V_1,
+		class [System]System.CodeDom.CodeConstructor	V_2,
+		class [System]System.CodeDom.CodeAttributeDeclaration	V_3,
+		class [System]System.CodeDom.CodeSnippetTypeMember	V_4,
+		class [System]System.CodeDom.CodeNamespace	V_5,
+		string	V_6,
+		string[]	V_7,
+		int32	V_8,
+		string	V_9,
+		class [System]System.Collections.Specialized.StringEnumerator	V_10,
+		class [mscorlib]System.IDisposable	V_11,
+		class [System]System.CodeDom.CodeCompileUnit	V_12)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System]System.CodeDom.CodeCompileUnit::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.1 
+	IL_0008:  newobj instance void class [System]System.CodeDom.CodeTypeDeclaration::'.ctor'(string)
+	IL_000d:  stloc.1 
+	IL_000e:  ldloc.1 
+	IL_000f:  ldc.i4.1 
+	IL_0010:  callvirt instance void class [System]System.CodeDom.CodeTypeDeclaration::set_IsClass(bool)
+	IL_0015:  ldloc.1 
+	IL_0016:  ldc.i4.1 
+	IL_0017:  callvirt instance void class [System]System.CodeDom.CodeTypeDeclaration::set_TypeAttributes(valuetype [mscorlib]System.Reflection.TypeAttributes)
+	IL_001c:  newobj instance void class [System]System.CodeDom.CodeConstructor::'.ctor'()
+	IL_0021:  stloc.2 
+	IL_0022:  ldloc.2 
+	IL_0023:  ldc.i4 24576
+	IL_0028:  callvirt instance void class [System]System.CodeDom.CodeTypeMember::set_Attributes(valuetype [System]System.CodeDom.MemberAttributes)
+	IL_002d:  ldloc.2 
+	IL_002e:  callvirt instance class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection class [System]System.CodeDom.CodeMemberMethod::get_Parameters()
+	IL_0033:  ldstr "NAnt.Core.Project"
+	IL_0038:  ldstr "project"
+	IL_003d:  newobj instance void class [System]System.CodeDom.CodeParameterDeclarationExpression::'.ctor'(string, string)
+	IL_0042:  callvirt instance int32 class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection::Add(class [System]System.CodeDom.CodeParameterDeclarationExpression)
+	IL_0047:  pop 
+	IL_0048:  ldloc.2 
+	IL_0049:  callvirt instance class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection class [System]System.CodeDom.CodeMemberMethod::get_Parameters()
+	IL_004e:  ldstr "NAnt.Core.PropertyDictionary"
+	IL_0053:  ldstr "propDict"
+	IL_0058:  newobj instance void class [System]System.CodeDom.CodeParameterDeclarationExpression::'.ctor'(string, string)
+	IL_005d:  callvirt instance int32 class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection::Add(class [System]System.CodeDom.CodeParameterDeclarationExpression)
+	IL_0062:  pop 
+	IL_0063:  ldloc.2 
+	IL_0064:  callvirt instance class [System]System.CodeDom.CodeExpressionCollection class [System]System.CodeDom.CodeConstructor::get_BaseConstructorArgs()
+	IL_0069:  ldstr "project"
+	IL_006e:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
+	IL_0073:  callvirt instance int32 class [System]System.CodeDom.CodeExpressionCollection::Add(class [System]System.CodeDom.CodeExpression)
+	IL_0078:  pop 
+	IL_0079:  ldloc.2 
+	IL_007a:  callvirt instance class [System]System.CodeDom.CodeExpressionCollection class [System]System.CodeDom.CodeConstructor::get_BaseConstructorArgs()
+	IL_007f:  ldstr "propDict"
+	IL_0084:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
+	IL_0089:  callvirt instance int32 class [System]System.CodeDom.CodeExpressionCollection::Add(class [System]System.CodeDom.CodeExpression)
+	IL_008e:  pop 
+	IL_008f:  ldloc.1 
+	IL_0090:  callvirt instance class [System]System.CodeDom.CodeTypeMemberCollection class [System]System.CodeDom.CodeTypeDeclaration::get_Members()
+	IL_0095:  ldloc.2 
+	IL_0096:  callvirt instance int32 class [System]System.CodeDom.CodeTypeMemberCollection::Add(class [System]System.CodeDom.CodeTypeMember)
+	IL_009b:  pop 
+	IL_009c:  ldloc.1 
+	IL_009d:  callvirt instance class [System]System.CodeDom.CodeTypeReferenceCollection class [System]System.CodeDom.CodeTypeDeclaration::get_BaseTypes()
+	IL_00a2:  ldtoken [NAnt.Core]NAnt.Core.FunctionSetBase
+	IL_00a7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00ac:  callvirt instance void class [System]System.CodeDom.CodeTypeReferenceCollection::Add(class [mscorlib]System.Type)
+	IL_00b1:  ldstr "FunctionSet"
+	IL_00b6:  newobj instance void class [System]System.CodeDom.CodeAttributeDeclaration::'.ctor'(string)
+	IL_00bb:  stloc.3 
+	IL_00bc:  ldloc.3 
+	IL_00bd:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
+	IL_00c2:  ldstr "\""
+	IL_00c7:  ldarg.s 4
+	IL_00c9:  ldstr "\""
+	IL_00ce:  call string string::Concat(string, string, string)
+	IL_00d3:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
+	IL_00d8:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
+	IL_00dd:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
+	IL_00e2:  pop 
+	IL_00e3:  ldloc.3 
+	IL_00e4:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
+	IL_00e9:  ldstr "\""
+	IL_00ee:  ldarg.s 4
+	IL_00f0:  ldstr "\""
+	IL_00f5:  call string string::Concat(string, string, string)
+	IL_00fa:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
+	IL_00ff:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
+	IL_0104:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
+	IL_0109:  pop 
+	IL_010a:  ldloc.1 
+	IL_010b:  callvirt instance class [System]System.CodeDom.CodeAttributeDeclarationCollection class [System]System.CodeDom.CodeTypeMember::get_CustomAttributes()
+	IL_0110:  ldloc.3 
+	IL_0111:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeDeclarationCollection::Add(class [System]System.CodeDom.CodeAttributeDeclaration)
+	IL_0116:  pop 
+	IL_0117:  ldarg.2 
+	IL_0118:  newobj instance void class [System]System.CodeDom.CodeSnippetTypeMember::'.ctor'(string)
+	IL_011d:  stloc.s 4
+	IL_011f:  ldloc.1 
+	IL_0120:  callvirt instance class [System]System.CodeDom.CodeTypeMemberCollection class [System]System.CodeDom.CodeTypeDeclaration::get_Members()
+	IL_0125:  ldloc.s 4
+	IL_0127:  callvirt instance int32 class [System]System.CodeDom.CodeTypeMemberCollection::Add(class [System]System.CodeDom.CodeTypeMember)
+	IL_012c:  pop 
+	IL_012d:  newobj instance void class [System]System.CodeDom.CodeNamespace::'.ctor'()
+	IL_0132:  stloc.s 5
+	IL_0134:  nop 
+	IL_0135:  ldsfld string[] NAnt.DotNet.Tasks.ScriptTask::_defaultNamespaces
+	IL_013a:  stloc.s 7
+	IL_013c:  ldc.i4.0 
+	IL_013d:  stloc.s 8
+	IL_013f:  br IL_0166
+
+	IL_0144:  ldloc.s 7
+	IL_0146:  ldloc.s 8
+	IL_0148:  ldelem.ref 
+	IL_0149:  stloc.s 6
+	IL_014b:  nop 
+	IL_014c:  ldloc.s 5
+	IL_014e:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
+	IL_0153:  ldloc.s 6
+	IL_0155:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
+	IL_015a:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
+	IL_015f:  nop 
+	IL_0160:  ldloc.s 8
+	IL_0162:  ldc.i4.1 
+	IL_0163:  add 
+	IL_0164:  stloc.s 8
+	IL_0166:  ldloc.s 8
+	IL_0168:  ldloc.s 7
+	IL_016a:  ldlen 
+	IL_016b:  conv.i4 
+	IL_016c:  blt IL_0144
+
+	IL_0171:  nop 
+	IL_0172:  ldarg.3 
+	IL_0173:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0178:  stloc.s 10
+	.try { // 0
+	  IL_017a:  br IL_019d
+
+	  IL_017f:  ldloc.s 10
+	  IL_0181:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0186:  stloc.s 9
+	  IL_0188:  nop 
+	  IL_0189:  ldloc.s 5
+	  IL_018b:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
+	  IL_0190:  ldloc.s 9
+	  IL_0192:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
+	  IL_0197:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
+	  IL_019c:  nop 
+	  IL_019d:  ldloc.s 10
+	  IL_019f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_01a4:  brtrue IL_017f
+
+	  IL_01a9:  leave IL_01c5
+
+	} // end .try 0
+	finally  { // 0
+	  IL_01ae:  ldloc.s 10
+	  IL_01b0:  isinst [mscorlib]System.IDisposable
+	  IL_01b5:  dup 
+	  IL_01b6:  stloc.s 11
+	  IL_01b8:  brfalse IL_01c4
+
+	  IL_01bd:  ldloc.s 11
+	  IL_01bf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01c4:  endfinally 
+	} // end handler 0
+	IL_01c5:  ldloc.0 
+	IL_01c6:  callvirt instance class [System]System.CodeDom.CodeNamespaceCollection class [System]System.CodeDom.CodeCompileUnit::get_Namespaces()
+	IL_01cb:  ldloc.s 5
+	IL_01cd:  callvirt instance int32 class [System]System.CodeDom.CodeNamespaceCollection::Add(class [System]System.CodeDom.CodeNamespace)
+	IL_01d2:  pop 
+	IL_01d3:  ldloc.s 5
+	IL_01d5:  callvirt instance class [System]System.CodeDom.CodeTypeDeclarationCollection class [System]System.CodeDom.CodeNamespace::get_Types()
+	IL_01da:  ldloc.1 
+	IL_01db:  callvirt instance int32 class [System]System.CodeDom.CodeTypeDeclarationCollection::Add(class [System]System.CodeDom.CodeTypeDeclaration)
+	IL_01e0:  pop 
+	IL_01e1:  ldloc.0 
+	IL_01e2:  stloc.s 12
+	IL_01e4:  br IL_01e9
+
+	IL_01e9:  ldloc.s 12
+	IL_01eb:  ret 
+    } // end of method CompilerInfo::GenerateCode
+
+  } // end of class CompilerInfo
+
+  } // end of class NAnt.DotNet.Tasks.ScriptTask
+}
+
+.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 81
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x61ce
+        // Method begins at RVA 0x3bc8
 	// 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]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
 	IL_0006:  ret 
-    } // end of method LicenseGatherer::.ctor
+    } // end of method IlasmTask::.ctor
 
-    // method line 93
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
+    // method line 82
+    .method public hidebysig specialname 
+           instance default bool get_Clock ()  cil managed 
     {
-        // Method begins at RVA 0x61d8
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x3bd0
+	// 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_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_clock
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
 	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_000e:  ret 
+    } // end of method IlasmTask::get_Clock
 
-	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 83
+    .method public hidebysig specialname 
+           instance default void set_Clock (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3beb
+	// 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
 
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method LicenseGatherer::InitializeLifetimeService
+    // method line 84
+    .method public hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
+    {
+        // Method begins at RVA 0x3bf8
+	// 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
 
-    // method line 94
-    .method public hidebysig 
-           instance default void CreateLicenseFile (class NAnt.DotNet.Tasks.LicenseTask licenseTask, string licensesFile)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Debug
+
+    // method line 85
+    .method public hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x6214
-	// Code size 1071 (0x42f)
-	.maxstack 7
+        // 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 bool NAnt.DotNet.Tasks.IlasmTask::_debug
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Debug
+
+    // method line 86
+    .method public hidebysig specialname 
+           instance default bool get_Error ()  cil managed 
+    {
+        // Method begins at RVA 0x3c20
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0,
-		class [NAnt.Core]NAnt.Core.Util.AssemblyResolver	V_1,
-		string	V_2,
-		class [System]System.Collections.Specialized.StringEnumerator	V_3,
-		class [mscorlib]System.Reflection.Assembly	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [System]System.ComponentModel.Design.DesigntimeLicenseContext	V_6,
-		class [mscorlib]System.IO.StreamReader	V_7,
-		class [mscorlib]System.Collections.Hashtable	V_8,
-		string	V_9,
-		string	V_10,
-		class [mscorlib]System.Type	V_11,
-		class [mscorlib]System.Reflection.Assembly	V_12,
-		class [mscorlib]System.Collections.IEnumerator	V_13,
-		class [mscorlib]System.IDisposable	V_14,
-		class [mscorlib]System.Exception	V_15,
-		class [mscorlib]System.IO.FileStream	V_16,
-		class [mscorlib]System.Exception	V_17)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.1 
-	IL_0008:  newobj instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::'.ctor'(class [NAnt.Core]NAnt.Core.Task)
-	IL_000d:  stloc.1 
-	IL_000e:  ldloc.1 
-	IL_000f:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Attach()
-	IL_0014:  ldarg.1 
-	IL_0015:  ldc.i4 2000
-	IL_001a:  ldstr "String_LoadingAssemblies"
-	IL_001f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	.try { // 8
-	  .try { // 6
-	    IL_0029:  nop 
-	    IL_002a:  nop 
-	    IL_002b:  ldarg.1 
-	    IL_002c:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	    IL_0031:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_0036:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	    IL_003b:  stloc.3 
-	    .try { // 0
-	      IL_003c:  br IL_0089
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_error
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	      IL_0041:  ldloc.3 
-	      IL_0042:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	      IL_0047:  stloc.2 
-	      IL_0048:  nop 
-	      IL_0049:  ldloc.2 
-	      IL_004a:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	      IL_004f:  stloc.s 4
-	      IL_0051:  ldloc.s 4
-	      IL_0053:  ldnull 
-	      IL_0054:  call bool class [mscorlib]System.Reflection.Assembly::op_Inequality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
-	      IL_0059:  brfalse IL_0088
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Error
 
-	      IL_005e:  nop 
-	      IL_005f:  ldarg.1 
-	      IL_0060:  ldc.i4 2000
-	      IL_0065:  ldstr "String_AssemblyLoaded"
-	      IL_006a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	      IL_006f:  ldc.i4.1 
-	      IL_0070:  newarr [mscorlib]System.Object
-	      IL_0075:  dup 
-	      IL_0076:  ldc.i4.0 
-	      IL_0077:  ldloc.2 
-	      IL_0078:  stelem.ref 
-	      IL_0079:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	      IL_007e:  ldloc.0 
-	      IL_007f:  ldloc.s 4
-	      IL_0081:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	      IL_0086:  pop 
-	      IL_0087:  nop 
-	      IL_0088:  nop 
-	      IL_0089:  ldloc.3 
-	      IL_008a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	      IL_008f:  brtrue IL_0041
+    // method line 87
+    .method public hidebysig specialname 
+           instance default void set_Error (bool '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 bool NAnt.DotNet.Tasks.IlasmTask::_error
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Error
 
-	      IL_0094:  leave IL_00af
+    // method line 88
+    .method public hidebysig specialname 
+           instance default bool get_ForceRebuild ()  cil managed 
+    {
+        // 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.IlasmTask::_forceRebuild
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	    } // end .try 0
-	    finally  { // 0
-	      IL_0099:  ldloc.3 
-	      IL_009a:  isinst [mscorlib]System.IDisposable
-	      IL_009f:  dup 
-	      IL_00a0:  stloc.s 5
-	      IL_00a2:  brfalse IL_00ae
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_ForceRebuild
 
-	      IL_00a7:  ldloc.s 5
-	      IL_00a9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_00ae:  endfinally 
-	    } // end handler 0
-	    IL_00af:  newobj instance void class [System]System.ComponentModel.Design.DesigntimeLicenseContext::'.ctor'()
-	    IL_00b4:  stloc.s 6
-	    IL_00b6:  ldloc.s 6
-	    IL_00b8:  call void class [System]System.ComponentModel.LicenseManager::set_CurrentContext(class [System]System.ComponentModel.LicenseContext)
-	    IL_00bd:  ldarg.1 
-	    IL_00be:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	    IL_00c3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_00c8:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string)
-	    IL_00cd:  stloc.s 7
-	    .try { // 4
-	      IL_00cf:  nop 
-	      IL_00d0:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	      IL_00d5:  stloc.s 8
-	      IL_00d7:  ldarg.1 
-	      IL_00d8:  ldc.i4 2000
-	      IL_00dd:  ldstr "String_CreatingLicenses"
-	      IL_00e2:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	      IL_00e7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	      IL_00ec:  nop 
-	      IL_00ed:  nop 
-	      IL_00ee:  ldloc.s 7
-	      IL_00f0:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	      IL_00f5:  stloc.s 9
-	      IL_00f7:  ldloc.s 9
-	      IL_00f9:  brtrue IL_0104
+    // method line 89
+    .method public hidebysig specialname 
+           instance default void set_ForceRebuild (bool '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 bool NAnt.DotNet.Tasks.IlasmTask::_forceRebuild
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_ForceRebuild
 
-	      IL_00fe:  nop 
-	      IL_00ff:  leave IL_0322
+    // method line 90
+    .method public hidebysig specialname 
+           instance default bool get_Listing ()  cil managed 
+    {
+        // 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.IlasmTask::_listing
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	      IL_0104:  ldloc.s 9
-	      IL_0106:  callvirt instance string string::Trim()
-	      IL_010b:  stloc.s 9
-	      IL_010d:  ldloc.s 9
-	      IL_010f:  ldstr "#"
-	      IL_0114:  callvirt instance bool string::StartsWith(string)
-	      IL_0119:  brtrue IL_0138
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Listing
 
-	      IL_011e:  ldloc.s 9
-	      IL_0120:  callvirt instance int32 string::get_Length()
-	      IL_0125:  brfalse IL_0138
+    // method line 91
+    .method public hidebysig specialname 
+           instance default void set_Listing (bool '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 bool NAnt.DotNet.Tasks.IlasmTask::_listing
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Listing
 
-	      IL_012a:  ldloc.s 8
-	      IL_012c:  ldloc.s 9
-	      IL_012e:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	      IL_0133:  brfalse IL_013e
+    // method line 92
+    .method public hidebysig specialname 
+           instance default int32 get_Alignment ()  cil managed 
+    {
+        // Method begins at RVA 0x3c98
+	// 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_0138:  nop 
-	      IL_0139:  leave IL_00ec
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Alignment
 
-	      IL_013e:  ldarg.1 
-	      IL_013f:  ldc.i4 2000
-	      IL_0144:  ldloc.s 9
-	      IL_0146:  ldstr ": "
-	      IL_014b:  call string string::Concat(string, string)
-	      IL_0150:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	      IL_0155:  ldloc.s 9
-	      IL_0157:  ldc.i4.s 0x2c
-	      IL_0159:  callvirt instance int32 string::IndexOf(char)
-	      IL_015e:  ldc.i4.m1 
-	      IL_015f:  beq IL_0179
+    // method line 93
+    .method public hidebysig specialname 
+           instance default void set_Alignment (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3cb3
+	// 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
 
-	      IL_0164:  nop 
-	      IL_0165:  ldloc.s 9
-	      IL_0167:  ldc.i4.s 0x2c
-	      IL_0169:  ldc.i4.0 
-	      IL_016a:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	      IL_016f:  ldc.i4.0 
-	      IL_0170:  ldelem.ref 
-	      IL_0171:  stloc.s 10
-	      IL_0173:  nop 
-	      IL_0174:  br IL_017f
+    // method line 94
+    .method public hidebysig specialname 
+           instance default int32 get_Base ()  cil managed 
+    {
+        // Method begins at RVA 0x3cc0
+	// 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_0179:  nop 
-	      IL_017a:  ldloc.s 9
-	      IL_017c:  stloc.s 10
-	      IL_017e:  nop 
-	      IL_017f:  ldnull 
-	      IL_0180:  stloc.s 11
-	      IL_0182:  nop 
-	      IL_0183:  ldloc.0 
-	      IL_0184:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	      IL_0189:  stloc.s 13
-	      .try { // 1
-	        IL_018b:  br IL_01cf
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Base
 
-	        IL_0190:  ldloc.s 13
-	        IL_0192:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	        IL_0197:  castclass [mscorlib]System.Reflection.Assembly
-	        IL_019c:  stloc.s 12
-	        IL_019e:  nop 
-	        IL_019f:  ldloc.s 11
-	        IL_01a1:  ldnull 
-	        IL_01a2:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	        IL_01a7:  brfalse IL_01bb
+    // method line 95
+    .method public hidebysig specialname 
+           instance default void set_Base (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3cdb
+	// 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
 
-	        IL_01ac:  nop 
-	        IL_01ad:  ldloc.s 12
-	        IL_01af:  ldloc.s 10
-	        IL_01b1:  ldc.i4.0 
-	        IL_01b2:  ldc.i4.1 
-	        IL_01b3:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
-	        IL_01b8:  stloc.s 11
-	        IL_01ba:  nop 
-	        IL_01bb:  ldloc.s 11
-	        IL_01bd:  ldnull 
-	        IL_01be:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	        IL_01c3:  brfalse IL_01ce
+    // method line 96
+    .method public hidebysig specialname 
+           instance default int32 get_Flags ()  cil managed 
+    {
+        // Method begins at RVA 0x3ce8
+	// 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_01c8:  nop 
-	        IL_01c9:  leave IL_01db
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Flags
 
-	        IL_01ce:  nop 
-	        IL_01cf:  ldloc.s 13
-	        IL_01d1:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	        IL_01d6:  brtrue IL_0190
+    // method line 97
+    .method public hidebysig specialname 
+           instance default void set_Flags (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d03
+	// 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
 
-	        IL_01db:  leave IL_01f7
+    // method line 98
+    .method public hidebysig specialname 
+           instance default int32 get_Subsystem ()  cil managed 
+    {
+        // Method begins at RVA 0x3d10
+	// 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
 
-	      } // end .try 1
-	      finally  { // 1
-	        IL_01e0:  ldloc.s 13
-	        IL_01e2:  isinst [mscorlib]System.IDisposable
-	        IL_01e7:  dup 
-	        IL_01e8:  stloc.s 14
-	        IL_01ea:  brfalse IL_01f6
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Subsystem
 
-	        IL_01ef:  ldloc.s 14
-	        IL_01f1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	        IL_01f6:  endfinally 
-	      } // end handler 1
-	      IL_01f7:  ldloc.s 11
-	      IL_01f9:  ldnull 
-	      IL_01fa:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	      IL_01ff:  brfalse IL_0220
+    // method line 99
+    .method public hidebysig specialname 
+           instance default void set_Subsystem (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d2b
+	// 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
 
-	      IL_0204:  nop 
-	      .try { // 2
-	        IL_0205:  nop 
-	        IL_0206:  ldloc.s 9
-	        IL_0208:  ldc.i4.0 
-	        IL_0209:  ldc.i4.0 
-	        IL_020a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
-	        IL_020f:  stloc.s 11
-	        IL_0211:  nop 
-	        IL_0212:  leave IL_021f
+    // method line 100
+    .method public hidebysig specialname 
+           instance default string get_Target ()  cil managed 
+    {
+        // Method begins at RVA 0x3d38
+	// 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
 
-	      } // end .try 2
-	      catch class [mscorlib]System.Object { // 2
-	        IL_0217:  pop 
-	        IL_0218:  nop 
-	        IL_0219:  nop 
-	        IL_021a:  leave IL_021f
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Target
 
-	      } // end handler 2
-	      IL_021f:  nop 
-	      IL_0220:  ldloc.s 11
-	      IL_0222:  ldnull 
-	      IL_0223:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	      IL_0228:  brfalse IL_0250
+    // method line 101
+    .method public hidebysig specialname 
+           instance default void set_Target (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d53
+	// 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
 
-	      IL_022d:  nop 
-	      IL_022e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	      IL_0233:  ldstr "NA2016"
-	      IL_0238:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	      IL_023d:  ldloc.s 10
-	      IL_023f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	      IL_0244:  ldarg.1 
-	      IL_0245:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	      IL_024a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	      IL_024f:  throw 
-	      IL_0250:  nop 
-	      IL_0251:  ldloc.s 8
-	      IL_0253:  ldloc.s 9
-	      IL_0255:  ldloc.s 11
-	      IL_0257:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	      IL_025c:  nop 
-	      IL_025d:  ldloc.s 11
-	      IL_025f:  ldtoken [System]System.ComponentModel.LicenseProviderAttribute
-	      IL_0264:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	      IL_0269:  ldc.i4.1 
-	      IL_026a:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	      IL_026f:  ldlen 
-	      IL_0270:  conv.i4 
-	      IL_0271:  brtrue IL_029e
+    // method line 102
+    .method public hidebysig specialname 
+           instance default string get_KeySource ()  cil managed 
+    {
+        // Method begins at RVA 0x3d64
+	// 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_0276:  nop 
-	      IL_0277:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	      IL_027c:  ldstr "NA2017"
-	      IL_0281:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	      IL_0286:  ldloc.s 11
-	      IL_0288:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	      IL_028d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	      IL_0292:  ldarg.1 
-	      IL_0293:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	      IL_0298:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	      IL_029d:  throw 
-	      .try { // 3
-	        IL_029e:  nop 
-	        IL_029f:  ldloc.s 11
-	        IL_02a1:  ldloc.s 6
-	        IL_02a3:  call object class [System]System.ComponentModel.LicenseManager::CreateWithContext(class [mscorlib]System.Type, class [System]System.ComponentModel.LicenseContext)
-	        IL_02a8:  pop 
-	        IL_02a9:  nop 
-	        IL_02aa:  leave IL_031c
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_KeySource
 
-	      } // end .try 3
-	      catch class [mscorlib]System.Exception { // 3
-	        IL_02af:  stloc.s 15
-	        IL_02b1:  nop 
-	        IL_02b2:  ldarg.0 
-	        IL_02b3:  ldloc.s 15
-	        IL_02b5:  call instance bool class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer::IsSerializable(object)
-	        IL_02ba:  brfalse IL_02e9
+    // method line 103
+    .method public hidebysig specialname 
+           instance default void set_KeySource (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d7f
+	// 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
 
-	        IL_02bf:  nop 
-	        IL_02c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	        IL_02c5:  ldstr "NA2018"
-	        IL_02ca:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	        IL_02cf:  ldloc.s 11
-	        IL_02d1:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	        IL_02d6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	        IL_02db:  ldarg.1 
-	        IL_02dc:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	        IL_02e1:  ldloc.s 15
-	        IL_02e3:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	        IL_02e8:  throw 
-	        IL_02e9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	        IL_02ee:  ldstr "NA2018"
-	        IL_02f3:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	        IL_02f8:  ldloc.s 11
-	        IL_02fa:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	        IL_02ff:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	        IL_0304:  ldarg.1 
-	        IL_0305:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	        IL_030a:  ldloc.s 15
-	        IL_030c:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	        IL_0311:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
-	        IL_0316:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	        IL_031b:  throw 
-	      } // end handler 3
-	      IL_031c:  nop 
-	      IL_031d:  br IL_00ec
+    // method line 104
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3d8c
+	// 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_0322:  nop 
-	      IL_0323:  leave IL_0337
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_KeyFile
 
-	    } // end .try 4
-	    finally  { // 4
-	      IL_0328:  ldloc.s 7
-	      IL_032a:  brfalse IL_0336
+    // method line 105
+    .method public hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3da7
+	// 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
 
-	      IL_032f:  ldloc.s 7
-	      IL_0331:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_0336:  endfinally 
-	    } // end handler 4
-	    IL_0337:  ldarg.2 
-	    IL_0338:  call bool class [mscorlib]System.IO.File::Exists(string)
-	    IL_033d:  brfalse IL_0355
+    // method line 106
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3db4
+	// 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_0342:  nop 
-	    IL_0343:  ldarg.2 
-	    IL_0344:  ldc.i4 128
-	    IL_0349:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	    IL_034e:  ldarg.2 
-	    IL_034f:  call void class [mscorlib]System.IO.File::Delete(string)
-	    IL_0354:  nop 
-	    IL_0355:  ldarg.2 
-	    IL_0356:  ldc.i4.2 
-	    IL_0357:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
-	    IL_035c:  stloc.s 16
-	    .try { // 5
-	      IL_035e:  nop 
-	      IL_035f:  ldloc.s 16
-	      IL_0361:  ldarg.1 
-	      IL_0362:  callvirt instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
-	      IL_0367:  ldloc.s 6
-	      IL_0369:  call void class [System]System.ComponentModel.Design.DesigntimeLicenseContextSerializer::Serialize(class [mscorlib]System.IO.Stream, string, class [System]System.ComponentModel.Design.DesigntimeLicenseContext)
-	      IL_036e:  ldarg.1 
-	      IL_036f:  ldc.i4 2000
-	      IL_0374:  ldstr "String_CreatedNewLicense"
-	      IL_0379:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	      IL_037e:  ldc.i4.1 
-	      IL_037f:  newarr [mscorlib]System.Object
-	      IL_0384:  dup 
-	      IL_0385:  ldc.i4.0 
-	      IL_0386:  ldarg.2 
-	      IL_0387:  stelem.ref 
-	      IL_0388:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	      IL_038d:  nop 
-	      IL_038e:  leave IL_03a2
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_OutputFile
 
-	    } // end .try 5
-	    finally  { // 5
-	      IL_0393:  ldloc.s 16
-	      IL_0395:  brfalse IL_03a1
+    // method line 107
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3dcf
+	// 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
 
-	      IL_039a:  ldloc.s 16
-	      IL_039c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_03a1:  endfinally 
-	    } // end handler 5
-	    IL_03a2:  ldnull 
-	    IL_03a3:  stloc.s 6
-	    IL_03a5:  nop 
-	    IL_03a6:  leave IL_042e
+    // method line 108
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ResourceFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3ddc
+	// 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
 
-	  } // end .try 6
-	  catch class [NAnt.Core]NAnt.Core.BuildException { // 6
-	    IL_03ab:  pop 
-	    IL_03ac:  nop 
-	    IL_03ad:  rethrow 
-	  } // end handler 6
-	  catch class [mscorlib]System.Exception { // 7
-	    IL_03af:  stloc.s 17
-	    IL_03b1:  nop 
-	    IL_03b2:  ldarg.0 
-	    IL_03b3:  ldloc.s 17
-	    IL_03b5:  call instance bool class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer::IsSerializable(object)
-	    IL_03ba:  brfalse IL_03ed
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_ResourceFile
 
-	    IL_03bf:  nop 
-	    IL_03c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_03c5:  ldstr "NA2019"
-	    IL_03ca:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_03cf:  ldarg.1 
-	    IL_03d0:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	    IL_03d5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_03da:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_03df:  ldarg.1 
-	    IL_03e0:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	    IL_03e5:  ldloc.s 17
-	    IL_03e7:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_03ec:  throw 
-	    IL_03ed:  nop 
-	    IL_03ee:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_03f3:  ldstr "NA2019"
-	    IL_03f8:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_03fd:  ldarg.1 
-	    IL_03fe:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
-	    IL_0403:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_0408:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_040d:  ldarg.1 
-	    IL_040e:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	    IL_0413:  ldloc.s 17
-	    IL_0415:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_041a:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
-	    IL_041f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_0424:  throw 
-	  } // end handler 7
-	} // end .try 8
-	finally  { // 8
-	  IL_0425:  nop 
-	  IL_0426:  ldloc.1 
-	  IL_0427:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Detach()
-	  IL_042c:  nop 
-	  IL_042d:  endfinally 
-	} // end handler 8
-	IL_042e:  ret 
-    } // end of method LicenseGatherer::CreateLicenseFile
+    // method line 109
+    .method public hidebysig specialname 
+           instance default void set_ResourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3df7
+	// 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 95
+    // method line 110
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
+    {
+        // Method begins at RVA 0x3e04
+	// 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 111
+    .method public hidebysig specialname 
+           instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3e1f
+	// 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 112
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x3e2c
+	// 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 113
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x3e48
+	// 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 114
     .method private hidebysig 
-           instance default bool IsSerializable (object 'value')  cil managed 
+           instance default void WriteOptions ()  cil managed 
     {
-        // Method begins at RVA 0x672c
-	// Code size 49 (0x31)
-	.maxstack 3
+        // Method begins at RVA 0x3ee0
+	// Code size 636 (0x27c)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.Runtime.Serialization.Formatters.Binary.BinaryFormatter	V_0,
-		class [mscorlib]System.IO.MemoryStream	V_1,
-		bool	V_2)
+		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.Runtime.Serialization.Formatters.Binary.BinaryFormatter::'.ctor'()
+	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
-	IL_000c:  stloc.1 
 	.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_000d:  nop 
-	    IL_000e:  ldloc.0 
-	    IL_000f:  ldloc.1 
-	    IL_0010:  ldarg.1 
-	    IL_0011:  callvirt instance void class [mscorlib]System.Runtime.Serialization.Formatters.Binary.BinaryFormatter::Serialize(class [mscorlib]System.IO.Stream, object)
-	    IL_0016:  ldc.i4.1 
-	    IL_0017:  stloc.2 
-	    IL_0018:  leave IL_002f
+	    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
-	  catch class [mscorlib]System.Runtime.Serialization.SerializationException { // 0
-	    IL_001d:  pop 
-	    IL_001e:  nop 
-	    IL_001f:  ldc.i4.0 
-	    IL_0020:  stloc.2 
-	    IL_0021:  leave IL_002f
+	  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_0026:  nop 
-	  IL_0027:  ldloc.1 
-	  IL_0028:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
-	  IL_002d:  nop 
-	  IL_002e:  endfinally 
+	  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_002f:  ldloc.2 
-	IL_0030:  ret 
-    } // end of method LicenseGatherer::IsSerializable
+	IL_027b:  ret 
+    } // end of method IlasmTask::WriteOptions
 
-  } // end of class LicenseGatherer
+    // method line 115
+    .method private hidebysig 
+           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name)  cil managed 
+    {
+        // Method begins at RVA 0x419c
+	// 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
 
-  } // end of class NAnt.DotNet.Tasks.LicenseTask
+    // method line 116
+    .method private hidebysig 
+           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name, string arg)  cil managed 
+    {
+        // Method begins at RVA 0x41ab
+	// 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 117
+    .method private hidebysig 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x41bc
+	// 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
@@ -3898,11 +4894,11 @@
     .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
     .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
 
-    // method line 96
+    // method line 118
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x6788
+        // Method begins at RVA 0x4330
 	// Code size 47 (0x2f)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -3922,11 +4918,11 @@
 	IL_002e:  ret 
     } // end of method AssemblyInfoTask::.ctor
 
-    // method line 97
+    // method line 119
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0x67b8
+        // Method begins at RVA 0x4360
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3941,11 +4937,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyInfoTask::get_Output
 
-    // method line 98
+    // method line 120
     .method public hidebysig specialname 
            instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x67d3
+        // Method begins at RVA 0x437b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3955,11 +4951,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyInfoTask::set_Output
 
-    // method line 99
+    // method line 121
     .method public hidebysig specialname 
            instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage get_Language ()  cil managed 
     {
-        // Method begins at RVA 0x67e0
+        // Method begins at RVA 0x4388
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3974,11 +4970,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyInfoTask::get_Language
 
-    // method line 100
+    // method line 122
     .method public hidebysig specialname 
            instance default void set_Language (valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage 'value')  cil managed 
     {
-        // Method begins at RVA 0x67fc
+        // Method begins at RVA 0x43a4
 	// Code size 70 (0x46)
 	.maxstack 3
 	IL_0000:  nop 
@@ -4006,11 +5002,11 @@
 	IL_0045:  ret 
     } // end of method AssemblyInfoTask::set_Language
 
-    // method line 101
+    // method line 123
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyAttributeCollection get_AssemblyAttributes ()  cil managed 
     {
-        // Method begins at RVA 0x6850
+        // Method begins at RVA 0x43f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4025,11 +5021,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyInfoTask::get_AssemblyAttributes
 
-    // method line 102
+    // method line 124
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
     {
-        // Method begins at RVA 0x686c
+        // Method begins at RVA 0x4414
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4044,11 +5040,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyInfoTask::get_Imports
 
-    // method line 103
+    // method line 125
     .method public hidebysig specialname 
            instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x6887
+        // Method begins at RVA 0x442f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4058,11 +5054,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyInfoTask::set_Imports
 
-    // method line 104
+    // method line 126
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x6894
+        // Method begins at RVA 0x443c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4077,11 +5073,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyInfoTask::get_References
 
-    // method line 105
+    // method line 127
     .method public hidebysig specialname 
            instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x68af
+        // Method begins at RVA 0x4457
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4091,11 +5087,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyInfoTask::set_References
 
-    // method line 106
+    // method line 128
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x68bc
+        // Method begins at RVA 0x4464
 	// Code size 512 (0x200)
 	.maxstack 7
 	.locals init (
@@ -4317,11 +5313,11 @@
 	IL_01ff:  ret 
     } // end of method AssemblyInfoTask::ExecuteTask
 
-    // method line 107
+    // method line 129
     .method private hidebysig 
            instance default bool NeedsPersisting (class [mscorlib]System.IO.Stream generatedAsmInfoStream)  cil managed 
     {
-        // Method begins at RVA 0x6b2c
+        // Method begins at RVA 0x46d4
 	// Code size 230 (0xe6)
 	.maxstack 7
 	.locals init (
@@ -4489,11 +5485,11 @@
     .field  private initonly  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage _language
     .field  private initonly  class [System]System.CodeDom.Compiler.ICodeGenerator _generator
 
-    // method line 108
+    // method line 130
     .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 0x6c30
+        // Method begins at RVA 0x47d8
 	// Code size 106 (0x6a)
 	.maxstack 2
 	.locals init (
@@ -4536,11 +5532,11 @@
 	IL_0069:  ret 
     } // end of method CodeProvider::.ctor
 
-    // method line 109
+    // method line 131
     .method private hidebysig specialname 
            instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage get_Language ()  cil managed 
     {
-        // Method begins at RVA 0x6ca8
+        // Method begins at RVA 0x4850
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4555,11 +5551,11 @@
 	IL_000e:  ret 
     } // end of method CodeProvider::get_Language
 
-    // method line 110
+    // method line 132
     .method private hidebysig specialname 
            instance default class [System]System.CodeDom.Compiler.ICodeGenerator get_Generator ()  cil managed 
     {
-        // Method begins at RVA 0x6cc4
+        // Method begins at RVA 0x486c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4574,11 +5570,11 @@
 	IL_000e:  ret 
     } // end of method CodeProvider::get_Generator
 
-    // method line 111
+    // method line 133
     .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 0x6ce0
+        // Method begins at RVA 0x4888
 	// Code size 101 (0x65)
 	.maxstack 4
 	.locals init (
@@ -4633,11 +5629,11 @@
 	IL_0064:  ret 
     } // end of method CodeProvider::GenerateImportCode
 
-    // method line 112
+    // method line 134
     .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 0x6d64
+        // Method begins at RVA 0x490c
 	// Code size 353 (0x161)
 	.maxstack 4
 	.locals init (
@@ -4797,11 +5793,11 @@
 	IL_0160:  ret 
     } // end of method CodeProvider::GenerateAssemblyAttributesCode
 
-    // method line 113
+    // method line 135
     .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 0x6ef0
+        // Method begins at RVA 0x4a98
 	// Code size 151 (0x97)
 	.maxstack 9
 	.locals init (
@@ -4875,11 +5871,11 @@
   	extends [mscorlib]System.MarshalByRefObject
   {
 
-    // method line 114
+    // method line 136
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x6f93
+        // Method begins at RVA 0x4b3b
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -4887,11 +5883,11 @@
 	IL_0006:  ret 
     } // end of method TypedValueGatherer::.ctor
 
-    // method line 115
+    // method line 137
     .method public virtual hidebysig 
            instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0x6f9c
+        // Method begins at RVA 0x4b44
 	// Code size 47 (0x2f)
 	.maxstack 2
 	.locals init (
@@ -4920,11 +5916,11 @@
 	IL_002e:  ret 
     } // end of method TypedValueGatherer::InitializeLifetimeService
 
-    // method line 116
+    // method line 138
     .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 0x6fd8
+        // Method begins at RVA 0x4b80
 	// Code size 467 (0x1d3)
 	.maxstack 5
 	.locals init (
@@ -5128,11 +6124,11 @@
 	IL_01d2:  ret 
     } // end of method TypedValueGatherer::GetTypedValue
 
-    // method line 117
+    // method line 139
     .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 0x71ec
+        // Method begins at RVA 0x4d94
 	// Code size 369 (0x171)
 	.maxstack 4
 	.locals init (
@@ -5332,5395 +6328,4724 @@
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit VjcTask
-  	extends NAnt.DotNet.Tasks.CompilerBase
+  .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 03 76 6A 63 00 00 ) // ...vjc..
+    .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  string _baseAddress
-    .field  private  valuetype NAnt.DotNet.Types.DebugOutput _debugOutput
-    .field  private  bool _secureScoping
-    .field  private  string _x
-    .field  private  string _libPath
-    .field  private  string _jcpa
-    .field  private  string _codepage
-    .field  private  string _warningLevel
-    .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.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 118
+    // method line 140
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x7394
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x4f3c
+	// Code size 56 (0x38)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VjcTask::_debugOutput
+	IL_0001:  ldnull 
+	IL_0002:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
-	IL_000d:  ret 
-    } // end of method VjcTask::.ctor
+	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 119
+    // method line 141
     .method public hidebysig specialname 
-           instance default string get_BaseAddress ()  cil managed 
+           instance default valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType get_Action ()  cil managed 
     {
-        // Method begins at RVA 0x73a4
+        // Method begins at RVA 0x4f78
 	// 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.VjcTask::_baseAddress
+	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 VjcTask::get_BaseAddress
+    } // end of method RegsvcsTask::get_Action
 
-    // method line 120
+    // method line 142
     .method public hidebysig specialname 
-           instance default void set_BaseAddress (string 'value')  cil managed 
+           instance default void set_Action (valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType 'value')  cil managed 
     {
-        // Method begins at RVA 0x73bf
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x4f94
+	// Code size 70 (0x46)
+	.maxstack 3
 	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.VjcTask::_baseAddress
-	IL_000d:  ret 
-    } // end of method VjcTask::set_BaseAddress
+	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
 
-    // method line 121
+	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 143
     .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
     {
-        // Method begins at RVA 0x73d0
+        // Method begins at RVA 0x4fe8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VjcTask::_debugOutput
+	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 VjcTask::get_DebugOutput
+    } // end of method RegsvcsTask::get_AssemblyFile
 
-    // method line 122
+    // method line 144
     .method public hidebysig specialname 
-           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
+           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x73eb
+        // Method begins at RVA 0x5003
 	// 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.VjcTask::_debugOutput
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_assemblyFile
 	IL_0008:  ret 
-    } // end of method VjcTask::set_DebugOutput
+    } // end of method RegsvcsTask::set_AssemblyFile
 
-    // method line 123
-    .method public virtual hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+    // method line 145
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_TypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x73f8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x5010
+	// 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:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VjcTask::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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_typeLibrary
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method VjcTask::get_Debug
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RegsvcsTask::get_TypeLibrary
 
-    // method line 124
-    .method public virtual hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+    // method line 146
+    .method public hidebysig specialname 
+           instance default void set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x7419
+        // Method begins at RVA 0x502b
 	// 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.VjcTask::set_DebugOutput(valuetype NAnt.DotNet.Types.DebugOutput)
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_typeLibrary
 	IL_0008:  ret 
-    } // end of method VjcTask::set_Debug
+    } // end of method RegsvcsTask::set_TypeLibrary
 
-    // method line 125
+    // method line 147
     .method public hidebysig specialname 
-           instance default bool get_SecureScoping ()  cil managed 
+           instance default bool get_ExistingTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x7424
+        // Method begins at RVA 0x5038
 	// 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.VjcTask::_secureScoping
+	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 VjcTask::get_SecureScoping
+    } // end of method RegsvcsTask::get_ExistingTypeLibrary
 
-    // method line 126
+    // method line 148
     .method public hidebysig specialname 
-           instance default void set_SecureScoping (bool 'value')  cil managed 
+           instance default void set_ExistingTypeLibrary (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x743f
+        // Method begins at RVA 0x5053
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VjcTask::_secureScoping
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
 	IL_0008:  ret 
-    } // end of method VjcTask::set_SecureScoping
+    } // end of method RegsvcsTask::set_ExistingTypeLibrary
 
-    // method line 127
+    // method line 149
     .method public hidebysig specialname 
-           instance default string get_X ()  cil managed 
+           instance default bool get_NoReconfig ()  cil managed 
     {
-        // Method begins at RVA 0x744c
+        // Method begins at RVA 0x5060
 	// 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.VjcTask::_x
+	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 VjcTask::get_X
+    } // end of method RegsvcsTask::get_NoReconfig
 
-    // method line 128
+    // method line 150
     .method public hidebysig specialname 
-           instance default void set_X (string 'value')  cil managed 
+           instance default void set_NoReconfig (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7467
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x507b
+	// 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.VjcTask::_x
-	IL_000d:  ret 
-    } // end of method VjcTask::set_X
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
+	IL_0008:  ret 
+    } // end of method RegsvcsTask::set_NoReconfig
 
-    // method line 129
+    // method line 151
     .method public hidebysig specialname 
-           instance default string get_LibPath ()  cil managed 
+           instance default bool get_ComponentsOnly ()  cil managed 
     {
-        // Method begins at RVA 0x7478
+        // Method begins at RVA 0x5088
 	// 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.VjcTask::_libPath
+	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 VjcTask::get_LibPath
+    } // end of method RegsvcsTask::get_ComponentsOnly
 
-    // method line 130
+    // method line 152
     .method public hidebysig specialname 
-           instance default void set_LibPath (string 'value')  cil managed 
+           instance default void set_ComponentsOnly (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7493
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x50a3
+	// 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.VjcTask::_libPath
-	IL_000d:  ret 
-    } // end of method VjcTask::set_LibPath
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
+	IL_0008:  ret 
+    } // end of method RegsvcsTask::set_ComponentsOnly
 
-    // method line 131
+    // method line 153
     .method public hidebysig specialname 
-           instance default string get_Jcpa ()  cil managed 
+           instance default bool get_ExistingApplication ()  cil managed 
     {
-        // Method begins at RVA 0x74a4
+        // Method begins at RVA 0x50b0
 	// 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.VjcTask::_jcpa
+	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 VjcTask::get_Jcpa
+    } // end of method RegsvcsTask::get_ExistingApplication
 
-    // method line 132
+    // method line 154
     .method public hidebysig specialname 
-           instance default void set_Jcpa (string 'value')  cil managed 
+           instance default void set_ExistingApplication (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x74bf
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x50cb
+	// 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.VjcTask::_jcpa
-	IL_000d:  ret 
-    } // end of method VjcTask::set_Jcpa
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
+	IL_0008:  ret 
+    } // end of method RegsvcsTask::set_ExistingApplication
 
-    // method line 133
+    // method line 155
     .method public hidebysig specialname 
-           instance default string get_Codepage ()  cil managed 
+           instance default string get_ApplicationName ()  cil managed 
     {
-        // Method begins at RVA 0x74d0
+        // Method begins at RVA 0x50d8
 	// 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.VjcTask::_codepage
+	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 VjcTask::get_Codepage
+    } // end of method RegsvcsTask::get_ApplicationName
 
-    // method line 134
+    // method line 156
     .method public hidebysig specialname 
-           instance default void set_Codepage (string 'value')  cil managed 
+           instance default void set_ApplicationName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x74eb
+        // Method begins at RVA 0x50f3
 	// 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.VjcTask::_codepage
+	IL_0008:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_applicationName
 	IL_000d:  ret 
-    } // end of method VjcTask::set_Codepage
+    } // end of method RegsvcsTask::set_ApplicationName
 
-    // method line 135
+    // method line 157
     .method public hidebysig specialname 
-           instance default string get_WarningLevel ()  cil managed 
+           instance default string get_PartitionName ()  cil managed 
     {
-        // Method begins at RVA 0x74fc
+        // Method begins at RVA 0x5104
 	// 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.VjcTask::_warningLevel
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VjcTask::get_WarningLevel
+    } // end of method RegsvcsTask::get_PartitionName
 
-    // method line 136
+    // method line 158
     .method public hidebysig specialname 
-           instance default void set_WarningLevel (string 'value')  cil managed 
+           instance default void set_PartitionName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7517
+        // Method begins at RVA 0x511f
 	// 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.VjcTask::_warningLevel
+	IL_0008:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
 	IL_000d:  ret 
-    } // end of method VjcTask::set_WarningLevel
-
-    // method line 137
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
-    {
-        // Method begins at RVA 0x7528
-	// 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 VjcTask::get_WarningAsError
+    } // end of method RegsvcsTask::set_PartitionName
 
-    // method line 138
+    // method line 159
     .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.PackageCollection get_Packages ()  cil managed 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x7544
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x5130
+	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.PackageCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.PackageCollection class NAnt.DotNet.Tasks.CompilerBase::get_Packages()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VjcTask::get_Packages
-
-    // method line 139
-    .method public virtual hidebysig specialname 
-           instance default void set_Packages (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x755f
-	// Code size 9 (0x9)
-	.maxstack 8
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_Packages(class NAnt.DotNet.Types.PackageCollection)
-	IL_0008:  ret 
-    } // end of method VjcTask::set_Packages
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0007:  brfalse IL_001e
 
-    // method line 140
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
-    {
-        // Method begins at RVA 0x756c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	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_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 VjcTask::get_Modules
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-    // method line 141
-    .method public virtual hidebysig specialname 
-           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7587
-	// 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_Modules(class NAnt.DotNet.Types.AssemblyFileSet)
-	IL_0008:  ret 
-    } // end of method VjcTask::set_Modules
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method RegsvcsTask::get_ProgramArguments
 
-    // method line 142
+    // method line 160
     .method family virtual hidebysig 
-           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x7591
-	// Code size 47 (0x2f)
-	.maxstack 8
+        // Method begins at RVA 0x5164
+	// 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:  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_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_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 VjcTask::WriteModuleReferences
+	IL_001a:  ldloc.0 
+	IL_001b:  brfalse IL_006b
 
-    // method line 143
-    .method family virtual hidebysig 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x75c4
-	// Code size 421 (0x1a5)
-	.maxstack 4
-	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_BaseAddress()
-	IL_0007:  brfalse IL_0020
+	IL_0020:  ldloc.0 
+	IL_0021:  ldc.i4.2 
+	IL_0022:  beq IL_00aa
 
-	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.VjcTask::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 bool class NAnt.DotNet.Tasks.VjcTask::get_SecureScoping()
-	IL_0026:  brfalse IL_0039
+	IL_0027:  br IL_00e9
 
-	IL_002b:  nop 
 	IL_002c:  ldarg.0 
-	IL_002d:  ldarg.1 
-	IL_002e:  ldstr "securescoping"
-	IL_0033:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0038:  nop 
-	IL_0039:  ldarg.0 
-	IL_003a:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_X()
-	IL_003f:  brfalse IL_0058
-
-	IL_0044:  nop 
-	IL_0045:  ldarg.0 
-	IL_0046:  ldarg.1 
-	IL_0047:  ldstr "x"
-	IL_004c:  ldarg.0 
-	IL_004d:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_X()
-	IL_0052:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0057:  nop 
-	IL_0058:  ldarg.0 
-	IL_0059:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_LibPath()
-	IL_005e:  brfalse IL_0077
+	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_0063:  nop 
-	IL_0064:  ldarg.0 
-	IL_0065:  ldarg.1 
-	IL_0066:  ldstr "libpath"
 	IL_006b:  ldarg.0 
-	IL_006c:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_LibPath()
-	IL_0071:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0076:  nop 
-	IL_0077:  ldarg.0 
-	IL_0078:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Jcpa()
-	IL_007d:  brfalse IL_0096
-
-	IL_0082:  nop 
-	IL_0083:  ldarg.0 
-	IL_0084:  ldarg.1 
-	IL_0085:  ldstr "jcpa"
-	IL_008a:  ldarg.0 
-	IL_008b:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Jcpa()
-	IL_0090:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0095:  nop 
-	IL_0096:  ldarg.0 
-	IL_0097:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Codepage()
-	IL_009c:  brfalse IL_00b5
-
-	IL_00a1:  nop 
-	IL_00a2:  ldarg.0 
-	IL_00a3:  ldarg.1 
-	IL_00a4:  ldstr "codepage"
-	IL_00a9:  ldarg.0 
-	IL_00aa:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Codepage()
-	IL_00af:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_00b4:  nop 
-	IL_00b5:  ldarg.0 
-	IL_00b6:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VjcTask::get_DebugOutput()
-	IL_00bb:  stloc.0 
-	IL_00bc:  ldloc.0 
-	IL_00bd:  switch (
-	  IL_00d7,
-	  IL_00dc,
-	  IL_010f,
-	  IL_0120)
-	IL_00d2:  br IL_0136
-
-	IL_00d7:  br IL_0161
-
-	IL_00dc:  ldarg.0 
-	IL_00dd:  ldarg.1 
-	IL_00de:  ldstr "debug"
-	IL_00e3:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_00e8:  ldarg.0 
-	IL_00e9:  ldarg.1 
-	IL_00ea:  ldstr "define"
-	IL_00ef:  ldstr "DEBUG"
-	IL_00f4:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_00f9:  ldarg.0 
-	IL_00fa:  ldarg.1 
-	IL_00fb:  ldstr "define"
-	IL_0100:  ldstr "TRACE"
-	IL_0105:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_010a:  br IL_0161
-
-	IL_010f:  ldarg.0 
-	IL_0110:  ldarg.1 
-	IL_0111:  ldstr "debug"
-	IL_0116:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_011b:  br IL_0161
-
-	IL_0120:  ldarg.0 
-	IL_0121:  ldarg.1 
-	IL_0122:  ldstr "debug"
-	IL_0127:  ldstr "pdbonly"
-	IL_012c:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0131:  br IL_0161
-
-	IL_0136:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_013b:  ldstr "NA2011"
-	IL_0140:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0145:  ldarg.0 
-	IL_0146:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VjcTask::get_DebugOutput()
-	IL_014b:  box NAnt.DotNet.Types.DebugOutput
-	IL_0150:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0155:  ldarg.0 
-	IL_0156:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_015b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0160:  throw 
-	IL_0161:  ldarg.0 
-	IL_0162:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_WarningLevel()
-	IL_0167:  brfalse IL_0180
-
-	IL_016c:  nop 
-	IL_016d:  ldarg.0 
-	IL_016e:  ldarg.1 
-	IL_016f:  ldstr "warn"
-	IL_0174:  ldarg.0 
-	IL_0175:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_WarningLevel()
-	IL_017a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_017f:  nop 
-	IL_0180:  ldarg.0 
-	IL_0181:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_0186:  brfalse IL_01a4
-
-	IL_018b:  nop 
-	IL_018c:  ldarg.0 
-	IL_018d:  ldarg.1 
-	IL_018e:  ldstr "win32res"
-	IL_0193:  ldarg.0 
-	IL_0194:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_0199:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_019e:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01a3:  nop 
-	IL_01a4:  ret 
-    } // end of method VjcTask::WriteOptions
+	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 144
-    .method public virtual hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
-    {
-        // Method begins at RVA 0x7778
-	// 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_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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method VjcTask::get_Extension
+	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
 
-    // method line 145
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
-    {
-        // Method begins at RVA 0x7794
-	// 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.VjcTask::_classNameRegex
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method VjcTask::get_ClassNameRegex
+	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
 
-    // method line 146
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
-    {
-        // Method begins at RVA 0x77b0
-	// 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.VjcTask::_namespaceRegex
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method VjcTask::get_NamespaceRegex
+	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
 
-    // method line 147
-    .method public virtual hidebysig specialname 
-           instance default bool get_SupportsPackageReferences ()  cil managed 
-    {
-        // Method begins at RVA 0x77cc
-	// 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_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_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method VjcTask::get_SupportsPackageReferences
+	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
 
-    // method line 148
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsPackageReferences (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x77e2
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method VjcTask::set_SupportsPackageReferences
+	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
 
-    // method line 149
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x77e5
-	// 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.VjcTask::_classNameRegex
-	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|package\\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.VjcTask::_namespaceRegex
-	IL_001e:  ret 
-    } // end of method VjcTask::.cctor
+	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
 
-	.property instance string BaseAddress ()
+	.property instance valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Action ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_BaseAddress () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_BaseAddress (string 'value') 
+		.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 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 valuetype NAnt.DotNet.Types.DebugOutput DebugOutput ()
+	.property instance class [mscorlib]System.IO.FileInfo AssemblyFile ()
 	{
-		.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.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.
 
-		.get instance default valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VjcTask::get_DebugOutput () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value') 
+		.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 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 bool Debug ()
+	.property instance class [mscorlib]System.IO.FileInfo TypeLibrary ()
 	{
-		.get instance default bool NAnt.DotNet.Tasks.VjcTask::get_Debug () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Debug (bool 'value') 
+		.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.DotNet.Tasks.RegsvcsTask::get_TypeLibrary () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance bool SecureScoping ()
+	.property instance bool ExistingTypeLibrary ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 73 65 63 75 72 65 73 63 6F 70 69 6E 67   // ...securescoping
-		00 00                                           ) // ..
+		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.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.DotNet.Tasks.VjcTask::get_SecureScoping () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_SecureScoping (bool '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 string X ()
+	.property instance bool NoReconfig ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 01 78 00 00 ) // ...x..
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_X () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_X (string 'value') 
-	}
-	.property instance string LibPath ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6C 69 62 70 61 74 68 00 00 ) // ...libpath..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_LibPath () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_LibPath (string '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 Jcpa ()
+	.property instance bool ComponentsOnly ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6A 63 70 61 00 00 ) // ...jcpa..
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_Jcpa () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Jcpa (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..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_Codepage () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Codepage (string '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 string WarningLevel ()
+	.property instance bool ExistingApplication ()
 	{
 		.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                                              ) // .
+		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.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 04 00 00 00 00 00 ) // ............
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_WarningLevel () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_WarningLevel (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
-	{
-		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.VjcTask::get_WarningAsError () 
-	}
-	.property instance class NAnt.DotNet.Types.PackageCollection Packages ()
-	{
-		.get instance default class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.VjcTask::get_Packages () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Packages (class NAnt.DotNet.Types.PackageCollection 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet Modules ()
-	{
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.VjcTask::get_Modules () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_Extension () 
+		.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 [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
+	.property instance string ApplicationName ()
 	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VjcTask::get_ClassNameRegex () 
+		.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..
+
+		.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 [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
+	.property instance string PartitionName ()
 	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VjcTask::get_NamespaceRegex () 
+		.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') 
 	}
-	.property instance bool SupportsPackageReferences ()
+	.property instance string ProgramArguments ()
 	{
-		.get instance default bool NAnt.DotNet.Tasks.VjcTask::get_SupportsPackageReferences () 
-		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_SupportsPackageReferences (bool 'value') 
+		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ProgramArguments () 
 	}
-  } // end of class NAnt.DotNet.Tasks.VjcTask
+  .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
 {
-  .class public auto ansi beforefieldinit IlasmTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .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 05 69 6C 61 73 6D 00 00 ) // ...ilasm..
+    .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  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  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 150
+    // method line 161
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x7805
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x76fd
+	// Code size 25 (0x19)
 	.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
+	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 151
+    // method line 162
     .method public hidebysig specialname 
-           instance default bool get_Clock ()  cil managed 
+           instance default string get_BaseAddress ()  cil managed 
     {
-        // Method begins at RVA 0x7810
+        // Method begins at RVA 0x7718
 	// 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::_clock
+	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 IlasmTask::get_Clock
+    } // end of method VbcTask::get_BaseAddress
 
-    // method line 152
+    // method line 163
     .method public hidebysig specialname 
-           instance default void set_Clock (bool 'value')  cil managed 
+           instance default void set_BaseAddress (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x782b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x7733
+	// 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::_clock
-	IL_0008:  ret 
-    } // end of method IlasmTask::set_Clock
+	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 153
+    // method line 164
     .method public hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
     {
-        // Method begins at RVA 0x7838
+        // Method begins at RVA 0x7744
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_debug
+	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 IlasmTask::get_Debug
+    } // end of method VbcTask::get_DebugOutput
 
-    // method line 154
+    // method line 165
     .method public hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
     {
-        // Method begins at RVA 0x7853
+        // Method begins at RVA 0x775f
 	// 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 valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Debug
+    } // end of method VbcTask::set_DebugOutput
 
-    // method line 155
+    // method line 166
+    .method public virtual hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
+    {
+        // Method begins at RVA 0x776c
+	// 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 167
+    .method public virtual hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x778d
+	// 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 168
     .method public hidebysig specialname 
-           instance default bool get_Error ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
     {
-        // Method begins at RVA 0x7860
+        // Method begins at RVA 0x7798
 	// 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.IlasmTask::_error
+	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 IlasmTask::get_Error
+    } // end of method VbcTask::get_DocFile
 
-    // method line 156
+    // method line 169
     .method public hidebysig specialname 
-           instance default void set_Error (bool 'value')  cil managed 
+           instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x787b
+        // Method begins at RVA 0x77b3
 	// 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_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::_docFile
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Error
+    } // end of method VbcTask::set_DocFile
 
-    // method line 157
+    // method line 170
     .method public hidebysig specialname 
-           instance default bool get_ForceRebuild ()  cil managed 
+           instance default void set_ImportsString (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x77c0
+	// 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 171
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
     {
-        // Method begins at RVA 0x7888
+        // Method begins at RVA 0x7814
 	// 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.IlasmTask::_forceRebuild
+	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 IlasmTask::get_ForceRebuild
+    } // end of method VbcTask::get_Imports
 
-    // method line 158
+    // method line 172
     .method public hidebysig specialname 
-           instance default void set_ForceRebuild (bool 'value')  cil managed 
+           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x78a3
+        // Method begins at RVA 0x782f
 	// 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 class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_ForceRebuild
+    } // end of method VbcTask::set_Imports
 
-    // method line 159
+    // method line 173
     .method public hidebysig specialname 
-           instance default bool get_Listing ()  cil managed 
+           instance default bool get_NoStdLib ()  cil managed 
     {
-        // Method begins at RVA 0x78b0
+        // Method begins at RVA 0x783c
 	// 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_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 IlasmTask::get_Listing
+    } // end of method VbcTask::get_NoStdLib
 
-    // method line 160
+    // method line 174
     .method public hidebysig specialname 
-           instance default void set_Listing (bool 'value')  cil managed 
+           instance default void set_NoStdLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x78cb
+        // Method begins at RVA 0x7857
 	// 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:  stfld bool NAnt.DotNet.Tasks.VbcTask::_nostdlib
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Listing
+    } // end of method VbcTask::set_NoStdLib
 
-    // method line 161
+    // method line 175
     .method public hidebysig specialname 
-           instance default int32 get_Alignment ()  cil managed 
+           instance default string get_OptionCompare ()  cil managed 
     {
-        // Method begins at RVA 0x78d8
+        // Method begins at RVA 0x7864
 	// 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.VbcTask::_optionCompare
 	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 VbcTask::get_OptionCompare
 
-    // method line 162
+    // method line 176
     .method public hidebysig specialname 
-           instance default void set_Alignment (int32 'value')  cil managed 
+           instance default void set_OptionCompare (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x78f3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x787f
+	// Code size 14 (0xe)
 	.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
+	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 163
+    // method line 177
     .method public hidebysig specialname 
-           instance default int32 get_Base ()  cil managed 
+           instance default bool get_OptionExplicit ()  cil managed 
     {
-        // Method begins at RVA 0x7900
+        // Method begins at RVA 0x7890
 	// 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::_base
+	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 IlasmTask::get_Base
+    } // end of method VbcTask::get_OptionExplicit
 
-    // method line 164
+    // method line 178
     .method public hidebysig specialname 
-           instance default void set_Base (int32 'value')  cil managed 
+           instance default void set_OptionExplicit (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x791b
+        // Method begins at RVA 0x78ab
 	// 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:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionExplicit
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Base
+    } // end of method VbcTask::set_OptionExplicit
 
-    // method line 165
+    // method line 179
     .method public hidebysig specialname 
-           instance default int32 get_Flags ()  cil managed 
+           instance default bool get_OptionOptimize ()  cil managed 
     {
-        // Method begins at RVA 0x7928
+        // Method begins at RVA 0x78b8
 	// 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::_flags
+	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 IlasmTask::get_Flags
+    } // end of method VbcTask::get_OptionOptimize
 
-    // method line 166
+    // method line 180
     .method public hidebysig specialname 
-           instance default void set_Flags (int32 'value')  cil managed 
+           instance default void set_OptionOptimize (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7943
+        // Method begins at RVA 0x78d3
 	// 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:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionOptimize
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Flags
+    } // end of method VbcTask::set_OptionOptimize
 
-    // method line 167
+    // method line 181
     .method public hidebysig specialname 
-           instance default int32 get_Subsystem ()  cil managed 
+           instance default bool get_OptionStrict ()  cil managed 
     {
-        // Method begins at RVA 0x7950
+        // Method begins at RVA 0x78e0
 	// 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.VbcTask::_optionStrict
 	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 VbcTask::get_OptionStrict
 
-    // method line 168
+    // method line 182
     .method public hidebysig specialname 
-           instance default void set_Subsystem (int32 'value')  cil managed 
+           instance default void set_OptionStrict (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x796b
+        // 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 int32 NAnt.DotNet.Tasks.IlasmTask::_subsystem
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionStrict
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Subsystem
+    } // end of method VbcTask::set_OptionStrict
 
-    // method line 169
+    // method line 183
     .method public hidebysig specialname 
-           instance default string get_Target ()  cil managed 
+           instance default string get_Platform ()  cil managed 
     {
-        // Method begins at RVA 0x7978
+        // Method begins at RVA 0x7908
 	// 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_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 IlasmTask::get_Target
+    } // end of method VbcTask::get_Platform
 
-    // method line 170
+    // method line 184
     .method public hidebysig specialname 
-           instance default void set_Target (string 'value')  cil managed 
+           instance default void set_Platform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7993
+        // Method begins at RVA 0x7923
 	// 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_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_platform
 	IL_000d:  ret 
-    } // end of method IlasmTask::set_Target
+    } // end of method VbcTask::set_Platform
 
-    // method line 171
+    // method line 185
     .method public hidebysig specialname 
-           instance default string get_KeySource ()  cil managed 
+           instance default bool get_RemoveIntChecks ()  cil managed 
     {
-        // Method begins at RVA 0x79a4
+        // Method begins at RVA 0x7934
 	// 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.IlasmTask::_keySource
+	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 IlasmTask::get_KeySource
+    } // end of method VbcTask::get_RemoveIntChecks
 
-    // method line 172
+    // method line 186
     .method public hidebysig specialname 
-           instance default void set_KeySource (string 'value')  cil managed 
+           instance default void set_RemoveIntChecks (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x79bf
+        // Method begins at RVA 0x794f
 	// 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 bool NAnt.DotNet.Tasks.VbcTask::_removeintchecks
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_KeySource
+    } // end of method VbcTask::set_RemoveIntChecks
 
-    // method line 173
+    // method line 187
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+           instance default string get_RootNamespace ()  cil managed 
     {
-        // Method begins at RVA 0x79cc
+        // Method begins at RVA 0x795c
 	// 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.IlasmTask::_keyFile
+	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 IlasmTask::get_KeyFile
+    } // end of method VbcTask::get_RootNamespace
 
-    // method line 174
+    // method line 188
     .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_RootNamespace (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x79e7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x7977
+	// Code size 14 (0xe)
 	.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
+	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 175
+    // method line 189
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+           instance default bool get_SupportsDocGeneration ()  cil managed 
     {
-        // Method begins at RVA 0x79f4
+        // Method begins at RVA 0x7988
 	// 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.VbcTask::_supportsDocGeneration
 	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 VbcTask::get_SupportsDocGeneration
 
-    // method line 176
+    // method line 190
     .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a0f
+        // Method begins at RVA 0x79a3
 	// 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.VbcTask::_supportsDocGeneration
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_OutputFile
+    } // end of method VbcTask::set_SupportsDocGeneration
 
-    // method line 177
+    // method line 191
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ResourceFile ()  cil managed 
+           instance default bool get_SupportsNoStdLib ()  cil managed 
     {
-        // Method begins at RVA 0x7a1c
+        // Method begins at RVA 0x79b0
 	// 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.VbcTask::_supportsNoStdLib
 	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 VbcTask::get_SupportsNoStdLib
 
-    // method line 178
+    // method line 192
     .method public hidebysig specialname 
-           instance default void set_ResourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_SupportsNoStdLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a37
+        // Method begins at RVA 0x79cb
 	// 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.VbcTask::_supportsNoStdLib
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_ResourceFile
+    } // end of method VbcTask::set_SupportsNoStdLib
 
-    // method line 179
+    // method line 193
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
+           instance default bool get_SupportsPlatform ()  cil managed 
     {
-        // Method begins at RVA 0x7a44
+        // Method begins at RVA 0x79d8
 	// 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.VbcTask::_supportsPlatform
 	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 VbcTask::get_SupportsPlatform
 
-    // method line 180
+    // method line 194
     .method public hidebysig specialname 
-           instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_SupportsPlatform (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a5f
+        // Method begins at RVA 0x79f3
 	// 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.VbcTask::_supportsPlatform
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Sources
+    } // end of method VbcTask::set_SupportsPlatform
 
-    // method line 181
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    // method line 195
+    .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 0x7a6c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x7a00
+	// Code size 105 (0x69)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		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:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_options
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IlasmTask::get_ProgramArguments
+	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
 
-    // method line 182
+	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 196
     .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x7a88
-	// Code size 137 (0x89)
-	.maxstack 7
+        // Method begins at RVA 0x7a78
+	// 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 bool class NAnt.DotNet.Tasks.IlasmTask::NeedsCompiling()
-	IL_0007:  brfalse IL_0088
+	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 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_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_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_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
 
-    // method line 183
-    .method private hidebysig 
-           instance default void WriteOptions ()  cil managed 
+	IL_0046:  nop 
+	IL_0047:  ret 
+    } // end of method VbcTask::WriteConditionalCompilationConstants
+
+    // method line 197
+    .method family virtual hidebysig 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x7b20
-	// Code size 636 (0x27c)
-	.maxstack 5
+        // Method begins at RVA 0x7acc
+	// Code size 840 (0x348)
+	.maxstack 7
 	.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)
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
+		string	V_1)
 	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_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_BaseAddress()
+	IL_0007:  brfalse IL_0020
 
-	  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_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_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_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
+	IL_0032:  brfalse IL_0055
 
-	  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_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_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_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_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_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:  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_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_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_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_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_00ec:  nop 
+	IL_00ed:  ldarg.0 
+	IL_00ee:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsPlatform()
+	IL_00f3:  brfalse IL_0111
 
-	  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_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_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_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_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_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_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_0188:  br IL_0212
 
-	  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_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_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_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_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_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_0244:  leave IL_0260
+	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
 
-	  } // 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_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_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_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
 
-	} // 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_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
 
-    // method line 184
-    .method private hidebysig 
-           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name)  cil managed 
-    {
-        // Method begins at RVA 0x7ddc
-	// 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
+	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
 
-    // method line 185
-    .method private hidebysig 
-           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name, string arg)  cil managed 
-    {
-        // Method begins at RVA 0x7deb
-	// 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
+	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
 
-    // method line 186
-    .method private hidebysig 
+	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 198
+    .method family virtual hidebysig 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x7dfc
-	// Code size 360 (0x168)
+        // Method begins at RVA 0x7e20
+	// Code size 123 (0x7b)
 	.maxstack 7
 	.locals init (
-		bool	V_0,
-		string	V_1)
+		bool	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:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
+	IL_0007:  brfalse IL_0014
 
 	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_000d:  ldc.i4.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0079
 
-	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_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_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_001f:  ldarg.0 
+	IL_0020:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
+	IL_0025:  brfalse IL_006d
 
-	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_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_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_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_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_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_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_0079:  ldloc.0 
+	IL_007a:  ret 
+    } // end of method VbcTask::NeedsCompiling
 
-	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
+    // method line 199
+    .method public virtual hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0x7ea8
+	// 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_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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VbcTask::get_Extension
 
-	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
+    // method line 200
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x7ec4
+	// 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_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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VbcTask::get_ClassNameRegex
 
-	IL_015e:  nop 
-	IL_015f:  ldc.i4.0 
-	IL_0160:  stloc.0 
-	IL_0161:  br IL_0166
+    // method line 201
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x7ee0
+	// 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_0166:  ldloc.0 
-	IL_0167:  ret 
-    } // end of method IlasmTask::NeedsCompiling
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VbcTask::get_NamespaceRegex
 
-	.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..
+    // method line 202
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7efa
+	// 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
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	.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 bool NAnt.DotNet.Tasks.IlasmTask::get_Clock () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Clock (bool 'value') 
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_BaseAddress () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_BaseAddress (string 'value') 
 	}
-	.property instance bool Debug ()
+	.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..
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.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 bool NAnt.DotNet.Tasks.IlasmTask::get_Debug () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Debug (bool 'value') 
+		.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 bool Error ()
+	.property instance string ImportsString ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.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....
 
-		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Error () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Error (bool 'value') 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_ImportsString (string 'value') 
 	}
-	.property instance bool ForceRebuild ()
+	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
 	{
-		.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 ) // ....
+		.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 bool NAnt.DotNet.Tasks.IlasmTask::get_ForceRebuild () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_ForceRebuild (bool 'value') 
+		.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 Listing ()
+	.property instance bool NoStdLib ()
 	{
-		.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.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.IlasmTask::get_Listing () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Listing (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_NoStdLib () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_NoStdLib (bool 'value') 
 	}
-	.property instance int32 Alignment ()
+	.property instance string OptionCompare ()
 	{
-		.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 ) // ....
+		.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 int32 NAnt.DotNet.Tasks.IlasmTask::get_Alignment () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Alignment (int32 'value') 
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_OptionCompare () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionCompare (string 'value') 
 	}
-	.property instance int32 Base ()
+	.property instance bool OptionExplicit ()
 	{
-		.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.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.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_Base () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Base (int32 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionExplicit () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionExplicit (bool 'value') 
 	}
-	.property instance int32 Flags ()
+	.property instance bool OptionOptimize ()
 	{
-		.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 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.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.VbcTask::get_OptionOptimize () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionOptimize (bool 'value') 
 	}
-	.property instance int32 Subsystem ()
+	.property instance bool OptionStrict ()
 	{
-		.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 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.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.VbcTask::get_OptionStrict () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionStrict (bool 'value') 
 	}
-	.property instance string Target ()
+	.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 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 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.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]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_Target () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Target (string 'value') 
+		.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 KeySource ()
+	.property instance string RootNamespace ()
 	{
-		.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..
+		.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.IlasmTask::get_KeySource () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_KeySource (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_RootNamespace () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_RootNamespace (string 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
+	.property instance bool SupportsDocGeneration ()
 	{
-		.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.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 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.VbcTask::get_SupportsDocGeneration () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsDocGeneration (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	.property instance bool SupportsNoStdLib ()
 	{
-		.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.
+		.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 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') 
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsNoStdLib () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsNoStdLib (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo ResourceFile ()
+	.property instance bool SupportsPlatform ()
 	{
-		.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                                              ) // .
+		.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 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 bool NAnt.DotNet.Tasks.VbcTask::get_SupportsPlatform () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsPlatform (bool 'value') 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Sources ()
+	.property instance string Extension ()
 	{
-		.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') 
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_Extension () 
 	}
-	.property instance string ProgramArguments ()
+	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_ProgramArguments () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::get_ClassNameRegex () 
 	}
-  } // end of class NAnt.DotNet.Tasks.IlasmTask
+	.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 ResGenTask
+  .class public auto ansi abstract CompilerBase
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 72 65 73 67 65 6E 00 00 ) // ...resgen..
+    .field  private  string _responseFileName
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _target
+    .field  private  bool _debug
+    .field  private  string _define
+    .field  private  class [mscorlib]System.IO.FileInfo _win32icon
+    .field  private  class [mscorlib]System.IO.FileInfo _win32res
+    .field  private  bool _warnAsError
+    .field  private  class NAnt.DotNet.Types.WarningAsError _warningAsError
+    .field  private  string _noWarn
+    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _suppressWarnings
+    .field  private  bool _forceRebuild
+    .field  private  string _mainType
+    .field  private  string _keyContainer
+    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
+    .field  private  valuetype NAnt.DotNet.Types.DelaySign _delaySign
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _lib
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _modules
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _sources
+    .field  private  class NAnt.DotNet.Types.ResourceFileSetCollection _resourcesList
+    .field  private  class NAnt.DotNet.Types.PackageCollection _packages
+    .field  private  bool _supportsPackageReferences
+    .field  private  bool _supportsWarnAsErrorList
+    .field  private  bool _supportsNoWarnList
+    .field  private  bool _supportsKeyContainer
+    .field  private  bool _supportsKeyFile
+    .field  private  bool _supportsDelaySign
+    .field  family static  string[] CodebehindExtensions
+    .field  family static initonly  class [mscorlib]System.Collections.Hashtable CultureNames
 
-    .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 ) // ........
+    // method line 203
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x53a0
+	// Code size 111 (0x6f)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Globalization.CultureInfo[]	V_0,
+		class [mscorlib]System.Globalization.CultureInfo	V_1,
+		class [mscorlib]System.Globalization.CultureInfo[]	V_2,
+		int32	V_3)
+	IL_0000:  ldc.i4.4 
+	IL_0001:  newarr [mscorlib]System.String
+	IL_0006:  dup 
+	IL_0007:  ldc.i4.0 
+	IL_0008:  ldstr ".aspx"
+	IL_000d:  stelem.ref 
+	IL_000e:  dup 
+	IL_000f:  ldc.i4.1 
+	IL_0010:  ldstr ".asax"
+	IL_0015:  stelem.ref 
+	IL_0016:  dup 
+	IL_0017:  ldc.i4.2 
+	IL_0018:  ldstr ".ascx"
+	IL_001d:  stelem.ref 
+	IL_001e:  dup 
+	IL_001f:  ldc.i4.3 
+	IL_0020:  ldstr ".asmx"
+	IL_0025:  stelem.ref 
+	IL_0026:  stsfld string[] NAnt.DotNet.Tasks.CompilerBase::CodebehindExtensions
+	IL_002b:  nop 
+	IL_002c:  ldc.i4.7 
+	IL_002d:  call class [mscorlib]System.Globalization.CultureInfo[] class [mscorlib]System.Globalization.CultureInfo::GetCultures(valuetype [mscorlib]System.Globalization.CultureTypes)
+	IL_0032:  stloc.0 
+	IL_0033:  ldloc.0 
+	IL_0034:  ldlen 
+	IL_0035:  conv.i4 
+	IL_0036:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable(int32)
+	IL_003b:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.DotNet.Tasks.CompilerBase::CultureNames
+	IL_0040:  nop 
+	IL_0041:  ldloc.0 
+	IL_0042:  stloc.2 
+	IL_0043:  ldc.i4.0 
+	IL_0044:  stloc.3 
+	IL_0045:  br IL_0065
 
-    .field  private  class [mscorlib]System.Text.StringBuilder _arguments
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _assemblies
-    .field  private  class [mscorlib]System.IO.FileInfo _inputFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  string _programFileName
-    .field  private  class NAnt.DotNet.Types.ResourceFileSet _resources
-    .field  private  string _targetExt
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDir
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _workingDirectory
-    .field  private  bool _useSourcePath
-    .field  private  class [mscorlib]System.Collections.ArrayList _qualifiedResources
-    .field  private  bool _supportsAssemblyReferences
-    .field  private  bool _supportsExternalFileReferences
-    .field private static literal  int32 _maxCmdLineLength = int32(0x00007530)
+	IL_004a:  ldloc.2 
+	IL_004b:  ldloc.3 
+	IL_004c:  ldelem.ref 
+	IL_004d:  stloc.1 
+	IL_004e:  nop 
+	IL_004f:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.DotNet.Tasks.CompilerBase::CultureNames
+	IL_0054:  ldloc.1 
+	IL_0055:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_005a:  ldnull 
+	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0060:  nop 
+	IL_0061:  ldloc.3 
+	IL_0062:  ldc.i4.1 
+	IL_0063:  add 
+	IL_0064:  stloc.3 
+	IL_0065:  ldloc.3 
+	IL_0066:  ldloc.2 
+	IL_0067:  ldlen 
+	IL_0068:  conv.i4 
+	IL_0069:  blt IL_004a
 
-    // method line 187
-    .method public hidebysig specialname rtspecialname 
+	IL_006e:  ret 
+    } // end of method CompilerBase::.cctor
+
+    // method line 204
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x7f70
-	// Code size 62 (0x3e)
-	.maxstack 8
+        // Method begins at RVA 0x541c
+	// Code size 102 (0x66)
+	.maxstack 2
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0001:  newobj instance void class NAnt.DotNet.Types.WarningAsError::'.ctor'()
+	IL_0006:  stfld class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.CompilerBase::_warningAsError
 	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_0011:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::_assemblies
+	IL_000c:  newobj instance void class NAnt.DotNet.Types.CompilerWarningCollection::'.ctor'()
+	IL_0011:  stfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.CompilerBase::_suppressWarnings
 	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
-	IL_001c:  stfld class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::_resources
-	IL_0021:  ldarg.0 
-	IL_0022:  ldstr "resources"
-	IL_0027:  stfld string NAnt.DotNet.Tasks.ResGenTask::_targetExt
-	IL_002c:  ldarg.0 
-	IL_002d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0032:  stfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Tasks.ResGenTask::_qualifiedResources
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_003d:  ret 
-    } // end of method ResGenTask::.ctor
+	IL_0017:  ldc.i4.0 
+	IL_0018:  stfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::_delaySign
+	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.CompilerBase::_references
+	IL_0028:  ldarg.0 
+	IL_0029:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_002e:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_lib
+	IL_0033:  ldarg.0 
+	IL_0034:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_0039:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_modules
+	IL_003e:  ldarg.0 
+	IL_003f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0044:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_sources
+	IL_0049:  ldarg.0 
+	IL_004a:  newobj instance void class NAnt.DotNet.Types.ResourceFileSetCollection::'.ctor'()
+	IL_004f:  stfld class NAnt.DotNet.Types.ResourceFileSetCollection NAnt.DotNet.Tasks.CompilerBase::_resourcesList
+	IL_0054:  ldarg.0 
+	IL_0055:  newobj instance void class NAnt.DotNet.Types.PackageCollection::'.ctor'()
+	IL_005a:  stfld class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::_packages
+	IL_005f:  ldarg.0 
+	IL_0060:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0065:  ret 
+    } // end of method CompilerBase::.ctor
 
-    // method line 188
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
+    // method line 205
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0x7fb0
+        // Method begins at RVA 0x5490
 	// 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.ResGenTask::_inputFile
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_debug
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_InputFile
+    } // end of method CompilerBase::get_Debug
 
-    // method line 189
-    .method public hidebysig specialname 
-           instance default void set_InputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 206
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7fcb
+        // Method begins at RVA 0x54ab
 	// 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.ResGenTask::_inputFile
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_debug
 	IL_0008:  ret 
-    } // end of method ResGenTask::set_InputFile
+    } // end of method CompilerBase::set_Debug
 
-    // method line 190
+    // method line 207
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x7fd8
+        // Method begins at RVA 0x54b8
 	// 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.ResGenTask::_outputFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_outputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_OutputFile
+    } // end of method CompilerBase::get_OutputFile
 
-    // method line 191
+    // method line 208
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x7ff3
+        // Method begins at RVA 0x54d3
 	// 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.ResGenTask::_outputFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_outputFile
 	IL_0008:  ret 
-    } // end of method ResGenTask::set_OutputFile
+    } // end of method CompilerBase::set_OutputFile
 
-    // method line 192
+    // method line 209
     .method public hidebysig specialname 
-           instance default string get_TargetExt ()  cil managed 
+           instance default string get_OutputTarget ()  cil managed 
     {
-        // Method begins at RVA 0x8000
+        // Method begins at RVA 0x54e0
 	// 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.ResGenTask::_targetExt
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_target
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_TargetExt
+    } // end of method CompilerBase::get_OutputTarget
 
-    // method line 193
+    // method line 210
     .method public hidebysig specialname 
-           instance default void set_TargetExt (string 'value')  cil managed 
+           instance default void set_OutputTarget (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x801b
+        // Method begins at RVA 0x54fb
 	// 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.ResGenTask::_targetExt
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CompilerBase::_target
 	IL_000d:  ret 
-    } // end of method ResGenTask::set_TargetExt
-
-    // method line 194
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x802c
-	// 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.DotNet.Tasks.ResGenTask::_toDir
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ResGenTask::get_ToDirectory
-
-    // method line 195
-    .method public hidebysig specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8047
-	// 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.Tasks.ResGenTask::_toDir
-	IL_0008:  ret 
-    } // end of method ResGenTask::set_ToDirectory
+    } // end of method CompilerBase::set_OutputTarget
 
-    // method line 196
+    // method line 211
     .method public hidebysig specialname 
-           instance default bool get_UseSourcePath ()  cil managed 
+           instance default string get_Define ()  cil managed 
     {
-        // Method begins at RVA 0x8054
+        // Method begins at RVA 0x550c
 	// 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.ResGenTask::_useSourcePath
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_define
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_UseSourcePath
+    } // end of method CompilerBase::get_Define
 
-    // method line 197
+    // method line 212
     .method public hidebysig specialname 
-           instance default void set_UseSourcePath (bool 'value')  cil managed 
+           instance default void set_Define (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x806f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x5527
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.ResGenTask::_useSourcePath
-	IL_0008:  ret 
-    } // end of method ResGenTask::set_UseSourcePath
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CompilerBase::_define
+	IL_000d:  ret 
+    } // end of method CompilerBase::set_Define
 
-    // method line 198
+    // method line 213
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ResourceFileSet get_Resources ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Win32Icon ()  cil managed 
     {
-        // Method begins at RVA 0x807c
+        // Method begins at RVA 0x5538
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSet	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::_resources
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_win32icon
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_Resources
+    } // end of method CompilerBase::get_Win32Icon
 
-    // method line 199
+    // method line 214
     .method public hidebysig specialname 
-           instance default void set_Resources (class NAnt.DotNet.Types.ResourceFileSet 'value')  cil managed 
+           instance default void set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x8097
+        // Method begins at RVA 0x5553
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::_resources
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_win32icon
 	IL_0008:  ret 
-    } // end of method ResGenTask::set_Resources
+    } // end of method CompilerBase::set_Win32Icon
 
-    // method line 200
+    // method line 215
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Win32Res ()  cil managed 
     {
-        // Method begins at RVA 0x80a4
+        // Method begins at RVA 0x5560
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::_assemblies
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_win32res
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_Assemblies
+    } // end of method CompilerBase::get_Win32Res
 
-    // method line 201
+    // method line 216
     .method public hidebysig specialname 
-           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+           instance default void set_Win32Res (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x80bf
+        // Method begins at RVA 0x557b
 	// 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.ResGenTask::_assemblies
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_win32res
 	IL_0008:  ret 
-    } // end of method ResGenTask::set_Assemblies
+    } // end of method CompilerBase::set_Win32Res
 
-    // method line 202
+    // method line 217
     .method public hidebysig specialname 
-           instance default bool get_SupportsAssemblyReferences ()  cil managed 
+           instance default bool get_WarnAsError ()  cil managed 
     {
-        // Method begins at RVA 0x80cc
+        // Method begins at RVA 0x5588
 	// 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.ResGenTask::_supportsAssemblyReferences
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_warnAsError
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_SupportsAssemblyReferences
+    } // end of method CompilerBase::get_WarnAsError
 
-    // method line 203
+    // method line 218
     .method public hidebysig specialname 
-           instance default void set_SupportsAssemblyReferences (bool 'value')  cil managed 
+           instance default void set_WarnAsError (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x80e7
+        // Method begins at RVA 0x55a3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsAssemblyReferences
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_warnAsError
 	IL_0008:  ret 
-    } // end of method ResGenTask::set_SupportsAssemblyReferences
+    } // end of method CompilerBase::set_WarnAsError
 
-    // method line 204
-    .method public hidebysig specialname 
-           instance default bool get_SupportsExternalFileReferences ()  cil managed 
+    // method line 219
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
     {
-        // Method begins at RVA 0x80f4
+        // Method begins at RVA 0x55b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.WarningAsError	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsExternalFileReferences
+	IL_0002:  ldfld class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.CompilerBase::_warningAsError
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_SupportsExternalFileReferences
-
-    // method line 205
-    .method public hidebysig specialname 
-           instance default void set_SupportsExternalFileReferences (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x810f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsExternalFileReferences
-	IL_0008:  ret 
-    } // end of method ResGenTask::set_SupportsExternalFileReferences
+    } // end of method CompilerBase::get_WarningAsError
 
-    // method line 206
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_QualifiedResources ()  cil managed 
+    // method line 220
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_NoWarn ()  cil managed 
     {
-        // Method begins at RVA 0x811c
+        // Method begins at RVA 0x55cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Tasks.ResGenTask::_qualifiedResources
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_noWarn
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResGenTask::get_QualifiedResources
-
-    // method line 207
-    .method private hidebysig specialname 
-           instance default bool get_RequiresAssemblyReferences ()  cil managed 
-    {
-        // Method begins at RVA 0x8138
-	// Code size 285 (0x11d)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		bool	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.DotNet.Tasks.QualifiedResource	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	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:  bgt IL_0028
-
-	IL_0017:  ldarg.0 
-	IL_0018:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
-	IL_001d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0022:  ldc.i4.0 
-	IL_0023:  ble IL_00f1
-
-	IL_0028:  nop 
-	IL_0029:  nop 
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	IL_0030:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0035:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_003a:  stloc.1 
-	.try { // 0
-	  IL_003b:  br IL_005d
-
-	  IL_0040:  ldloc.1 
-	  IL_0041:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0046:  stloc.0 
-	  IL_0047:  nop 
-	  IL_0048:  ldarg.0 
-	  IL_0049:  ldloc.0 
-	  IL_004a:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::ReferencesThirdPartyAssemblies(string)
-	  IL_004f:  brfalse IL_005c
-
-	  IL_0054:  nop 
-	  IL_0055:  ldc.i4.1 
-	  IL_0056:  stloc.2 
-	  IL_0057:  leave IL_011b
-
-	  IL_005c:  nop 
-	  IL_005d:  ldloc.1 
-	  IL_005e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0063:  brtrue IL_0040
-
-	  IL_0068:  leave IL_0081
-
-	} // end .try 0
-	finally  { // 0
-	  IL_006d:  ldloc.1 
-	  IL_006e:  isinst [mscorlib]System.IDisposable
-	  IL_0073:  dup 
-	  IL_0074:  stloc.3 
-	  IL_0075:  brfalse IL_0080
-
-	  IL_007a:  ldloc.3 
-	  IL_007b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0080:  endfinally 
-	} // end handler 0
-	IL_0081:  nop 
-	IL_0082:  ldarg.0 
-	IL_0083:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
-	IL_0088:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_008d:  stloc.s 5
-	.try { // 1
-	  IL_008f:  br IL_00c3
-
-	  IL_0094:  ldloc.s 5
-	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_009b:  castclass NAnt.DotNet.Tasks.QualifiedResource
-	  IL_00a0:  stloc.s 4
-	  IL_00a2:  nop 
-	  IL_00a3:  ldarg.0 
-	  IL_00a4:  ldloc.s 4
-	  IL_00a6:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Input()
-	  IL_00ab:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00b0:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::ReferencesThirdPartyAssemblies(string)
-	  IL_00b5:  brfalse IL_00c2
-
-	  IL_00ba:  nop 
-	  IL_00bb:  ldc.i4.1 
-	  IL_00bc:  stloc.2 
-	  IL_00bd:  leave IL_011b
-
-	  IL_00c2:  nop 
-	  IL_00c3:  ldloc.s 5
-	  IL_00c5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00ca:  brtrue IL_0094
-
-	  IL_00cf:  leave IL_00eb
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00d4:  ldloc.s 5
-	  IL_00d6:  isinst [mscorlib]System.IDisposable
-	  IL_00db:  dup 
-	  IL_00dc:  stloc.s 6
-	  IL_00de:  brfalse IL_00ea
-
-	  IL_00e3:  ldloc.s 6
-	  IL_00e5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00ea:  endfinally 
-	} // end handler 1
-	IL_00eb:  nop 
-	IL_00ec:  br IL_0114
-
-	IL_00f1:  ldarg.0 
-	IL_00f2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_00f7:  brfalse IL_0114
-
-	IL_00fc:  nop 
-	IL_00fd:  ldarg.0 
-	IL_00fe:  ldarg.0 
-	IL_00ff:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_0104:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0109:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::ReferencesThirdPartyAssemblies(string)
-	IL_010e:  stloc.2 
-	IL_010f:  br IL_011b
-
-	IL_0114:  ldc.i4.0 
-	IL_0115:  stloc.2 
-	IL_0116:  br IL_011b
-
-	IL_011b:  ldloc.2 
-	IL_011c:  ret 
-    } // end of method ResGenTask::get_RequiresAssemblyReferences
-
-    // method line 208
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x8280
-	// Code size 39 (0x27)
-	.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.Tasks.ResGenTask::_workingDirectory
-	IL_0007:  brtrue IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0025
-
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
-
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method ResGenTask::get_BaseDirectory
+    } // end of method CompilerBase::get_NoWarn
 
-    // method line 209
-    .method public virtual hidebysig specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 221
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_NoWarn (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x82b3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x55e7
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
-	IL_0008:  ret 
-    } // end of method ResGenTask::set_BaseDirectory
-
-    // method line 210
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x82c0
-	// Code size 20 (0x14)
-	.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.ResGenTask::_arguments
-	IL_0007:  callvirt instance string object::ToString()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ResGenTask::get_ProgramArguments
-
-    // method line 211
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x82e0
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
-	IL_0007:  brtrue IL_001a
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_0014:  stfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method ResGenTask::get_ProgramFileName
-
-    // method line 212
-    .method family virtual hidebysig 
-           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
-    {
-        // Method begins at RVA 0x8314
-	// Code size 434 (0x1b2)
-	.maxstack 3
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Tasks.CopyTask	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:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsAssemblyReferences()
-	IL_0007:  brtrue IL_01aa
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_0013:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0018:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_001d:  brfalse IL_002d
-
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_RequiresAssemblyReferences()
-	IL_0028:  brtrue IL_003a
-
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldarg.1 
-	IL_0030:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
-	IL_0035:  br IL_01b1
-
-	IL_003a:  ldarg.0 
-	IL_003b:  call class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Util.FileUtils::GetTempDirectory()
-	IL_0040:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0045:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::'.ctor'()
-	IL_004a:  stloc.0 
-	IL_004b:  ldloc.0 
-	IL_004c:  ldarg.0 
-	IL_004d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0052:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0057:  ldloc.0 
-	IL_0058:  ldarg.0 
-	IL_0059:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_005e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0063:  ldloc.0 
-	IL_0064:  ldarg.0 
-	IL_0065:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_006a:  ldloc.0 
-	IL_006b:  ldarg.0 
-	IL_006c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0071:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0076:  ldloc.0 
-	IL_0077:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_007c:  brtrue IL_008e
-
-	IL_0081:  nop 
-	IL_0082:  ldloc.0 
-	IL_0083:  ldc.i4 4000
-	IL_0088:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	IL_008d:  nop 
-	IL_008e:  ldloc.0 
-	IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0094:  ldloc.0 
-	IL_0095:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_009a:  ldloc.0 
-	IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_00a0:  ldloc.0 
-	IL_00a1:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_00a6:  ldloc.0 
-	IL_00a7:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_00b1:  ldloc.0 
-	IL_00b2:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	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.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_00c8:  ldarg.0 
-	IL_00c9:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_00ce:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_00d3:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_00d8:  ldloc.0 
-	IL_00d9:  ldc.i4.1 
-	IL_00da:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_Flatten(bool)
-	IL_00df:  nop 
-	IL_00e0:  ldarg.0 
-	IL_00e1:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_00e6:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00eb:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00f0:  stloc.2 
-	.try { // 0
-	  IL_00f1:  br IL_0111
-
-	  IL_00f6:  ldloc.2 
-	  IL_00f7:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00fc:  stloc.1 
-	  IL_00fd:  nop 
-	  IL_00fe:  ldloc.0 
-	  IL_00ff:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	  IL_0104:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_0109:  ldloc.1 
-	  IL_010a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_010f:  pop 
-	  IL_0110:  nop 
-	  IL_0111:  ldloc.2 
-	  IL_0112:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0117:  brtrue IL_00f6
-
-	  IL_011c:  leave IL_0135
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0121:  ldloc.2 
-	  IL_0122:  isinst [mscorlib]System.IDisposable
-	  IL_0127:  dup 
-	  IL_0128:  stloc.3 
-	  IL_0129:  brfalse IL_0134
-
-	  IL_012e:  ldloc.3 
-	  IL_012f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0134:  endfinally 
-	} // end handler 0
-	IL_0135:  ldloc.0 
-	IL_0136:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_013b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	IL_0140:  ldarg.0 
-	IL_0141:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_0146:  ldstr "*"
-	IL_014b:  call string string::Concat(string, string)
-	IL_0150:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0155:  pop 
-	IL_0156:  ldloc.0 
-	IL_0157:  ldarg.0 
-	IL_0158:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_015d:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_ToDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0162:  ldloc.0 
-	IL_0163:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0168:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 1
-	  IL_016d:  nop 
-	  IL_016e:  ldloc.0 
-	  IL_016f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0174:  nop 
-	  IL_0175:  leave IL_0188
-
-	} // end .try 1
-	finally  { // 1
-	  IL_017a:  nop 
-	  IL_017b:  ldloc.0 
-	  IL_017c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0181:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0186:  nop 
-	  IL_0187:  endfinally 
-	} // end handler 1
-	IL_0188:  ldarg.0 
-	IL_0189:  ldarg.0 
-	IL_018a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_018f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0194:  ldarg.0 
-	IL_0195:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_019a:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_019f:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_01a4:  stfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
-	IL_01a9:  nop 
-	IL_01aa:  ldarg.0 
-	IL_01ab:  ldarg.1 
-	IL_01ac:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
-	IL_01b1:  ret 
-    } // end of method ResGenTask::PrepareProcess
-
-    // method line 213
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x84f0
-	// Code size 756 (0x2f4)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2,
-		class [mscorlib]System.IO.FileInfo	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class NAnt.DotNet.Tasks.QualifiedResource	V_5,
-		class [mscorlib]System.Collections.IEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [mscorlib]System.IO.FileInfo	V_8,
-		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_9)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	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.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	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 class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	IL_0034:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0039:  brtrue IL_005b
-
-	IL_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_004b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0050:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0055:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_005a:  nop 
-	IL_005b:  ldarg.0 
-	IL_005c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_0061:  ldc.i4.0 
-	IL_0062:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
-	IL_0067:  ldarg.0 
-	IL_0068:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	IL_006d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0072:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0077:  ldc.i4.0 
-	IL_0078:  bgt IL_008e
-
-	IL_007d:  ldarg.0 
-	IL_007e:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
-	IL_0083:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0088:  ldc.i4.0 
-	IL_0089:  ble IL_018e
-
-	IL_008e:  nop 
-	IL_008f:  ldarg.0 
-	IL_0090:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_OutputFile()
-	IL_0095:  brfalse IL_00b1
-
-	IL_009a:  nop 
-	IL_009b:  ldstr "NA2026"
-	IL_00a0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00a5:  ldarg.0 
-	IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_00ab:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00b0:  throw 
-	IL_00b1:  nop 
-	IL_00b2:  ldarg.0 
-	IL_00b3:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	IL_00b8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00bd:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00c2:  stloc.1 
-	.try { // 0
-	  IL_00c3:  br IL_0103
-
-	  IL_00c8:  ldloc.1 
-	  IL_00c9:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00ce:  stloc.0 
-	  IL_00cf:  nop 
-	  IL_00d0:  ldloc.0 
-	  IL_00d1:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_00d6:  stloc.2 
-	  IL_00d7:  ldarg.0 
-	  IL_00d8:  ldloc.2 
-	  IL_00d9:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	  IL_00de:  ldarg.0 
-	  IL_00df:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	  IL_00e4:  ldloc.0 
-	  IL_00e5:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string)
-	  IL_00ea:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_00ef:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_00f4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
-	  IL_00f9:  stloc.3 
-	  IL_00fa:  ldarg.0 
-	  IL_00fb:  ldloc.2 
-	  IL_00fc:  ldloc.3 
-	  IL_00fd:  call instance void class NAnt.DotNet.Tasks.ResGenTask::WriteCommandLineOptions(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
-	  IL_0102:  nop 
-	  IL_0103:  ldloc.1 
-	  IL_0104:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0109:  brtrue IL_00c8
-
-	  IL_010e:  leave IL_0129
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0113:  ldloc.1 
-	  IL_0114:  isinst [mscorlib]System.IDisposable
-	  IL_0119:  dup 
-	  IL_011a:  stloc.s 4
-	  IL_011c:  brfalse IL_0128
-
-	  IL_0121:  ldloc.s 4
-	  IL_0123:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0128:  endfinally 
-	} // end handler 0
-	IL_0129:  nop 
-	IL_012a:  ldarg.0 
-	IL_012b:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
-	IL_0130:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0135:  stloc.s 6
-	.try { // 1
-	  IL_0137:  br IL_0160
-
-	  IL_013c:  ldloc.s 6
-	  IL_013e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0143:  castclass NAnt.DotNet.Tasks.QualifiedResource
-	  IL_0148:  stloc.s 5
-	  IL_014a:  nop 
-	  IL_014b:  ldarg.0 
-	  IL_014c:  ldloc.s 5
-	  IL_014e:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Input()
-	  IL_0153:  ldloc.s 5
-	  IL_0155:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Output()
-	  IL_015a:  call instance void class NAnt.DotNet.Tasks.ResGenTask::WriteCommandLineOptions(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
-	  IL_015f:  nop 
-	  IL_0160:  ldloc.s 6
-	  IL_0162:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0167:  brtrue IL_013c
-
-	  IL_016c:  leave IL_0188
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0171:  ldloc.s 6
-	  IL_0173:  isinst [mscorlib]System.IDisposable
-	  IL_0178:  dup 
-	  IL_0179:  stloc.s 7
-	  IL_017b:  brfalse IL_0187
-
-	  IL_0180:  ldloc.s 7
-	  IL_0182:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0187:  endfinally 
-	} // end handler 1
-	IL_0188:  nop 
-	IL_0189:  br IL_0281
-
-	IL_018e:  nop 
-	IL_018f:  ldarg.0 
-	IL_0190:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_0195:  brtrue IL_01b1
-
-	IL_019a:  nop 
-	IL_019b:  ldstr "NA2027"
-	IL_01a0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01a5:  ldarg.0 
-	IL_01a6:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_01ab:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_01b0:  throw 
-	IL_01b1:  ldarg.0 
-	IL_01b2:  ldarg.0 
-	IL_01b3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_01b8:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_01bd:  stloc.s 8
-	IL_01bf:  ldarg.0 
-	IL_01c0:  ldarg.0 
-	IL_01c1:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_01c6:  ldloc.s 8
-	IL_01c8:  callvirt instance bool class NAnt.DotNet.Tasks.ResGenTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
-	IL_01cd:  brfalse IL_0280
-
-	IL_01d2:  nop 
-	IL_01d3:  ldloc.s 8
-	IL_01d5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_01da:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_01df:  brtrue IL_01f2
-
-	IL_01e4:  nop 
-	IL_01e5:  ldloc.s 8
-	IL_01e7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_01ec:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_01f1:  nop 
-	IL_01f2:  ldarg.0 
-	IL_01f3:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath()
-	IL_01f8:  brfalse IL_0252
-
-	IL_01fd:  nop 
-	IL_01fe:  ldarg.0 
-	IL_01ff:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences()
-	IL_0204:  brfalse IL_0221
-
-	IL_0209:  nop 
-	IL_020a:  ldarg.0 
-	IL_020b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_0210:  ldstr "/useSourcePath"
-	IL_0215:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_021a:  pop 
-	IL_021b:  nop 
-	IL_021c:  br IL_0251
-
-	IL_0221:  nop 
-	IL_0222:  ldarg.0 
-	IL_0223:  ldc.i4 4000
-	IL_0228:  ldstr "String_ResourceCompilerDoesNotSupportExternalReferences"
-	IL_022d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0232:  ldc.i4.1 
-	IL_0233:  newarr [mscorlib]System.Object
-	IL_0238:  dup 
-	IL_0239:  ldc.i4.0 
-	IL_023a:  ldarg.0 
-	IL_023b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0240:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0245:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_024a:  stelem.ref 
-	IL_024b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0250:  nop 
-	IL_0251:  nop 
-	IL_0252:  ldarg.0 
-	IL_0253:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_0258:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_025d:  ldstr " \"{0}\" \"{1}\""
-	IL_0262:  ldarg.0 
-	IL_0263:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_0268:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_026d:  ldloc.s 8
-	IL_026f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0274:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0279:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_027e:  pop 
-	IL_027f:  nop 
-	IL_0280:  nop 
-	IL_0281:  ldarg.0 
-	IL_0282:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_0287:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_028c:  brfalse IL_02f3
-
-	IL_0291:  nop 
-	.try { // 2
-	  IL_0292:  nop 
-	  IL_0293:  ldarg.0 
-	  IL_0294:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_0299:  nop 
-	  IL_029a:  leave IL_02f2
-
-	} // end .try 2
-	finally  { // 2
-	  IL_029f:  nop 
-	  IL_02a0:  ldarg.0 
-	  IL_02a1:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
-	  IL_02a6:  brfalse IL_02f0
-
-	  IL_02ab:  nop 
-	  IL_02ac:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
-	  IL_02b1:  stloc.s 9
-	  IL_02b3:  ldloc.s 9
-	  IL_02b5:  ldarg.0 
-	  IL_02b6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_02bb:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	  IL_02c0:  ldloc.s 9
-	  IL_02c2:  ldarg.0 
-	  IL_02c3:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	  IL_02c8:  ldloc.s 9
-	  IL_02ca:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	  IL_02cf:  ldloc.s 9
-	  IL_02d1:  ldarg.0 
-	  IL_02d2:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
-	  IL_02d7:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_Directory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_02dc:  ldloc.s 9
-	  IL_02de:  ldc.i4 9999
-	  IL_02e3:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	  IL_02e8:  ldloc.s 9
-	  IL_02ea:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_02ef:  nop 
-	  IL_02f0:  nop 
-	  IL_02f1:  endfinally 
-	} // end handler 2
-	IL_02f2:  nop 
-	IL_02f3:  ret 
-    } // end of method ResGenTask::ExecuteTask
-
-    // method line 214
-    .method public hidebysig 
-           instance default void RemoveOutputs ()  cil managed 
-    {
-        // Method begins at RVA 0x8818
-	// Code size 281 (0x119)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.DotNet.Tasks.QualifiedResource	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [mscorlib]System.IO.FileInfo	V_7)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_000d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0012:  stloc.1 
-	.try { // 0
-	  IL_0013:  br IL_005d
-
-	  IL_0018:  ldloc.1 
-	  IL_0019:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_001e:  stloc.0 
-	  IL_001f:  nop 
-	  IL_0020:  ldarg.0 
-	  IL_0021:  ldloc.0 
-	  IL_0022:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	  IL_0027:  ldarg.0 
-	  IL_0028:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	  IL_002d:  ldloc.0 
-	  IL_002e:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string)
-	  IL_0033:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0038:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_003d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
-	  IL_0042:  stloc.2 
-	  IL_0043:  ldloc.0 
-	  IL_0044:  ldloc.2 
-	  IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_004a:  call bool string::op_Inequality(string, string)
-	  IL_004f:  brfalse IL_005c
-
-	  IL_0054:  nop 
-	  IL_0055:  ldloc.2 
-	  IL_0056:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Delete()
-	  IL_005b:  nop 
-	  IL_005c:  nop 
-	  IL_005d:  ldloc.1 
-	  IL_005e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0063:  brtrue IL_0018
-
-	  IL_0068:  leave IL_0081
-
-	} // end .try 0
-	finally  { // 0
-	  IL_006d:  ldloc.1 
-	  IL_006e:  isinst [mscorlib]System.IDisposable
-	  IL_0073:  dup 
-	  IL_0074:  stloc.3 
-	  IL_0075:  brfalse IL_0080
-
-	  IL_007a:  ldloc.3 
-	  IL_007b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0080:  endfinally 
-	} // end handler 0
-	IL_0081:  nop 
-	IL_0082:  ldarg.0 
-	IL_0083:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
-	IL_0088:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_008d:  stloc.s 5
-	.try { // 1
-	  IL_008f:  br IL_00b0
-
-	  IL_0094:  ldloc.s 5
-	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_009b:  castclass NAnt.DotNet.Tasks.QualifiedResource
-	  IL_00a0:  stloc.s 4
-	  IL_00a2:  nop 
-	  IL_00a3:  ldloc.s 4
-	  IL_00a5:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Output()
-	  IL_00aa:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Delete()
-	  IL_00af:  nop 
-	  IL_00b0:  ldloc.s 5
-	  IL_00b2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00b7:  brtrue IL_0094
-
-	  IL_00bc:  leave IL_00d8
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00c1:  ldloc.s 5
-	  IL_00c3:  isinst [mscorlib]System.IDisposable
-	  IL_00c8:  dup 
-	  IL_00c9:  stloc.s 6
-	  IL_00cb:  brfalse IL_00d7
-
-	  IL_00d0:  ldloc.s 6
-	  IL_00d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d7:  endfinally 
-	} // end handler 1
-	IL_00d8:  ldarg.0 
-	IL_00d9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_00de:  brfalse IL_0118
-
-	IL_00e3:  nop 
-	IL_00e4:  ldarg.0 
-	IL_00e5:  ldarg.0 
-	IL_00e6:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_00eb:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_00f0:  stloc.s 7
-	IL_00f2:  ldarg.0 
-	IL_00f3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
-	IL_00f8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00fd:  ldloc.s 7
-	IL_00ff:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0104:  call bool string::op_Inequality(string, string)
-	IL_0109:  brfalse IL_0117
-
-	IL_010e:  nop 
-	IL_010f:  ldloc.s 7
-	IL_0111:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Delete()
-	IL_0116:  nop 
-	IL_0117:  nop 
-	IL_0118:  ret 
-    } // end of method ResGenTask::RemoveOutputs
-
-    // method line 215
-    .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 0x895c
-	// Code size 299 (0x12b)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0007:  brtrue IL_0038
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldc.i4 2000
-	IL_0013:  ldstr "String_OutputFileDoesNotExist"
-	IL_0018:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  ldc.i4.1 
-	IL_001e:  newarr [mscorlib]System.Object
-	IL_0023:  dup 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  ldarg.2 
-	IL_0026:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002b:  stelem.ref 
-	IL_002c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0031:  ldc.i4.1 
-	IL_0032:  stloc.0 
-	IL_0033:  br IL_0129
-
-	IL_0038:  ldarg.1 
-	IL_0039:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_003e:  ldarg.2 
-	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_0077
-
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  ldc.i4 2000
-	IL_0057:  ldstr "String_FileHasBeenUpdated"
-	IL_005c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0061:  ldc.i4.1 
-	IL_0062:  newarr [mscorlib]System.Object
-	IL_0067:  dup 
-	IL_0068:  ldc.i4.0 
-	IL_0069:  ldloc.1 
-	IL_006a:  stelem.ref 
-	IL_006b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0070:  ldc.i4.1 
-	IL_0071:  stloc.0 
-	IL_0072:  br IL_0129
-
-	IL_0077:  ldarg.0 
-	IL_0078:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_007d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0082:  ldarg.2 
-	IL_0083:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0088:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_008d:  stloc.1 
-	IL_008e:  ldloc.1 
-	IL_008f:  brfalse IL_00bb
-
-	IL_0094:  nop 
-	IL_0095:  ldarg.0 
-	IL_0096:  ldc.i4 2000
-	IL_009b:  ldstr "String_FileHasBeenUpdated"
-	IL_00a0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00a5:  ldc.i4.1 
-	IL_00a6:  newarr [mscorlib]System.Object
-	IL_00ab:  dup 
-	IL_00ac:  ldc.i4.0 
-	IL_00ad:  ldloc.1 
-	IL_00ae:  stelem.ref 
-	IL_00af:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00b4:  ldc.i4.1 
-	IL_00b5:  stloc.0 
-	IL_00b6:  br IL_0129
-
-	IL_00bb:  ldarg.1 
-	IL_00bc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
-	IL_00c1:  ldstr ".resx"
-	IL_00c6:  ldc.i4.1 
-	IL_00c7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00cc:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_00d1:  brtrue IL_0122
-
-	IL_00d6:  nop 
-	IL_00d7:  ldarg.0 
-	IL_00d8:  ldarg.1 
-	IL_00d9:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.DotNet.Tasks.ResGenTask::GetExternalFileReferences(class [mscorlib]System.IO.FileInfo)
-	IL_00de:  stloc.2 
-	IL_00df:  ldloc.2 
-	IL_00e0:  brfalse IL_0121
-
-	IL_00e5:  nop 
-	IL_00e6:  ldloc.2 
-	IL_00e7:  ldarg.2 
-	IL_00e8:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_00f2:  stloc.1 
-	IL_00f3:  ldloc.1 
-	IL_00f4:  brfalse IL_0120
-
-	IL_00f9:  nop 
-	IL_00fa:  ldarg.0 
-	IL_00fb:  ldc.i4 2000
-	IL_0100:  ldstr "String_FileHasBeenUpdated"
-	IL_0105:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_010a:  ldc.i4.1 
-	IL_010b:  newarr [mscorlib]System.Object
-	IL_0110:  dup 
-	IL_0111:  ldc.i4.0 
-	IL_0112:  ldloc.1 
-	IL_0113:  stelem.ref 
-	IL_0114:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0119:  ldc.i4.1 
-	IL_011a:  stloc.0 
-	IL_011b:  br IL_0129
-
-	IL_0120:  nop 
-	IL_0121:  nop 
-	IL_0122:  ldc.i4.0 
-	IL_0123:  stloc.0 
-	IL_0124:  br IL_0129
-
-	IL_0129:  ldloc.0 
-	IL_012a:  ret 
-    } // end of method ResGenTask::NeedsCompiling
-
-    // method line 216
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo GetOutputFile (class [mscorlib]System.IO.FileInfo file)  cil managed 
-    {
-        // Method begins at RVA 0x8a94
-	// Code size 110 (0x6e)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_OutputFile()
-	IL_0007:  brtrue IL_005c
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Tasks.ResGenTask::get_ToDirectory()
-	IL_0013:  brtrue IL_0021
-
-	IL_0018:  nop 
-	IL_0019:  ldarg.1 
-	IL_001a:  stloc.0 
-	IL_001b:  nop 
-	IL_001c:  br IL_003f
-
-	IL_0021:  nop 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Tasks.ResGenTask::get_ToDirectory()
-	IL_0028:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002d:  ldarg.1 
-	IL_002e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_0033:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0038:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_003d:  stloc.0 
-	IL_003e:  nop 
-	IL_003f:  ldloc.0 
-	IL_0040:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0045:  ldarg.0 
-	IL_0046:  call instance string class NAnt.DotNet.Tasks.ResGenTask::get_TargetExt()
-	IL_004b:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_0050:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0055:  stloc.0 
-	IL_0056:  nop 
-	IL_0057:  br IL_0065
-
-	IL_005c:  nop 
-	IL_005d:  ldarg.0 
-	IL_005e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_OutputFile()
-	IL_0063:  stloc.0 
-	IL_0064:  nop 
-	IL_0065:  ldloc.0 
-	IL_0066:  stloc.1 
-	IL_0067:  br IL_006c
-
-	IL_006c:  ldloc.1 
-	IL_006d:  ret 
-    } // end of method ResGenTask::GetOutputFile
-
-    // method line 217
-    .method private hidebysig 
-           instance default bool ReferencesThirdPartyAssemblies (string resourceFile)  cil managed 
-    {
-        // Method begins at RVA 0x8b10
-	// Code size 133 (0x85)
-	.maxstack 4
-	.locals init (
-		bool	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1,
-		class [System.Xml]System.Xml.XPath.XPathDocument	V_2,
-		int32	V_3)
-	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:  brtrue IL_0015
-
-	  IL_000d:  nop 
-	  IL_000e:  ldc.i4.0 
-	  IL_000f:  stloc.0 
-	  IL_0010:  leave IL_0083
-
-	  IL_0015:  ldarg.1 
-	  IL_0016:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_001b:  ldstr ".resx"
-	  IL_0020:  ldc.i4.1 
-	  IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0026:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_002b:  brfalse IL_0038
-
-	  IL_0030:  nop 
-	  IL_0031:  ldc.i4.0 
-	  IL_0032:  stloc.0 
-	  IL_0033:  leave IL_0083
-
-	  IL_0038:  ldarg.1 
-	  IL_0039:  ldc.i4.1 
-	  IL_003a:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, bool)
-	  IL_003f:  stloc.1 
-	  .try { // 0
-	    IL_0040:  nop 
-	    IL_0041:  ldloc.1 
-	    IL_0042:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
-	    IL_0047:  newobj instance void class [System.Xml]System.Xml.XPath.XPathDocument::'.ctor'(class [System.Xml]System.Xml.XmlReader)
-	    IL_004c:  stloc.2 
-	    IL_004d:  ldloc.2 
-	    IL_004e:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathDocument::CreateNavigator()
-	    IL_0053:  ldstr "/root/data[@mimetype or (@type and not(starts-with(@type, 'System.') and contains(@type,'PublicKeyToken=')))]"
-	    IL_0058:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
-	    IL_005d:  callvirt instance int32 class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Count()
-	    IL_0062:  stloc.3 
-	    IL_0063:  ldloc.3 
-	    IL_0064:  ldc.i4.0 
-	    IL_0065:  cgt 
-	    IL_0067:  stloc.0 
-	    IL_0068:  leave IL_0083
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_006d:  ldloc.1 
-	    IL_006e:  brfalse IL_0079
-
-	    IL_0073:  ldloc.1 
-	    IL_0074:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0079:  endfinally 
-	  } // end handler 0
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_007a:  pop 
-	  IL_007b:  nop 
-	  IL_007c:  ldc.i4.1 
-	  IL_007d:  stloc.0 
-	  IL_007e:  leave IL_0083
-
-	} // end handler 1
-	IL_0083:  ldloc.0 
-	IL_0084:  ret 
-    } // end of method ResGenTask::ReferencesThirdPartyAssemblies
-
-    // method line 218
-    .method private hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetExternalFileReferences (class [mscorlib]System.IO.FileInfo resxFile)  cil managed 
-    {
-        // Method begins at RVA 0x8bc0
-	// Code size 285 (0x11d)
-	.maxstack 4
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1,
-		class [System.Xml]System.Xml.XPath.XPathDocument	V_2,
-		class [System.Xml]System.Xml.XPath.XPathNavigator	V_3,
-		class [System.Xml]System.Xml.XPath.XPathNodeIterator	V_4,
-		string	V_5,
-		class [System]System.Collections.Specialized.StringCollection	V_6,
-		string	V_7,
-		class [System.Xml]System.Xml.XPath.XPathNodeIterator	V_8,
-		string[]	V_9)
-	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:  ldnull 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_011b
-
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001a:  ldc.i4.1 
-	IL_001b:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, bool)
-	IL_0020:  stloc.1 
-	.try { // 0
-	  IL_0021:  nop 
-	  IL_0022:  ldloc.1 
-	  IL_0023:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
-	  IL_0028:  newobj instance void class [System.Xml]System.Xml.XPath.XPathDocument::'.ctor'(class [System.Xml]System.Xml.XmlReader)
-	  IL_002d:  stloc.2 
-	  IL_002e:  ldloc.2 
-	  IL_002f:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathDocument::CreateNavigator()
-	  IL_0034:  stloc.3 
-	  IL_0035:  ldloc.3 
-	  IL_0036:  ldstr "/root/resheader[@name = 'version']/value"
-	  IL_003b:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
-	  IL_0040:  pop 
-	  IL_0041:  ldloc.3 
-	  IL_0042:  ldstr "/root/resheader[@name = 'version']/value"
-	  IL_0047:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
-	  IL_004c:  stloc.s 4
-	  IL_004e:  ldloc.s 4
-	  IL_0050:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNodeIterator::MoveNext()
-	  IL_0055:  brfalse IL_0083
-
-	  IL_005a:  nop 
-	  IL_005b:  ldloc.s 4
-	  IL_005d:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Current()
-	  IL_0062:  callvirt instance string class [System.Xml]System.Xml.XPath.XPathItem::get_Value()
-	  IL_0067:  stloc.s 5
-	  IL_0069:  ldloc.s 5
-	  IL_006b:  ldstr "1.0.0.0"
-	  IL_0070:  call bool string::op_Equality(string, string)
-	  IL_0075:  brfalse IL_0082
-
-	  IL_007a:  nop 
-	  IL_007b:  ldnull 
-	  IL_007c:  stloc.0 
-	  IL_007d:  leave IL_011b
-
-	  IL_0082:  nop 
-	  IL_0083:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	  IL_0088:  stloc.s 6
-	  IL_008a:  ldarg.0 
-	  IL_008b:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath()
-	  IL_0090:  brfalse IL_00a0
-
-	  IL_0095:  ldarg.1 
-	  IL_0096:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	  IL_009b:  br IL_00ab
-
-	  IL_00a0:  ldarg.0 
-	  IL_00a1:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00a6:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	  IL_00ab:  stloc.s 7
-	  IL_00ad:  ldloc.3 
-	  IL_00ae:  ldstr "/root/data[@type = 'System.Resources.ResXFileRef, System.Windows.Forms']/value"
-	  IL_00b3:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
-	  IL_00b8:  stloc.s 8
-	  IL_00ba:  br IL_00fa
-
-	  IL_00bf:  nop 
-	  IL_00c0:  ldloc.s 8
-	  IL_00c2:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Current()
-	  IL_00c7:  callvirt instance string class [System.Xml]System.Xml.XPath.XPathItem::get_Value()
-	  IL_00cc:  ldc.i4.s 0x3b
-	  IL_00ce:  ldc.i4.0 
-	  IL_00cf:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_00d4:  stloc.s 9
-	  IL_00d6:  ldloc.s 9
-	  IL_00d8:  ldlen 
-	  IL_00d9:  conv.i4 
-	  IL_00da:  ldc.i4.1 
-	  IL_00db:  bgt IL_00e6
-
-	  IL_00e0:  nop 
-	  IL_00e1:  leave IL_00fa
-
-	  IL_00e6:  ldloc.s 6
-	  IL_00e8:  ldloc.s 7
-	  IL_00ea:  ldloc.s 9
-	  IL_00ec:  ldc.i4.0 
-	  IL_00ed:  ldelem.ref 
-	  IL_00ee:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_00f3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00f8:  pop 
-	  IL_00f9:  nop 
-	  IL_00fa:  ldloc.s 8
-	  IL_00fc:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNodeIterator::MoveNext()
-	  IL_0101:  brtrue IL_00bf
-
-	  IL_0106:  ldloc.s 6
-	  IL_0108:  stloc.0 
-	  IL_0109:  leave IL_011b
-
-	} // end .try 0
-	finally  { // 0
-	  IL_010e:  ldloc.1 
-	  IL_010f:  brfalse IL_011a
-
-	  IL_0114:  ldloc.1 
-	  IL_0115:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_011a:  endfinally 
-	} // end handler 0
-	IL_011b:  ldloc.0 
-	IL_011c:  ret 
-    } // end of method ResGenTask::GetExternalFileReferences
-
-    // method line 219
-    .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 0x8cfc
-	// Code size 482 (0x1e2)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		bool	V_1,
-		class [mscorlib]System.Text.StringBuilder	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  callvirt instance bool class NAnt.DotNet.Tasks.ResGenTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
-	IL_0009:  brtrue IL_0014
-
-	IL_000e:  nop 
-	IL_000f:  br IL_01e1
-
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_001a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_001f:  brtrue IL_0031
-
-	IL_0024:  nop 
-	IL_0025:  ldarg.2 
-	IL_0026:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_002b:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_0030:  nop 
-	IL_0031:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0036:  ldstr "\"{0},{1}\" "
-	IL_003b:  ldarg.1 
-	IL_003c:  ldarg.2 
-	IL_003d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0047:  stloc.0 
-	IL_0048:  ldarg.0 
-	IL_0049:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_004e:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0053:  ldloc.0 
-	IL_0054:  callvirt instance int32 string::get_Length()
-	IL_0059:  add 
-	IL_005a:  ldc.i4 30000
-	IL_005f:  cgt 
-	IL_0061:  stloc.1 
-	IL_0062:  ldarg.0 
-	IL_0063:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_0068:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_006d:  brfalse IL_0078
-
-	IL_0072:  ldloc.1 
-	IL_0073:  brfalse IL_015f
-
-	IL_0078:  nop 
-	IL_0079:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_007e:  stloc.2 
-	IL_007f:  ldarg.0 
-	IL_0080:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsAssemblyReferences()
-	IL_0085:  brfalse IL_00e8
-
-	IL_008a:  nop 
-	IL_008b:  nop 
-	IL_008c:  ldarg.0 
-	IL_008d:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_0092:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0097:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_009c:  stloc.s 4
-	.try { // 0
-	  IL_009e:  br IL_00bf
-
-	  IL_00a3:  ldloc.s 4
-	  IL_00a5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00aa:  stloc.3 
-	  IL_00ab:  nop 
-	  IL_00ac:  ldloc.2 
-	  IL_00ad:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00b2:  ldstr "/r:\"{0}\" "
-	  IL_00b7:  ldloc.3 
-	  IL_00b8:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00bd:  pop 
-	  IL_00be:  nop 
-	  IL_00bf:  ldloc.s 4
-	  IL_00c1:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00c6:  brtrue IL_00a3
-
-	  IL_00cb:  leave IL_00e7
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00d0:  ldloc.s 4
-	  IL_00d2:  isinst [mscorlib]System.IDisposable
-	  IL_00d7:  dup 
-	  IL_00d8:  stloc.s 5
-	  IL_00da:  brfalse IL_00e6
-
-	  IL_00df:  ldloc.s 5
-	  IL_00e1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00e6:  endfinally 
-	} // end handler 0
-	IL_00e7:  nop 
-	IL_00e8:  ldarg.0 
-	IL_00e9:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath()
-	IL_00ee:  brfalse IL_0143
-
-	IL_00f3:  nop 
-	IL_00f4:  ldarg.0 
-	IL_00f5:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences()
-	IL_00fa:  brfalse IL_0112
-
-	IL_00ff:  nop 
-	IL_0100:  ldloc.2 
-	IL_0101:  ldstr "/useSourcePath "
-	IL_0106:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_010b:  pop 
-	IL_010c:  nop 
-	IL_010d:  br IL_0142
-
-	IL_0112:  nop 
-	IL_0113:  ldarg.0 
-	IL_0114:  ldc.i4 4000
-	IL_0119:  ldstr "String_ResourceCompilerDoesNotSupportExternalReferences"
-	IL_011e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0123:  ldc.i4.1 
-	IL_0124:  newarr [mscorlib]System.Object
-	IL_0129:  dup 
-	IL_012a:  ldc.i4.0 
-	IL_012b:  ldarg.0 
-	IL_012c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0131:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0136:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_013b:  stelem.ref 
-	IL_013c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0141:  nop 
-	IL_0142:  nop 
-	IL_0143:  ldloc.2 
-	IL_0144:  ldstr "/compile "
-	IL_0149:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_014e:  pop 
-	IL_014f:  ldloc.2 
-	IL_0150:  ldloc.0 
-	IL_0151:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0156:  pop 
-	IL_0157:  ldloc.2 
-	IL_0158:  callvirt instance string object::ToString()
-	IL_015d:  stloc.0 
-	IL_015e:  nop 
-	IL_015f:  ldloc.1 
-	IL_0160:  brfalse IL_01d4
-
-	IL_0165:  nop 
-	.try { // 1
-	  IL_0166:  nop 
-	  IL_0167:  ldarg.0 
-	  IL_0168:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_016d:  nop 
-	  IL_016e:  leave IL_01c7
-
-	} // end .try 1
-	catch class [mscorlib]System.Object { // 1
-	  IL_0173:  pop 
-	  IL_0174:  nop 
-	  IL_0175:  ldarg.0 
-	  IL_0176:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
-	  IL_017b:  brfalse IL_01c5
-
-	  IL_0180:  nop 
-	  IL_0181:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
-	  IL_0186:  stloc.s 6
-	  IL_0188:  ldloc.s 6
-	  IL_018a:  ldarg.0 
-	  IL_018b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0190:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	  IL_0195:  ldloc.s 6
-	  IL_0197:  ldarg.0 
-	  IL_0198:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	  IL_019d:  ldloc.s 6
-	  IL_019f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	  IL_01a4:  ldloc.s 6
-	  IL_01a6:  ldarg.0 
-	  IL_01a7:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
-	  IL_01ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_Directory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_01b1:  ldloc.s 6
-	  IL_01b3:  ldc.i4 9999
-	  IL_01b8:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	  IL_01bd:  ldloc.s 6
-	  IL_01bf:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_01c4:  nop 
-	  IL_01c5:  rethrow 
-	} // end handler 1
-	IL_01c7:  ldarg.0 
-	IL_01c8:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_01cd:  ldc.i4.0 
-	IL_01ce:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
-	IL_01d3:  nop 
-	IL_01d4:  ldarg.0 
-	IL_01d5:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
-	IL_01da:  ldloc.0 
-	IL_01db:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_01e0:  pop 
-	IL_01e1:  ret 
-    } // end of method ResGenTask::WriteCommandLineOptions
-
-	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
-	{
-		.custom instance void class [NAnt.Core]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 00                               ) // uired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::get_InputFile () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_InputFile (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 00                            ) // quired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::get_OutputFile () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string TargetExt ()
-	{
-		.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.Tasks.ResGenTask::get_TargetExt () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_TargetExt (string '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.DotNet.Tasks.ResGenTask::get_ToDirectory () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance bool UseSourcePath ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 75 73 65 73 6F 75 72 63 65 70 61 74 68   // ...usesourcepath
-		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
-
-		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_UseSourcePath (bool 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.ResourceFileSet Resources ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 09 72 65 73 6F 75 72 63 65 73 00 00 ) // ...resources..
-
-		.get instance default class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::get_Resources () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_Resources (class NAnt.DotNet.Types.ResourceFileSet 'value') 
-	}
-	.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 00 00 ) // ...assemblies..
-
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::get_Assemblies () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-	.property instance bool SupportsAssemblyReferences ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 1A 73 75 70 70 6F 72 74 73 61 73 73 65 6D   // ...supportsassem
-		62 6C 79 72 65 66 65 72 65 6E 63 65 73 00 00    ) // blyreferences..
-
-		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_SupportsAssemblyReferences () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_SupportsAssemblyReferences (bool 'value') 
-	}
-	.property instance bool SupportsExternalFileReferences ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 1E 73 75 70 70 6F 72 74 73 65 78 74 65 72   // ...supportsexter
-		6E 61 6C 66 69 6C 65 72 65 66 65 72 65 6E 63 65   // nalfilereference
-		73 00 00                                        ) // s..
-
-		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_SupportsExternalFileReferences (bool 'value') 
-	}
-	.property instance class [mscorlib]System.Collections.ArrayList QualifiedResources ()
-	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources () 
-	}
-	.property instance bool RequiresAssemblyReferences ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_RequiresAssemblyReferences () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::get_BaseDirectory () 
-		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.ResGenTask::get_ProgramArguments () 
-	}
-	.property instance string ProgramFileName ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.ResGenTask::get_ProgramFileName () 
-	}
-  } // end of class NAnt.DotNet.Tasks.ResGenTask
-}
-
-.namespace NAnt.DotNet.Tasks
-{
-  .class public auto ansi beforefieldinit QualifiedResource
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.IO.FileInfo _inputFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-
-    // method line 220
-    .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 0x8f08
-	// 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 [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_inputFile
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_outputFile
-	IL_0015:  ret 
-    } // end of method QualifiedResource::.ctor
-
-    // method line 221
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Input ()  cil managed 
-    {
-        // Method begins at RVA 0x8f20
-	// 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.QualifiedResource::_inputFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method QualifiedResource::get_Input
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CompilerBase::_noWarn
+	IL_000d:  ret 
+    } // end of method CompilerBase::set_NoWarn
 
     // method line 222
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
     {
-        // Method begins at RVA 0x8f3c
+        // Method begins at RVA 0x55f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_outputFile
+	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.CompilerBase::_suppressWarnings
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method QualifiedResource::get_Output
-
-	.property instance class [mscorlib]System.IO.FileInfo Input ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::get_Input () 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Output ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::get_Output () 
-	}
-  } // end of class NAnt.DotNet.Tasks.QualifiedResource
-}
-
-.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
+    } // end of method CompilerBase::get_SuppressWarnings
 
     // method line 223
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x8f57
-	// 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 224
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType get_Action ()  cil managed 
-    {
-        // Method begins at RVA 0x8f90
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 RegsvcsTask::get_Action
-
-    // method line 225
-    .method public hidebysig specialname 
-           instance default void set_Action (valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8fac
-	// 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 226
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
+           instance default bool get_ForceRebuild ()  cil managed 
     {
-        // Method begins at RVA 0x9000
+        // Method begins at RVA 0x5614
 	// 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::_assemblyFile
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_forceRebuild
 	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 CompilerBase::get_ForceRebuild
 
-    // method line 227
+    // method line 224
     .method public hidebysig specialname 
-           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_ForceRebuild (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x901b
+        // Method begins at RVA 0x562f
 	// 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 bool NAnt.DotNet.Tasks.CompilerBase::_forceRebuild
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_AssemblyFile
+    } // end of method CompilerBase::set_ForceRebuild
 
-    // method line 228
+    // method line 225
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_TypeLibrary ()  cil managed 
+           instance default string get_MainType ()  cil managed 
     {
-        // Method begins at RVA 0x9028
+        // Method begins at RVA 0x563c
 	// 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::_typeLibrary
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_mainType
 	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 CompilerBase::get_MainType
 
-    // method line 229
+    // method line 226
     .method public hidebysig specialname 
-           instance default void set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_MainType (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9043
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x5657
+	// Code size 14 (0xe)
 	.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
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CompilerBase::_mainType
+	IL_000d:  ret 
+    } // end of method CompilerBase::set_MainType
 
-    // method line 230
-    .method public hidebysig specialname 
-           instance default bool get_ExistingTypeLibrary ()  cil managed 
+    // method line 227
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x9050
+        // Method begins at RVA 0x5668
 	// 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::_existingTlb
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_keyContainer
 	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 CompilerBase::get_KeyContainer
 
-    // method line 231
-    .method public hidebysig specialname 
-           instance default void set_ExistingTypeLibrary (bool 'value')  cil managed 
+    // method line 228
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x906b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x5683
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
-	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_ExistingTypeLibrary
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CompilerBase::_keyContainer
+	IL_000d:  ret 
+    } // end of method CompilerBase::set_KeyContainer
 
-    // method line 232
-    .method public hidebysig specialname 
-           instance default bool get_NoReconfig ()  cil managed 
+    // method line 229
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x9078
+        // Method begins at RVA 0x5694
 	// 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.RegsvcsTask::_noreconfig
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_keyFile
 	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 CompilerBase::get_KeyFile
 
-    // method line 233
-    .method public hidebysig specialname 
-           instance default void set_NoReconfig (bool 'value')  cil managed 
+    // method line 230
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9093
+        // Method begins at RVA 0x56af
 	// 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 class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_keyFile
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_NoReconfig
+    } // end of method CompilerBase::set_KeyFile
 
-    // method line 234
-    .method public hidebysig specialname 
-           instance default bool get_ComponentsOnly ()  cil managed 
+    // method line 231
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x90a0
+        // Method begins at RVA 0x56bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.DotNet.Types.DelaySign	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
+	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::_delaySign
 	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 CompilerBase::get_DelaySign
 
-    // method line 235
-    .method public hidebysig specialname 
-           instance default void set_ComponentsOnly (bool 'value')  cil managed 
+    // method line 232
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
     {
-        // Method begins at RVA 0x90bb
+        // Method begins at RVA 0x56d7
 	// 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 valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::_delaySign
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_ComponentsOnly
+    } // end of method CompilerBase::set_DelaySign
 
-    // method line 236
+    // method line 233
     .method public hidebysig specialname 
-           instance default bool get_ExistingApplication ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Lib ()  cil managed 
     {
-        // Method begins at RVA 0x90c8
+        // Method begins at RVA 0x56e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_lib
 	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 CompilerBase::get_Lib
 
-    // method line 237
+    // method line 234
     .method public hidebysig specialname 
-           instance default void set_ExistingApplication (bool 'value')  cil managed 
+           instance default void set_Lib (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x90e3
+        // Method begins at RVA 0x56ff
 	// 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 class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_lib
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_ExistingApplication
-
-    // method line 238
-    .method public hidebysig specialname 
-           instance default string get_ApplicationName ()  cil managed 
-    {
-        // Method begins at RVA 0x90f0
-	// 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::_applicationName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_ApplicationName
-
-    // method line 239
-    .method public hidebysig specialname 
-           instance default void set_ApplicationName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x910b
-	// 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::_applicationName
-	IL_000d:  ret 
-    } // end of method RegsvcsTask::set_ApplicationName
-
-    // method line 240
-    .method public hidebysig specialname 
-           instance default string get_PartitionName ()  cil managed 
-    {
-        // Method begins at RVA 0x911c
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_PartitionName
-
-    // method line 241
-    .method public hidebysig specialname 
-           instance default void set_PartitionName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9137
-	// 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_000d:  ret 
-    } // end of method RegsvcsTask::set_PartitionName
-
-    // method line 242
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x9148
-	// 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.RegsvcsTask::_argumentBuilder
-	IL_0007:  brfalse IL_001e
-
-	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_001e:  nop 
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method RegsvcsTask::get_ProgramArguments
-
-    // method line 243
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x917c
-	// 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_001a:  ldloc.0 
-	IL_001b:  brfalse IL_006b
-
-	IL_0020:  ldloc.0 
-	IL_0021:  ldc.i4.2 
-	IL_0022:  beq IL_00aa
-
-	IL_0027:  br IL_00e9
-
-	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_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_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_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_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_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_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_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_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_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_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_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
-
-	.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..
-
-		.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.
-
-		.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 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..
-
-		.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..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.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..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.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 ()
-	{
-		.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 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ComponentsOnly () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ComponentsOnly (bool 'value') 
-	}
-	.property instance bool ExistingApplication ()
-	{
-		.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..
-
-		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ApplicationName (string 'value') 
-	}
-	.property instance string PartitionName ()
-	{
-		.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') 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ProgramArguments () 
-	}
-  .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
-{
-  .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 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 _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 244
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x93b6
-	// Code size 7 (0x7)
-	.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
+    } // end of method CompilerBase::set_Lib
 
-    // method line 245
+    // method line 235
     .method public hidebysig specialname 
-           instance default bool get_AutoRef ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x93c0
+        // Method begins at RVA 0x570c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_autoRef
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_references
 	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 CompilerBase::get_References
 
-    // method line 246
+    // method line 236
     .method public hidebysig specialname 
-           instance default void set_AutoRef (bool 'value')  cil managed 
+           instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x93db
+        // Method begins at RVA 0x5727
 	// 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 NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_references
 	IL_0008:  ret 
-    } // end of method JscTask::set_AutoRef
+    } // end of method CompilerBase::set_References
 
-    // method line 247
-    .method public hidebysig specialname 
-           instance default bool get_NoStdLib ()  cil managed 
+    // method line 237
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.DotNet.Types.PackageCollection get_Packages ()  cil managed 
     {
-        // Method begins at RVA 0x93e8
+        // Method begins at RVA 0x5734
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.PackageCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_nostdlib
+	IL_0002:  ldfld class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::_packages
 	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 CompilerBase::get_Packages
 
-    // method line 248
-    .method public hidebysig specialname 
-           instance default void set_NoStdLib (bool 'value')  cil managed 
+    // method line 238
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Packages (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x9403
+        // Method begins at RVA 0x574f
 	// 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::_nostdlib
+	IL_0003:  stfld class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::_packages
 	IL_0008:  ret 
-    } // end of method JscTask::set_NoStdLib
+    } // end of method CompilerBase::set_Packages
 
-    // method line 249
+    // method line 239
     .method public hidebysig specialname 
-           instance default string get_Platform ()  cil managed 
+           instance default class NAnt.DotNet.Types.ResourceFileSetCollection get_ResourcesList ()  cil managed 
     {
-        // Method begins at RVA 0x9410
+        // Method begins at RVA 0x575c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.ResourceFileSetCollection	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.ResourceFileSetCollection NAnt.DotNet.Tasks.CompilerBase::_resourcesList
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_Platform
-
-    // method line 250
-    .method public hidebysig specialname 
-           instance default void set_Platform (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x942b
-	// 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 CompilerBase::get_ResourcesList
 
-    // method line 251
-    .method public hidebysig specialname 
-           instance default bool get_VersionSafe ()  cil managed 
+    // method line 240
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0x943c
+        // Method begins at RVA 0x5778
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.AssemblyFileSet	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.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_modules
 	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 CompilerBase::get_Modules
 
-    // method line 252
-    .method public hidebysig specialname 
-           instance default void set_VersionSafe (bool 'value')  cil managed 
+    // method line 241
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x9457
+        // Method begins at RVA 0x5793
 	// 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.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_modules
 	IL_0008:  ret 
-    } // end of method JscTask::set_VersionSafe
+    } // end of method CompilerBase::set_Modules
 
-    // method line 253
+    // method line 242
     .method public hidebysig specialname 
-           instance default string get_WarningLevel ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x9464
+        // Method begins at RVA 0x57a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_warningLevel
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_sources
 	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 CompilerBase::get_Sources
 
-    // method line 254
+    // method line 243
     .method public hidebysig specialname 
-           instance default void set_WarningLevel (string 'value')  cil managed 
+           instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x947f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x57bb
+	// 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
-
-    // method line 255
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
-    {
-        // Method begins at RVA 0x9490
-	// 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
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_sources
+	IL_0008:  ret 
+    } // end of method CompilerBase::set_Sources
 
-    // method line 256
-    .method public virtual hidebysig specialname 
-           instance default string get_NoWarn ()  cil managed 
+    // method line 244
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_SupportsPackageReferences ()  cil managed 
     {
-        // Method begins at RVA 0x94ac
+        // Method begins at RVA 0x57c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsPackageReferences
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_NoWarn
+    } // end of method CompilerBase::get_SupportsPackageReferences
 
-    // method line 257
-    .method public virtual hidebysig specialname 
-           instance default void set_NoWarn (string 'value')  cil managed 
+    // method line 245
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SupportsPackageReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x94c7
+        // Method begins at RVA 0x57e3
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsPackageReferences
 	IL_0008:  ret 
-    } // end of method JscTask::set_NoWarn
-
-    // method line 258
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
-    {
-        // Method begins at RVA 0x94d4
-	// 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
+    } // end of method CompilerBase::set_SupportsPackageReferences
 
-    // method line 259
-    .method public hidebysig specialname 
-           instance default string get_Codepage ()  cil managed 
+    // method line 246
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_SupportsWarnAsErrorList ()  cil managed 
     {
-        // Method begins at RVA 0x94f0
+        // Method begins at RVA 0x57f0
 	// 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.JscTask::_codepage
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsWarnAsErrorList
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_Codepage
+    } // end of method CompilerBase::get_SupportsWarnAsErrorList
 
-    // method line 260
-    .method public hidebysig specialname 
-           instance default void set_Codepage (string 'value')  cil managed 
+    // method line 247
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SupportsWarnAsErrorList (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x950b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x580b
+	// 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::_codepage
-	IL_000d:  ret 
-    } // end of method JscTask::set_Codepage
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsWarnAsErrorList
+	IL_0008:  ret 
+    } // end of method CompilerBase::set_SupportsWarnAsErrorList
 
-    // method line 261
-    .method public virtual hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
+    // method line 248
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_SupportsNoWarnList ()  cil managed 
     {
-        // Method begins at RVA 0x951c
+        // Method begins at RVA 0x5818
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsNoWarnList
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_KeyContainer
+    } // end of method CompilerBase::get_SupportsNoWarnList
 
-    // method line 262
-    .method public virtual hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
+    // method line 249
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SupportsNoWarnList (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9537
+        // Method begins at RVA 0x5833
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsNoWarnList
 	IL_0008:  ret 
-    } // end of method JscTask::set_KeyContainer
+    } // end of method CompilerBase::set_SupportsNoWarnList
 
-    // method line 263
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    // method line 250
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_SupportsKeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x9544
+        // Method begins at RVA 0x5840
 	// 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:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsKeyContainer
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_KeyFile
+    } // end of method CompilerBase::get_SupportsKeyContainer
 
-    // method line 264
-    .method public virtual hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 251
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x955f
+        // Method begins at RVA 0x585b
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsKeyContainer
 	IL_0008:  ret 
-    } // end of method JscTask::set_KeyFile
+    } // end of method CompilerBase::set_SupportsKeyContainer
 
-    // method line 265
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
+    // method line 252
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_SupportsKeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x956c
+        // Method begins at RVA 0x5868
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Types.DelaySign	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsKeyFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_DelaySign
+    } // end of method CompilerBase::get_SupportsKeyFile
 
-    // method line 266
-    .method public virtual hidebysig specialname 
-           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
+    // method line 253
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SupportsKeyFile (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9587
+        // Method begins at RVA 0x5883
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsKeyFile
 	IL_0008:  ret 
-    } // end of method JscTask::set_DelaySign
-
-    // method line 267
-    .method public virtual hidebysig specialname 
-           instance default bool get_SupportsKeyContainer ()  cil managed 
-    {
-        // Method begins at RVA 0x9594
-	// 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 268
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x95aa
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method JscTask::set_SupportsKeyContainer
-
-    // method line 269
-    .method public virtual hidebysig specialname 
-           instance default bool get_SupportsKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x95b0
-	// 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 270
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsKeyFile (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x95c6
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method JscTask::set_SupportsKeyFile
+    } // end of method CompilerBase::set_SupportsKeyFile
 
-    // method line 271
-    .method public virtual hidebysig specialname 
+    // method line 254
+    .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsDelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x95cc
-	// 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 272
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsDelaySign (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x95e2
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method JscTask::set_SupportsDelaySign
-
-    // method line 273
-    .method public hidebysig specialname 
-           instance default bool get_SupportsPlatform ()  cil managed 
-    {
-        // Method begins at RVA 0x95e8
+        // Method begins at RVA 0x5890
 	// 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.JscTask::_supportsPlatform
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsDelaySign
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_SupportsPlatform
+    } // end of method CompilerBase::get_SupportsDelaySign
 
-    // method line 274
-    .method public hidebysig specialname 
-           instance default void set_SupportsPlatform (bool 'value')  cil managed 
+    // method line 255
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SupportsDelaySign (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9603
+        // Method begins at RVA 0x58ab
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsDelaySign
 	IL_0008:  ret 
-    } // end of method JscTask::set_SupportsPlatform
+    } // end of method CompilerBase::set_SupportsDelaySign
 
-    // method line 275
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
+    // method line 256
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0x9610
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	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_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x0
+    } // end of method CompilerBase::get_Extension
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_Modules
+    // method line 257
+    .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 276
-    .method public virtual hidebysig specialname 
-           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    // method line 258
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
     {
-        // Method begins at RVA 0x962b
-	// 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_Modules(class NAnt.DotNet.Types.AssemblyFileSet)
-	IL_0008:  ret 
-    } // end of method JscTask::set_Modules
+        // Method begins at RVA 0x0
+    } // end of method CompilerBase::get_NamespaceRegex
 
-    // method line 277
-    .method family virtual hidebysig 
-           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 259
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x9635
-	// Code size 47 (0x2f)
-	.maxstack 8
+        // Method begins at RVA 0x58b8
+	// Code size 30 (0x1e)
+	.maxstack 3
+	.locals init (
+		string	V_0)
 	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:  ldstr "@\""
+	IL_0006:  ldarg.0 
+	IL_0007:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	IL_000c:  ldstr "\""
+	IL_0011:  call string string::Concat(string, string, string)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
 
-	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_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method CompilerBase::get_ProgramArguments
 
-    // method line 278
+    // method line 260
     .method family virtual hidebysig 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x9668
-	// Code size 336 (0x150)
+        // Method begins at RVA 0x58e4
+	// Code size 2158 (0x86e)
 	.maxstack 7
+	.locals init (
+		class [mscorlib]System.IO.StreamWriter	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		valuetype NAnt.DotNet.Types.DelaySign	V_6,
+		string	V_7,
+		class [System]System.Collections.Specialized.StringEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class NAnt.DotNet.Types.ResourceFileSet	V_10,
+		class NAnt.DotNet.Types.ResourceFileSetEnumerator	V_11,
+		string	V_12,
+		class [System]System.Collections.Specialized.StringEnumerator	V_13,
+		string	V_14,
+		string	V_15,
+		class [mscorlib]System.Globalization.CultureInfo	V_16,
+		string	V_17,
+		class [mscorlib]System.IDisposable	V_18,
+		string	V_19,
+		class [System]System.Collections.Specialized.StringEnumerator	V_20,
+		string	V_21,
+		class [mscorlib]System.Globalization.CultureInfo	V_22,
+		string	V_23,
+		class [mscorlib]System.IDisposable	V_24,
+		class [mscorlib]System.IDisposable	V_25,
+		string	V_26,
+		class [System]System.Collections.Specialized.StringEnumerator	V_27,
+		class [mscorlib]System.IDisposable	V_28,
+		class [mscorlib]System.IO.StreamReader	V_29,
+		string	V_30,
+		class [mscorlib]System.Collections.IEnumerator	V_31,
+		string	V_32,
+		class [mscorlib]System.IO.FileInfo	V_33,
+		class [mscorlib]System.IDisposable	V_34,
+		string	V_35,
+		class [System]System.Collections.Specialized.StringEnumerator	V_36,
+		class [mscorlib]System.IDisposable	V_37)
 	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_0002:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
+	IL_0007:  brfalse IL_086d
 
 	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_000e:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	IL_0013:  stfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	IL_001e:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
+	IL_0023:  stloc.0 
+	IL_0024:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0029:  stloc.1 
+	IL_002a:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002f:  stloc.2 
+	.try { // 8
+	  IL_0030:  nop 
+	  IL_0031:  ldarg.0 
+	  IL_0032:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	  IL_0037:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_003c:  brtrue IL_005e
 
-	IL_005a:  ldarg.0 
-	IL_005b:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_AutoRef()
-	IL_0060:  brfalse IL_0073
+	  IL_0041:  nop 
+	  IL_0042:  ldarg.0 
+	  IL_0043:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	  IL_0048:  ldarg.0 
+	  IL_0049:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_004e:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	  IL_0053:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0058:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_005d:  nop 
+	  IL_005e:  ldarg.0 
+	  IL_005f:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Lib()
+	  IL_0064:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_0069:  brtrue IL_008b
 
-	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_006e:  nop 
+	  IL_006f:  ldarg.0 
+	  IL_0070:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Lib()
+	  IL_0075:  ldarg.0 
+	  IL_0076:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_007b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	  IL_0080:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0085:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_008a:  nop 
+	  IL_008b:  ldarg.0 
+	  IL_008c:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	  IL_0091:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_0096:  brtrue IL_00b8
 
-	IL_007e:  nop 
+	  IL_009b:  nop 
+	  IL_009c:  ldarg.0 
+	  IL_009d:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	  IL_00a2:  ldarg.0 
+	  IL_00a3:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00a8:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	  IL_00ad:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_00b2:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_00b7:  nop 
+	  IL_00b8:  ldarg.0 
+	  IL_00b9:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
+	  IL_00be:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_00c3:  brtrue IL_00e5
+
+	  IL_00c8:  nop 
+	  IL_00c9:  ldarg.0 
+	  IL_00ca:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
+	  IL_00cf:  ldarg.0 
+	  IL_00d0:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00d5:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	  IL_00da:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_00df:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_00e4:  nop 
+	  IL_00e5:  nop 
+	  IL_00e6:  ldarg.0 
+	  IL_00e7:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Lib()
+	  IL_00ec:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
+	  IL_00f1:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_00f6:  stloc.s 4
+	  .try { // 0
+	    IL_00f8:  br IL_0135
+
+	    IL_00fd:  ldloc.s 4
+	    IL_00ff:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0104:  stloc.3 
+	    IL_0105:  nop 
+	    IL_0106:  ldarg.0 
+	    IL_0107:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	    IL_010c:  callvirt instance class NAnt.DotNet.Types.LibDirectorySet class NAnt.DotNet.Types.AssemblyFileSet::get_Lib()
+	    IL_0111:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
+	    IL_0116:  ldloc.3 
+	    IL_0117:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_011c:  pop 
+	    IL_011d:  ldarg.0 
+	    IL_011e:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	    IL_0123:  callvirt instance class NAnt.DotNet.Types.LibDirectorySet class NAnt.DotNet.Types.AssemblyFileSet::get_Lib()
+	    IL_0128:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
+	    IL_012d:  ldloc.3 
+	    IL_012e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0133:  pop 
+	    IL_0134:  nop 
+	    IL_0135:  ldloc.s 4
+	    IL_0137:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_013c:  brtrue IL_00fd
+
+	    IL_0141:  leave IL_015d
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0146:  ldloc.s 4
+	    IL_0148:  isinst [mscorlib]System.IDisposable
+	    IL_014d:  dup 
+	    IL_014e:  stloc.s 5
+	    IL_0150:  brfalse IL_015c
+
+	    IL_0155:  ldloc.s 5
+	    IL_0157:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_015c:  endfinally 
+	  } // end handler 0
+	  IL_015d:  ldarg.0 
+	  IL_015e:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	  IL_0163:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
+	  IL_0168:  ldarg.0 
+	  IL_0169:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	  IL_016e:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
+	  IL_0173:  ldarg.0 
+	  IL_0174:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	  IL_0179:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	  IL_017e:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0183:  brtrue IL_019b
+
+	  IL_0188:  nop 
+	  IL_0189:  ldarg.0 
+	  IL_018a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	  IL_018f:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	  IL_0194:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_0199:  pop 
+	  IL_019a:  nop 
+	  IL_019b:  ldarg.0 
+	  IL_019c:  ldc.i4 3000
+	  IL_01a1:  ldstr "String_CompilingFiles"
+	  IL_01a6:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_01ab:  ldc.i4.2 
+	  IL_01ac:  newarr [mscorlib]System.Object
+	  IL_01b1:  dup 
+	  IL_01b2:  ldc.i4.0 
+	  IL_01b3:  ldarg.0 
+	  IL_01b4:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
+	  IL_01b9:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_01be:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	  IL_01c3:  box [mscorlib]System.Int32
+	  IL_01c8:  stelem.ref 
+	  IL_01c9:  dup 
+	  IL_01ca:  ldc.i4.1 
+	  IL_01cb:  ldarg.0 
+	  IL_01cc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	  IL_01d1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01d6:  stelem.ref 
+	  IL_01d7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_01dc:  ldarg.0 
+	  IL_01dd:  ldloc.0 
+	  IL_01de:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOptions(class [mscorlib]System.IO.TextWriter)
+	  IL_01e3:  ldarg.0 
+	  IL_01e4:  ldloc.0 
+	  IL_01e5:  ldstr "nologo"
+	  IL_01ea:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	  IL_01ef:  ldarg.0 
+	  IL_01f0:  ldloc.0 
+	  IL_01f1:  ldstr "target"
+	  IL_01f6:  ldarg.0 
+	  IL_01f7:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_OutputTarget()
+	  IL_01fc:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_0201:  ldarg.0 
+	  IL_0202:  ldloc.0 
+	  IL_0203:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteConditionalCompilationConstants(class [mscorlib]System.IO.TextWriter)
+	  IL_0208:  ldarg.0 
+	  IL_0209:  ldloc.0 
+	  IL_020a:  ldstr "out"
+	  IL_020f:  ldarg.0 
+	  IL_0210:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	  IL_0215:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_021a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_021f:  ldarg.0 
+	  IL_0220:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
+	  IL_0225:  brfalse IL_0243
+
+	  IL_022a:  nop 
+	  IL_022b:  ldarg.0 
+	  IL_022c:  ldloc.0 
+	  IL_022d:  ldstr "win32icon"
+	  IL_0232:  ldarg.0 
+	  IL_0233:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
+	  IL_0238:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_023d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_0242:  nop 
+	  IL_0243:  ldarg.0 
+	  IL_0244:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_MainType()
+	  IL_0249:  brfalse IL_0262
+
+	  IL_024e:  nop 
+	  IL_024f:  ldarg.0 
+	  IL_0250:  ldloc.0 
+	  IL_0251:  ldstr "main"
+	  IL_0256:  ldarg.0 
+	  IL_0257:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_MainType()
+	  IL_025c:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_0261:  nop 
+	  IL_0262:  ldarg.0 
+	  IL_0263:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
+	  IL_0268:  brfalse IL_02c3
+
+	  IL_026d:  nop 
+	  IL_026e:  ldarg.0 
+	  IL_026f:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyContainer()
+	  IL_0274:  brfalse IL_0292
+
+	  IL_0279:  nop 
+	  IL_027a:  ldarg.0 
+	  IL_027b:  ldloc.0 
+	  IL_027c:  ldstr "keycontainer"
+	  IL_0281:  ldarg.0 
+	  IL_0282:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
+	  IL_0287:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_028c:  nop 
+	  IL_028d:  br IL_02c2
+
+	  IL_0292:  nop 
+	  IL_0293:  ldarg.0 
+	  IL_0294:  ldc.i4 4000
+	  IL_0299:  ldstr "String_CompilerDoesNotSupportKeyContainer"
+	  IL_029e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_02a3:  ldc.i4.1 
+	  IL_02a4:  newarr [mscorlib]System.Object
+	  IL_02a9:  dup 
+	  IL_02aa:  ldc.i4.0 
+	  IL_02ab:  ldarg.0 
+	  IL_02ac:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_02b1:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	  IL_02b6:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	  IL_02bb:  stelem.ref 
+	  IL_02bc:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_02c1:  nop 
+	  IL_02c2:  nop 
+	  IL_02c3:  ldarg.0 
+	  IL_02c4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
+	  IL_02c9:  brfalse IL_0329
+
+	  IL_02ce:  nop 
+	  IL_02cf:  ldarg.0 
+	  IL_02d0:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyFile()
+	  IL_02d5:  brfalse IL_02f8
+
+	  IL_02da:  nop 
+	  IL_02db:  ldarg.0 
+	  IL_02dc:  ldloc.0 
+	  IL_02dd:  ldstr "keyfile"
+	  IL_02e2:  ldarg.0 
+	  IL_02e3:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
+	  IL_02e8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_02ed:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_02f2:  nop 
+	  IL_02f3:  br IL_0328
+
+	  IL_02f8:  nop 
+	  IL_02f9:  ldarg.0 
+	  IL_02fa:  ldc.i4 4000
+	  IL_02ff:  ldstr "String_CompilerDoesNotSupportKeyFile"
+	  IL_0304:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0309:  ldc.i4.1 
+	  IL_030a:  newarr [mscorlib]System.Object
+	  IL_030f:  dup 
+	  IL_0310:  ldc.i4.0 
+	  IL_0311:  ldarg.0 
+	  IL_0312:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0317:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	  IL_031c:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	  IL_0321:  stelem.ref 
+	  IL_0322:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0327:  nop 
+	  IL_0328:  nop 
+	  IL_0329:  ldarg.0 
+	  IL_032a:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
+	  IL_032f:  brfalse IL_03d7
+
+	  IL_0334:  nop 
+	  IL_0335:  ldarg.0 
+	  IL_0336:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsDelaySign()
+	  IL_033b:  brfalse IL_03a6
+
+	  IL_0340:  nop 
+	  IL_0341:  ldarg.0 
+	  IL_0342:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
+	  IL_0347:  stloc.s 6
+	  IL_0349:  ldloc.s 6
+	  IL_034b:  ldc.i4.2 
+	  IL_034c:  beq IL_035e
+
+	  IL_0351:  ldloc.s 6
+	  IL_0353:  ldc.i4.1 
+	  IL_0354:  beq IL_036f
+
+	  IL_0359:  br IL_0380
+
+	  IL_035e:  ldarg.0 
+	  IL_035f:  ldloc.0 
+	  IL_0360:  ldstr "delaysign+"
+	  IL_0365:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	  IL_036a:  leave IL_03a0
+
+	  IL_036f:  ldarg.0 
+	  IL_0370:  ldloc.0 
+	  IL_0371:  ldstr "delaysign-"
+	  IL_0376:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	  IL_037b:  leave IL_03a0
+
+	  IL_0380:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0385:  ldstr "The {0}value for \"delaysign\" is not supported."
+	  IL_038a:  ldarg.0 
+	  IL_038b:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
+	  IL_0390:  box NAnt.DotNet.Types.DelaySign
+	  IL_0395:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_039a:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	  IL_039f:  throw 
+	  IL_03a0:  nop 
+	  IL_03a1:  br IL_03d6
+
+	  IL_03a6:  nop 
+	  IL_03a7:  ldarg.0 
+	  IL_03a8:  ldc.i4 4000
+	  IL_03ad:  ldstr "String_CompilerDoesNotSupportDelaySign"
+	  IL_03b2:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_03b7:  ldc.i4.1 
+	  IL_03b8:  newarr [mscorlib]System.Object
+	  IL_03bd:  dup 
+	  IL_03be:  ldc.i4.0 
+	  IL_03bf:  ldarg.0 
+	  IL_03c0:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_03c5:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	  IL_03ca:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	  IL_03cf:  stelem.ref 
+	  IL_03d0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_03d5:  nop 
+	  IL_03d6:  nop 
+	  IL_03d7:  ldarg.0 
+	  IL_03d8:  ldloc.0 
+	  IL_03d9:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WritePackageReferences(class [mscorlib]System.IO.TextWriter)
+	  IL_03de:  ldarg.0 
+	  IL_03df:  ldloc.0 
+	  IL_03e0:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteWarningsAsError(class [mscorlib]System.IO.TextWriter)
+	  IL_03e5:  ldarg.0 
+	  IL_03e6:  ldloc.0 
+	  IL_03e7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteNoWarnList(class [mscorlib]System.IO.TextWriter)
+	  IL_03ec:  nop 
+	  IL_03ed:  ldarg.0 
+	  IL_03ee:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	  IL_03f3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_03f8:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_03fd:  stloc.s 8
+	  .try { // 1
+	    IL_03ff:  br IL_041d
+
+	    IL_0404:  ldloc.s 8
+	    IL_0406:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_040b:  stloc.s 7
+	    IL_040d:  nop 
+	    IL_040e:  ldarg.0 
+	    IL_040f:  ldloc.0 
+	    IL_0410:  ldstr "reference"
+	    IL_0415:  ldloc.s 7
+	    IL_0417:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	    IL_041c:  nop 
+	    IL_041d:  ldloc.s 8
+	    IL_041f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0424:  brtrue IL_0404
+
+	    IL_0429:  leave IL_0445
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_042e:  ldloc.s 8
+	    IL_0430:  isinst [mscorlib]System.IDisposable
+	    IL_0435:  dup 
+	    IL_0436:  stloc.s 9
+	    IL_0438:  brfalse IL_0444
+
+	    IL_043d:  ldloc.s 9
+	    IL_043f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0444:  endfinally 
+	  } // end handler 1
+	  IL_0445:  ldarg.0 
+	  IL_0446:  ldloc.0 
+	  IL_0447:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteModuleReferences(class [mscorlib]System.IO.TextWriter)
+	  IL_044c:  nop 
+	  IL_044d:  ldarg.0 
+	  IL_044e:  call instance class NAnt.DotNet.Types.ResourceFileSetCollection class NAnt.DotNet.Tasks.CompilerBase::get_ResourcesList()
+	  IL_0453:  callvirt instance class NAnt.DotNet.Types.ResourceFileSetEnumerator class NAnt.DotNet.Types.ResourceFileSetCollection::GetEnumerator()
+	  IL_0458:  stloc.s 11
+	  .try { // 4
+	    IL_045a:  br IL_0670
+
+	    IL_045f:  ldloc.s 11
+	    IL_0461:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Types.ResourceFileSetEnumerator::get_Current()
+	    IL_0466:  stloc.s 10
+	    IL_0468:  nop 
+	    IL_0469:  ldloc.s 10
+	    IL_046b:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles()
+	    IL_0470:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_0475:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	    IL_047a:  ldc.i4.0 
+	    IL_047b:  ble IL_058d
+
+	    IL_0480:  nop 
+	    IL_0481:  ldarg.0 
+	    IL_0482:  ldloc.s 10
+	    IL_0484:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles()
+	    IL_0489:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_048e:  call instance void class NAnt.DotNet.Tasks.CompilerBase::CompileResxResources(class [System]System.Collections.Specialized.StringCollection)
+	    IL_0493:  nop 
+	    IL_0494:  ldloc.s 10
+	    IL_0496:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles()
+	    IL_049b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_04a0:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	    IL_04a5:  stloc.s 13
+	    .try { // 2
+	      IL_04a7:  br IL_0564
+
+	      IL_04ac:  ldloc.s 13
+	      IL_04ae:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	      IL_04b3:  stloc.s 12
+	      IL_04b5:  nop 
+	      IL_04b6:  ldarg.0 
+	      IL_04b7:  ldloc.s 10
+	      IL_04b9:  ldloc.s 12
+	      IL_04bb:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string)
+	      IL_04c0:  stloc.s 14
+	      IL_04c2:  ldloc.s 12
+	      IL_04c4:  ldstr ".resources"
+	      IL_04c9:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	      IL_04ce:  stloc.s 15
+	      IL_04d0:  ldloc.2 
+	      IL_04d1:  ldloc.s 15
+	      IL_04d3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	      IL_04d8:  pop 
+	      IL_04d9:  ldloc.s 12
+	      IL_04db:  ldloc.s 12
+	      IL_04dd:  ldarg.0 
+	      IL_04de:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_Extension()
+	      IL_04e3:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	      IL_04e8:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
+	      IL_04ed:  stloc.s 16
+	      IL_04ef:  ldloc.s 16
+	      IL_04f1:  brfalse IL_053e
+
+	      IL_04f6:  nop 
+	      IL_04f7:  ldloc.1 
+	      IL_04f8:  ldloc.s 16
+	      IL_04fa:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	      IL_04ff:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	      IL_0504:  brtrue IL_051d
+
+	      IL_0509:  nop 
+	      IL_050a:  ldloc.1 
+	      IL_050b:  ldloc.s 16
+	      IL_050d:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	      IL_0512:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	      IL_0517:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	      IL_051c:  nop 
+	      IL_051d:  ldloc.1 
+	      IL_051e:  ldloc.s 16
+	      IL_0520:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	      IL_0525:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	      IL_052a:  castclass [mscorlib]System.Collections.Hashtable
+	      IL_052f:  ldloc.s 14
+	      IL_0531:  ldloc.s 15
+	      IL_0533:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	      IL_0538:  nop 
+	      IL_0539:  br IL_0563
+
+	      IL_053e:  nop 
+	      IL_053f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	      IL_0544:  ldstr "{0},{1}"
+	      IL_0549:  ldloc.s 15
+	      IL_054b:  ldloc.s 14
+	      IL_054d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	      IL_0552:  stloc.s 17
+	      IL_0554:  ldarg.0 
+	      IL_0555:  ldloc.0 
+	      IL_0556:  ldstr "resource"
+	      IL_055b:  ldloc.s 17
+	      IL_055d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	      IL_0562:  nop 
+	      IL_0563:  nop 
+	      IL_0564:  ldloc.s 13
+	      IL_0566:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	      IL_056b:  brtrue IL_04ac
+
+	      IL_0570:  leave IL_058c
+
+	    } // end .try 2
+	    finally  { // 2
+	      IL_0575:  ldloc.s 13
+	      IL_0577:  isinst [mscorlib]System.IDisposable
+	      IL_057c:  dup 
+	      IL_057d:  stloc.s 18
+	      IL_057f:  brfalse IL_058b
+
+	      IL_0584:  ldloc.s 18
+	      IL_0586:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_058b:  endfinally 
+	    } // end handler 2
+	    IL_058c:  nop 
+	    IL_058d:  nop 
+	    IL_058e:  ldloc.s 10
+	    IL_0590:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_NonResxFiles()
+	    IL_0595:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_059a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	    IL_059f:  stloc.s 20
+	    .try { // 3
+	      IL_05a1:  br IL_0647
+
+	      IL_05a6:  ldloc.s 20
+	      IL_05a8:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	      IL_05ad:  stloc.s 19
+	      IL_05af:  nop 
+	      IL_05b0:  ldarg.0 
+	      IL_05b1:  ldloc.s 10
+	      IL_05b3:  ldloc.s 19
+	      IL_05b5:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string)
+	      IL_05ba:  stloc.s 21
+	      IL_05bc:  ldloc.s 19
+	      IL_05be:  ldloc.s 19
+	      IL_05c0:  ldarg.0 
+	      IL_05c1:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_Extension()
+	      IL_05c6:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	      IL_05cb:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
+	      IL_05d0:  stloc.s 22
+	      IL_05d2:  ldloc.s 22
+	      IL_05d4:  brfalse IL_0621
+
+	      IL_05d9:  nop 
+	      IL_05da:  ldloc.1 
+	      IL_05db:  ldloc.s 22
+	      IL_05dd:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	      IL_05e2:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	      IL_05e7:  brtrue IL_0600
+
+	      IL_05ec:  nop 
+	      IL_05ed:  ldloc.1 
+	      IL_05ee:  ldloc.s 22
+	      IL_05f0:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	      IL_05f5:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	      IL_05fa:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	      IL_05ff:  nop 
+	      IL_0600:  ldloc.1 
+	      IL_0601:  ldloc.s 22
+	      IL_0603:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	      IL_0608:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	      IL_060d:  castclass [mscorlib]System.Collections.Hashtable
+	      IL_0612:  ldloc.s 21
+	      IL_0614:  ldloc.s 19
+	      IL_0616:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	      IL_061b:  nop 
+	      IL_061c:  br IL_0646
+
+	      IL_0621:  nop 
+	      IL_0622:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	      IL_0627:  ldstr "{0},{1}"
+	      IL_062c:  ldloc.s 19
+	      IL_062e:  ldloc.s 21
+	      IL_0630:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	      IL_0635:  stloc.s 23
+	      IL_0637:  ldarg.0 
+	      IL_0638:  ldloc.0 
+	      IL_0639:  ldstr "resource"
+	      IL_063e:  ldloc.s 23
+	      IL_0640:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	      IL_0645:  nop 
+	      IL_0646:  nop 
+	      IL_0647:  ldloc.s 20
+	      IL_0649:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	      IL_064e:  brtrue IL_05a6
+
+	      IL_0653:  leave IL_066f
+
+	    } // end .try 3
+	    finally  { // 3
+	      IL_0658:  ldloc.s 20
+	      IL_065a:  isinst [mscorlib]System.IDisposable
+	      IL_065f:  dup 
+	      IL_0660:  stloc.s 24
+	      IL_0662:  brfalse IL_066e
+
+	      IL_0667:  ldloc.s 24
+	      IL_0669:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_066e:  endfinally 
+	    } // end handler 3
+	    IL_066f:  nop 
+	    IL_0670:  ldloc.s 11
+	    IL_0672:  callvirt instance bool class NAnt.DotNet.Types.ResourceFileSetEnumerator::MoveNext()
+	    IL_0677:  brtrue IL_045f
+
+	    IL_067c:  leave IL_0698
+
+	  } // end .try 4
+	  finally  { // 4
+	    IL_0681:  ldloc.s 11
+	    IL_0683:  isinst [mscorlib]System.IDisposable
+	    IL_0688:  dup 
+	    IL_0689:  stloc.s 25
+	    IL_068b:  brfalse IL_0697
+
+	    IL_0690:  ldloc.s 25
+	    IL_0692:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0697:  endfinally 
+	  } // end handler 4
+	  IL_0698:  nop 
+	  IL_0699:  ldarg.0 
+	  IL_069a:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
+	  IL_069f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_06a4:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_06a9:  stloc.s 27
+	  .try { // 5
+	    IL_06ab:  br IL_06d2
+
+	    IL_06b0:  ldloc.s 27
+	    IL_06b2:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_06b7:  stloc.s 26
+	    IL_06b9:  nop 
+	    IL_06ba:  ldloc.0 
+	    IL_06bb:  ldstr "\""
+	    IL_06c0:  ldloc.s 26
+	    IL_06c2:  ldstr "\""
+	    IL_06c7:  call string string::Concat(string, string, string)
+	    IL_06cc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_06d1:  nop 
+	    IL_06d2:  ldloc.s 27
+	    IL_06d4:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_06d9:  brtrue IL_06b0
+
+	    IL_06de:  leave IL_06fa
+
+	  } // end .try 5
+	  finally  { // 5
+	    IL_06e3:  ldloc.s 27
+	    IL_06e5:  isinst [mscorlib]System.IDisposable
+	    IL_06ea:  dup 
+	    IL_06eb:  stloc.s 28
+	    IL_06ed:  brfalse IL_06f9
+
+	    IL_06f2:  ldloc.s 28
+	    IL_06f4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_06f9:  endfinally 
+	  } // end handler 5
+	  IL_06fa:  ldloc.0 
+	  IL_06fb:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_0700:  ldarg.0 
+	  IL_0701:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_0706:  brfalse IL_0757
+
+	  IL_070b:  nop 
+	  IL_070c:  ldarg.0 
+	  IL_070d:  ldc.i4 3000
+	  IL_0712:  ldstr "String_ContentsOf"
+	  IL_0717:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_071c:  ldc.i4.1 
+	  IL_071d:  newarr [mscorlib]System.Object
+	  IL_0722:  dup 
+	  IL_0723:  ldc.i4.0 
+	  IL_0724:  ldarg.0 
+	  IL_0725:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	  IL_072a:  stelem.ref 
+	  IL_072b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0730:  ldarg.0 
+	  IL_0731:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	  IL_0736:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
+	  IL_073b:  stloc.s 29
+	  IL_073d:  ldarg.0 
+	  IL_073e:  ldc.i4 3000
+	  IL_0743:  ldloc.s 29
+	  IL_0745:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_074a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_074f:  ldloc.s 29
+	  IL_0751:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_0756:  nop 
+	  IL_0757:  ldarg.0 
+	  IL_0758:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_075d:  nop 
+	  IL_075e:  ldloc.1 
+	  IL_075f:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	  IL_0764:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	  IL_0769:  stloc.s 31
+	  .try { // 6
+	    IL_076b:  br IL_07db
+
+	    IL_0770:  ldloc.s 31
+	    IL_0772:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0777:  castclass [mscorlib]System.String
+	    IL_077c:  stloc.s 30
+	    IL_077e:  nop 
+	    IL_077f:  ldarg.0 
+	    IL_0780:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	    IL_0785:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	    IL_078a:  ldloc.s 30
+	    IL_078c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	    IL_0791:  stloc.s 32
+	    IL_0793:  ldloc.s 32
+	    IL_0795:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	    IL_079a:  pop 
+	    IL_079b:  ldloc.s 32
+	    IL_079d:  ldarg.0 
+	    IL_079e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	    IL_07a3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	    IL_07a8:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	    IL_07ad:  ldstr ".resources.dll"
+	    IL_07b2:  call string string::Concat(string, string)
+	    IL_07b7:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	    IL_07bc:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	    IL_07c1:  stloc.s 33
+	    IL_07c3:  ldarg.0 
+	    IL_07c4:  ldloc.1 
+	    IL_07c5:  ldloc.s 30
+	    IL_07c7:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	    IL_07cc:  castclass [mscorlib]System.Collections.Hashtable
+	    IL_07d1:  ldloc.s 33
+	    IL_07d3:  ldloc.s 30
+	    IL_07d5:  call instance void class NAnt.DotNet.Tasks.CompilerBase::LinkResourceAssembly(class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.IO.FileInfo, string)
+	    IL_07da:  nop 
+	    IL_07db:  ldloc.s 31
+	    IL_07dd:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_07e2:  brtrue IL_0770
+
+	    IL_07e7:  leave IL_0803
+
+	  } // end .try 6
+	  finally  { // 6
+	    IL_07ec:  ldloc.s 31
+	    IL_07ee:  isinst [mscorlib]System.IDisposable
+	    IL_07f3:  dup 
+	    IL_07f4:  stloc.s 34
+	    IL_07f6:  brfalse IL_0802
+
+	    IL_07fb:  ldloc.s 34
+	    IL_07fd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0802:  endfinally 
+	  } // end handler 6
+	  IL_0803:  nop 
+	  IL_0804:  leave IL_086c
+
+	} // end .try 8
+	finally  { // 8
+	  IL_0809:  nop 
+	  IL_080a:  nop 
+	  IL_080b:  ldloc.2 
+	  IL_080c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0811:  stloc.s 36
+	  .try { // 7
+	    IL_0813:  br IL_082a
+
+	    IL_0818:  ldloc.s 36
+	    IL_081a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_081f:  stloc.s 35
+	    IL_0821:  nop 
+	    IL_0822:  ldloc.s 35
+	    IL_0824:  call void class [mscorlib]System.IO.File::Delete(string)
+	    IL_0829:  nop 
+	    IL_082a:  ldloc.s 36
+	    IL_082c:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0831:  brtrue IL_0818
+
+	    IL_0836:  leave IL_0852
+
+	  } // end .try 7
+	  finally  { // 7
+	    IL_083b:  ldloc.s 36
+	    IL_083d:  isinst [mscorlib]System.IDisposable
+	    IL_0842:  dup 
+	    IL_0843:  stloc.s 37
+	    IL_0845:  brfalse IL_0851
+
+	    IL_084a:  ldloc.s 37
+	    IL_084c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0851:  endfinally 
+	  } // end handler 7
+	  IL_0852:  ldloc.0 
+	  IL_0853:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_0858:  ldarg.0 
+	  IL_0859:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	  IL_085e:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_0863:  ldarg.0 
+	  IL_0864:  ldnull 
+	  IL_0865:  stfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
+	  IL_086a:  nop 
+	  IL_086b:  endfinally 
+	} // end handler 8
+	IL_086c:  nop 
+	IL_086d:  ret 
+    } // end of method CompilerBase::ExecuteTask
+
+    // method line 261
+    .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 0x623c
+	// Code size 636 (0x27c)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Globalization.CultureInfo	V_1,
+		string	V_2,
+		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6,
+		string[]	V_7,
+		int32	V_8,
+		int32	V_9,
+		string	V_10)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "resources"
+	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 "resourcePhysicalFile"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.3 
+	IL_0026:  brtrue IL_0037
+
+	IL_002b:  nop 
+	IL_002c:  ldstr "resourceLogicalFile"
+	IL_0031:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0036:  throw 
+	IL_0037:  ldarg.2 
+	IL_0038:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_003d:  brtrue IL_0064
+
+	IL_0042:  nop 
+	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0048:  ldstr "NA2009"
+	IL_004d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0052:  ldarg.2 
+	IL_0053:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0058:  ldarg.0 
+	IL_0059:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_005e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0063:  throw 
+	IL_0064:  ldnull 
+	IL_0065:  stloc.0 
+	IL_0066:  ldarg.3 
+	IL_0067:  ldarg.s 4
+	IL_0069:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
+	IL_006e:  stloc.1 
+	IL_006f:  ldarg.2 
+	IL_0070:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0075:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_007a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_007f:  stloc.2 
+	IL_0080:  ldloc.2 
+	IL_0081:  brfalse IL_01c9
+
+	IL_0086:  ldloc.2 
+	IL_0087:  ldstr ".resx"
+	IL_008c:  call bool string::op_Equality(string, string)
+	IL_0091:  brtrue IL_00ab
+
+	IL_0096:  ldloc.2 
+	IL_0097:  ldstr ".resources"
+	IL_009c:  call bool string::op_Equality(string, string)
+	IL_00a1:  brtrue IL_01bb
+
+	IL_00a6:  br IL_01c9
+
+	IL_00ab:  ldarg.0 
+	IL_00ac:  ldarg.s 4
+	IL_00ae:  ldloc.1 
+	IL_00af:  callvirt instance class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage class NAnt.DotNet.Tasks.CompilerBase::GetResourceLinkage(string, class [mscorlib]System.Globalization.CultureInfo)
+	IL_00b4:  stloc.3 
+	IL_00b5:  ldloc.3 
+	IL_00b6:  brfalse IL_00c6
+
+	IL_00bb:  ldloc.3 
+	IL_00bc:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
+	IL_00c1:  brtrue IL_00e0
+
+	IL_00c6:  nop 
+	IL_00c7:  ldarg.1 
+	IL_00c8:  ldarg.2 
+	IL_00c9:  ldarg.3 
+	IL_00ca:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
+	IL_00cf:  ldstr "resources"
+	IL_00d4:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_00d9:  stloc.0 
+	IL_00da:  nop 
+	IL_00db:  br IL_01b6
+
+	IL_00e0:  nop 
+	IL_00e1:  ldloc.3 
+	IL_00e2:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasClassName()
+	IL_00e7:  brtrue IL_0170
+
+	IL_00ec:  nop 
+	IL_00ed:  ldarg.2 
+	IL_00ee:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_00f3:  stloc.s 4
+	IL_00f5:  ldloc.s 4
+	IL_00f7:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_00fc:  ldsfld string [mscorlib]System.String::Empty
+	IL_0101:  call bool string::op_Inequality(string, string)
+	IL_0106:  brfalse IL_0167
+
+	IL_010b:  nop 
+	IL_010c:  ldloc.s 4
+	IL_010e:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0113:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0118:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_011d:  stloc.s 5
+	IL_011f:  nop 
+	IL_0120:  ldsfld string[] NAnt.DotNet.Tasks.CompilerBase::CodebehindExtensions
+	IL_0125:  stloc.s 7
+	IL_0127:  ldc.i4.0 
+	IL_0128:  stloc.s 8
+	IL_012a:  br IL_015b
+
+	IL_012f:  ldloc.s 7
+	IL_0131:  ldloc.s 8
+	IL_0133:  ldelem.ref 
+	IL_0134:  stloc.s 6
+	IL_0136:  nop 
+	IL_0137:  ldloc.s 6
+	IL_0139:  ldloc.s 5
+	IL_013b:  call bool string::op_Equality(string, string)
+	IL_0140:  brfalse IL_0154
+
+	IL_0145:  nop 
+	IL_0146:  ldloc.s 4
+	IL_0148:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_014d:  stloc.s 4
+	IL_014f:  br IL_0166
+
+	IL_0154:  nop 
+	IL_0155:  ldloc.s 8
+	IL_0157:  ldc.i4.1 
+	IL_0158:  add 
+	IL_0159:  stloc.s 8
+	IL_015b:  ldloc.s 8
+	IL_015d:  ldloc.s 7
+	IL_015f:  ldlen 
+	IL_0160:  conv.i4 
+	IL_0161:  blt IL_012f
+
+	IL_0166:  nop 
+	IL_0167:  ldloc.3 
+	IL_0168:  ldloc.s 4
+	IL_016a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_ClassName(string)
+	IL_016f:  nop 
+	IL_0170:  ldloc.3 
+	IL_0171:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
+	IL_0176:  brfalse IL_0193
+
+	IL_017b:  nop 
+	IL_017c:  ldloc.3 
+	IL_017d:  callvirt instance string object::ToString()
+	IL_0182:  ldstr ".resources"
+	IL_0187:  call string string::Concat(string, string)
+	IL_018c:  stloc.0 
+	IL_018d:  nop 
+	IL_018e:  br IL_01b5
+
+	IL_0193:  nop 
+	IL_0194:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0199:  ldstr "NA2010"
+	IL_019e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01a3:  ldarg.2 
+	IL_01a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01a9:  ldarg.0 
+	IL_01aa:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_01af:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_01b4:  throw 
+	IL_01b5:  nop 
+	IL_01b6:  br IL_0271
+
+	IL_01bb:  ldarg.1 
+	IL_01bc:  ldarg.2 
+	IL_01bd:  ldarg.3 
+	IL_01be:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
+	IL_01c3:  stloc.0 
+	IL_01c4:  br IL_0271
+
+	IL_01c9:  ldarg.2 
+	IL_01ca:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_01cf:  ldstr "licenses.licx"
+	IL_01d4:  call bool string::op_Equality(string, string)
+	IL_01d9:  brfalse IL_0200
+
+	IL_01de:  nop 
+	IL_01df:  ldarg.0 
+	IL_01e0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_01e5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01ea:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_01ef:  ldstr ".licenses"
+	IL_01f4:  call string string::Concat(string, string)
+	IL_01f9:  stloc.0 
+	IL_01fa:  nop 
+	IL_01fb:  br IL_026c
+
+	IL_0200:  nop 
+	IL_0201:  ldloc.1 
+	IL_0202:  brfalse IL_0260
+
+	IL_0207:  nop 
+	IL_0208:  ldarg.1 
+	IL_0209:  ldarg.2 
+	IL_020a:  ldarg.3 
+	IL_020b:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
+	IL_0210:  stloc.0 
+	IL_0211:  ldloc.0 
+	IL_0212:  ldstr "."
+	IL_0217:  ldloc.1 
+	IL_0218:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_021d:  call string string::Concat(string, string)
+	IL_0222:  callvirt instance int32 string::LastIndexOf(string)
+	IL_0227:  stloc.s 9
+	IL_0229:  ldloc.0 
+	IL_022a:  ldc.i4.0 
+	IL_022b:  ldloc.s 9
+	IL_022d:  callvirt instance string string::Substring(int32, int32)
+	IL_0232:  ldloc.0 
+	IL_0233:  ldloc.s 9
+	IL_0235:  callvirt instance string string::Substring(int32)
+	IL_023a:  ldstr "."
+	IL_023f:  ldloc.1 
+	IL_0240:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_0245:  call string string::Concat(string, string)
+	IL_024a:  ldsfld string [mscorlib]System.String::Empty
+	IL_024f:  callvirt instance string string::Replace(string, string)
+	IL_0254:  call string string::Concat(string, string)
+	IL_0259:  stloc.0 
+	IL_025a:  nop 
+	IL_025b:  br IL_026b
+
+	IL_0260:  nop 
+	IL_0261:  ldarg.1 
+	IL_0262:  ldarg.2 
+	IL_0263:  ldarg.3 
+	IL_0264:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
+	IL_0269:  stloc.0 
+	IL_026a:  nop 
+	IL_026b:  nop 
+	IL_026c:  br IL_0271
+
+	IL_0271:  ldloc.0 
+	IL_0272:  stloc.s 10
+	IL_0274:  br IL_0279
+
+	IL_0279:  ldloc.s 10
+	IL_027b:  ret 
+    } // end of method CompilerBase::GetManifestResourceName
+
+    // method line 262
+    .method public hidebysig 
+           instance default string GetManifestResourceName (class NAnt.DotNet.Types.ResourceFileSet resources, string resourceFile)  cil managed 
+    {
+        // Method begins at RVA 0x64c4
+	// Code size 303 (0x12f)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.Globalization.CultureInfo	V_2,
+		int32	V_3,
+		string	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "resources"
+	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 "resourceFile"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.2 
+	IL_0026:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_002b:  brtrue IL_0052
+
+	IL_0030:  nop 
+	IL_0031:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0036:  ldstr "NA2009"
+	IL_003b:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0040:  ldarg.2 
+	IL_0041:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0046:  ldarg.0 
+	IL_0047:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_004c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0051:  throw 
+	IL_0052:  ldarg.2 
+	IL_0053:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0058:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005d:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0062:  stloc.0 
+	IL_0063:  ldloc.0 
+	IL_0064:  brfalse IL_011b
+
+	IL_0069:  ldloc.0 
+	IL_006a:  ldstr ".resx"
+	IL_006f:  call bool string::op_Equality(string, string)
+	IL_0074:  brtrue IL_007e
+
+	IL_0079:  br IL_011b
+
+	IL_007e:  ldarg.2 
 	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_0080:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_Extension()
+	IL_0085:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_008a:  stloc.1 
+	IL_008b:  ldarg.2 
+	IL_008c:  ldloc.1 
+	IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
+	IL_0092:  stloc.2 
+	IL_0093:  ldloc.2 
+	IL_0094:  brfalse IL_010a
 
-	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_0099:  nop 
+	IL_009a:  ldloc.1 
+	IL_009b:  ldstr "."
+	IL_00a0:  ldloc.2 
+	IL_00a1:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_00a6:  call string string::Concat(string, string)
+	IL_00ab:  callvirt instance int32 string::LastIndexOf(string)
+	IL_00b0:  stloc.3 
+	IL_00b1:  ldloc.3 
+	IL_00b2:  ldc.i4.0 
+	IL_00b3:  blt IL_0109
 
-	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_00b8:  nop 
+	IL_00b9:  ldloc.3 
+	IL_00ba:  ldloc.2 
+	IL_00bb:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_00c0:  callvirt instance int32 string::get_Length()
+	IL_00c5:  add 
+	IL_00c6:  ldc.i4.1 
+	IL_00c7:  add 
+	IL_00c8:  ldloc.1 
+	IL_00c9:  callvirt instance int32 string::get_Length()
+	IL_00ce:  bge IL_00fd
 
-	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_00d3:  nop 
+	IL_00d4:  ldloc.1 
+	IL_00d5:  ldc.i4.0 
+	IL_00d6:  ldloc.3 
+	IL_00d7:  callvirt instance string string::Substring(int32, int32)
+	IL_00dc:  ldloc.1 
+	IL_00dd:  ldloc.3 
+	IL_00de:  ldloc.2 
+	IL_00df:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_00e4:  callvirt instance int32 string::get_Length()
+	IL_00e9:  add 
+	IL_00ea:  ldc.i4.1 
+	IL_00eb:  add 
+	IL_00ec:  callvirt instance string string::Substring(int32)
+	IL_00f1:  call string string::Concat(string, string)
+	IL_00f6:  stloc.1 
+	IL_00f7:  nop 
+	IL_00f8:  br IL_0108
+
+	IL_00fd:  nop 
+	IL_00fe:  ldloc.1 
+	IL_00ff:  ldc.i4.0 
+	IL_0100:  ldloc.3 
+	IL_0101:  callvirt instance string string::Substring(int32, int32)
+	IL_0106:  stloc.1 
+	IL_0107:  nop 
+	IL_0108:  nop 
+	IL_0109:  nop 
+	IL_010a:  ldarg.0 
+	IL_010b:  ldarg.1 
+	IL_010c:  ldarg.2 
+	IL_010d:  ldarg.2 
+	IL_010e:  ldloc.1 
+	IL_010f:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string, string, string)
+	IL_0114:  stloc.s 4
+	IL_0116:  br IL_012c
+
+	IL_011b:  ldarg.0 
+	IL_011c:  ldarg.1 
+	IL_011d:  ldarg.2 
+	IL_011e:  ldarg.2 
+	IL_011f:  ldnull 
+	IL_0120:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string, string, string)
+	IL_0125:  stloc.s 4
+	IL_0127:  br IL_012c
+
+	IL_012c:  ldloc.s 4
+	IL_012e:  ret 
+    } // end of method CompilerBase::GetManifestResourceName
+
+    // method line 263
+    .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 0x6600
+	// Code size 314 (0x13a)
+	.maxstack 3
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		class [System]System.Text.RegularExpressions.Regex	V_1,
+		string	V_2,
+		string	V_3,
+		string	V_4,
+		class [System]System.Text.RegularExpressions.Match	V_5,
+		class [System]System.Text.RegularExpressions.Group	V_6,
+		class [System]System.Text.RegularExpressions.Capture	V_7,
+		class [mscorlib]System.Collections.IEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class [System]System.Text.RegularExpressions.Match	V_10,
+		class [System]System.Text.RegularExpressions.Group	V_11,
+		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_12)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [System]System.Text.RegularExpressions.Regex class NAnt.DotNet.Tasks.CompilerBase::get_NamespaceRegex()
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class [System]System.Text.RegularExpressions.Regex class NAnt.DotNet.Tasks.CompilerBase::get_ClassNameRegex()
+	IL_000e:  stloc.1 
+	IL_000f:  ldstr ""
+	IL_0014:  stloc.2 
+	IL_0015:  ldstr ""
+	IL_001a:  stloc.3 
+	IL_001b:  br IL_011d
+
+	IL_0020:  nop 
+	IL_0021:  ldarg.1 
+	IL_0022:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	IL_0027:  stloc.s 4
+	IL_0029:  ldloc.0 
+	IL_002a:  ldloc.s 4
+	IL_002c:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	IL_0031:  stloc.s 5
+	IL_0033:  ldloc.s 5
+	IL_0035:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_003a:  brfalse IL_00d7
+
+	IL_003f:  nop 
+	IL_0040:  ldloc.s 5
+	IL_0042:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0047:  ldstr "namespace"
+	IL_004c:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_0051:  stloc.s 6
+	IL_0053:  ldloc.s 6
+	IL_0055:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_005a:  brfalse IL_00d6
+
+	IL_005f:  nop 
+	IL_0060:  nop 
+	IL_0061:  ldloc.s 6
+	IL_0063:  callvirt instance class [System]System.Text.RegularExpressions.CaptureCollection class [System]System.Text.RegularExpressions.Group::get_Captures()
+	IL_0068:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.CaptureCollection::GetEnumerator()
+	IL_006d:  stloc.s 8
+	.try { // 0
+	  IL_006f:  br IL_00ad
+
+	  IL_0074:  ldloc.s 8
+	  IL_0076:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_007b:  castclass [System]System.Text.RegularExpressions.Capture
+	  IL_0080:  stloc.s 7
+	  IL_0082:  nop 
+	  IL_0083:  ldloc.2 
+	  IL_0084:  ldloc.2 
+	  IL_0085:  callvirt instance int32 string::get_Length()
+	  IL_008a:  ldc.i4.0 
+	  IL_008b:  ble IL_009a
+
+	  IL_0090:  ldstr "."
+	  IL_0095:  br IL_009f
+
+	  IL_009a:  ldstr ""
+	  IL_009f:  ldloc.s 7
+	  IL_00a1:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_00a6:  call string string::Concat(string, string, string)
+	  IL_00ab:  stloc.2 
+	  IL_00ac:  nop 
+	  IL_00ad:  ldloc.s 8
+	  IL_00af:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00b4:  brtrue IL_0074
+
+	  IL_00b9:  leave IL_00d5
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00be:  ldloc.s 8
+	  IL_00c0:  isinst [mscorlib]System.IDisposable
+	  IL_00c5:  dup 
+	  IL_00c6:  stloc.s 9
+	  IL_00c8:  brfalse IL_00d4
+
+	  IL_00cd:  ldloc.s 9
+	  IL_00cf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d4:  endfinally 
+	} // end handler 0
+	IL_00d5:  nop 
+	IL_00d6:  nop 
+	IL_00d7:  ldloc.1 
+	IL_00d8:  ldloc.s 4
+	IL_00da:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	IL_00df:  stloc.s 10
+	IL_00e1:  ldloc.s 10
+	IL_00e3:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_00e8:  brfalse IL_011c
+
+	IL_00ed:  nop 
+	IL_00ee:  ldloc.s 10
+	IL_00f0:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_00f5:  ldstr "class"
+	IL_00fa:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_00ff:  stloc.s 11
+	IL_0101:  ldloc.s 11
+	IL_0103:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_0108:  brfalse IL_011b
+
+	IL_010d:  nop 
+	IL_010e:  ldloc.s 11
+	IL_0110:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_0115:  stloc.3 
+	IL_0116:  br IL_0129
+
+	IL_011b:  nop 
+	IL_011c:  nop 
+	IL_011d:  ldarg.1 
+	IL_011e:  callvirt instance int32 class [mscorlib]System.IO.TextReader::Peek()
+	IL_0123:  ldc.i4.m1 
+	IL_0124:  bgt IL_0020
+
+	IL_0129:  ldloc.2 
+	IL_012a:  ldloc.3 
+	IL_012b:  newobj instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::'.ctor'(string, string)
+	IL_0130:  stloc.s 12
+	IL_0132:  br IL_0137
+
+	IL_0137:  ldloc.s 12
+	IL_0139:  ret 
+    } // end of method CompilerBase::PerformSearchForResourceLinkage
+
+    // method line 264
+    .method family virtual hidebysig newslot 
+           instance default void WritePackageReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x6758
+	// Code size 221 (0xdd)
+	.maxstack 7
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class NAnt.DotNet.Types.Package	V_1,
+		class NAnt.DotNet.Types.PackageEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class NAnt.DotNet.Types.PackageCollection class NAnt.DotNet.Tasks.CompilerBase::get_Packages()
+	IL_000e:  callvirt instance class NAnt.DotNet.Types.PackageEnumerator class NAnt.DotNet.Types.PackageCollection::GetEnumerator()
+	IL_0013:  stloc.2 
+	.try { // 0
+	  IL_0014:  br IL_004e
+
+	  IL_0019:  ldloc.2 
+	  IL_001a:  callvirt instance class NAnt.DotNet.Types.Package class NAnt.DotNet.Types.PackageEnumerator::get_Current()
+	  IL_001f:  stloc.1 
+	  IL_0020:  nop 
+	  IL_0021:  ldloc.1 
+	  IL_0022:  callvirt instance bool class NAnt.DotNet.Types.Package::get_IfDefined()
+	  IL_0027:  brfalse IL_004d
+
+	  IL_002c:  ldloc.1 
+	  IL_002d:  callvirt instance bool class NAnt.DotNet.Types.Package::get_UnlessDefined()
+	  IL_0032:  brtrue IL_004d
+
+	  IL_0037:  nop 
+	  IL_0038:  ldloc.0 
+	  IL_0039:  ldloc.1 
+	  IL_003a:  callvirt instance string class NAnt.DotNet.Types.Package::get_PackageName()
+	  IL_003f:  ldc.i4.s 0x3b
+	  IL_0041:  ldc.i4.0 
+	  IL_0042:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_0047:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	  IL_004c:  nop 
+	  IL_004d:  nop 
+	  IL_004e:  ldloc.2 
+	  IL_004f:  callvirt instance bool class NAnt.DotNet.Types.PackageEnumerator::MoveNext()
+	  IL_0054:  brtrue IL_0019
+
+	  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:  ldloc.0 
+	IL_0073:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0078:  brtrue IL_0083
+
+	IL_007d:  nop 
+	IL_007e:  br IL_00dc
+
+	IL_0083:  ldarg.0 
+	IL_0084:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsPackageReferences()
+	IL_0089:  brfalse IL_00ac
+
+	IL_008e:  nop 
+	IL_008f:  ldarg.0 
+	IL_0090:  ldarg.1 
+	IL_0091:  ldstr "pkg"
+	IL_0096:  ldstr ","
+	IL_009b:  ldloc.0 
+	IL_009c:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
+	IL_00a1:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_00a6:  nop 
+	IL_00a7:  br IL_00dc
+
+	IL_00ac:  nop 
+	IL_00ad:  ldarg.0 
+	IL_00ae:  ldc.i4 4000
+	IL_00b3:  ldstr "String_CompilerDoesNotSupportPackageReferences"
+	IL_00b8:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00bd:  ldc.i4.1 
+	IL_00be:  newarr [mscorlib]System.Object
+	IL_00c3:  dup 
+	IL_00c4:  ldc.i4.0 
+	IL_00c5:  ldarg.0 
+	IL_00c6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00cb:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_00d0:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_00d5:  stelem.ref 
+	IL_00d6:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00db:  nop 
+	IL_00dc:  ret 
+    } // end of method CompilerBase::WritePackageReferences
+
+    // method line 265
+    .method family virtual hidebysig newslot 
+           instance default void WriteWarningsAsError (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x6854
+	// Code size 516 (0x204)
+	.maxstack 7
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class NAnt.DotNet.Types.CompilerWarning	V_1,
+		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.DotNet.Types.CompilerWarning	V_4,
+		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::get_WarnAsError()
+	IL_0007:  brfalse IL_0031
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
+	IL_0013:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Types.WarningAsError::get_Includes()
+	IL_0018:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_001d:  brtrue IL_0030
+
+	IL_0022:  nop 
+	IL_0023:  ldarg.0 
+	IL_0024:  ldarg.1 
+	IL_0025:  ldstr "warnaserror"
+	IL_002a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_002f:  nop 
+	IL_0030:  nop 
+	IL_0031:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0036:  stloc.0 
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
+	IL_003e:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Types.WarningAsError::get_Includes()
+	IL_0043:  callvirt instance class NAnt.DotNet.Types.CompilerWarningEnumerator class NAnt.DotNet.Types.CompilerWarningCollection::GetEnumerator()
+	IL_0048:  stloc.2 
+	.try { // 0
+	  IL_0049:  br IL_0083
+
+	  IL_004e:  ldloc.2 
+	  IL_004f:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current()
+	  IL_0054:  stloc.1 
+	  IL_0055:  nop 
+	  IL_0056:  ldloc.1 
+	  IL_0057:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_IfDefined()
+	  IL_005c:  brfalse IL_0082
+
+	  IL_0061:  ldloc.1 
+	  IL_0062:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined()
+	  IL_0067:  brtrue IL_0082
+
+	  IL_006c:  nop 
+	  IL_006d:  ldloc.0 
+	  IL_006e:  ldloc.1 
+	  IL_006f:  callvirt instance string class NAnt.DotNet.Types.CompilerWarning::get_Number()
+	  IL_0074:  ldc.i4.s 0x2c
+	  IL_0076:  ldc.i4.0 
+	  IL_0077:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_007c:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	  IL_0081:  nop 
+	  IL_0082:  nop 
+	  IL_0083:  ldloc.2 
+	  IL_0084:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarningEnumerator::MoveNext()
+	  IL_0089:  brtrue IL_004e
+
+	  IL_008e:  leave IL_00a7
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0093:  ldloc.2 
+	  IL_0094:  isinst [mscorlib]System.IDisposable
+	  IL_0099:  dup 
+	  IL_009a:  stloc.3 
+	  IL_009b:  brfalse IL_00a6
+
+	  IL_00a0:  ldloc.3 
+	  IL_00a1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00a6:  endfinally 
+	} // end handler 0
+	IL_00a7:  ldloc.0 
+	IL_00a8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00ad:  ldc.i4.0 
+	IL_00ae:  ble IL_0112
+
+	IL_00b3:  nop 
+	IL_00b4:  ldarg.0 
+	IL_00b5:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsWarnAsErrorList()
+	IL_00ba:  brfalse IL_00e1
+
+	IL_00bf:  nop 
+	IL_00c0:  ldarg.1 
+	IL_00c1:  ldstr "/warnaserror+:"
+	IL_00c6:  ldstr ","
+	IL_00cb:  ldloc.0 
+	IL_00cc:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
+	IL_00d1:  call string string::Concat(string, string)
+	IL_00d6:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(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_00e8:  ldstr "String_CompilerDoesNotSupportWarningsAsErrors"
 	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
 	IL_00f2:  ldc.i4.1 
 	IL_00f3:  newarr [mscorlib]System.Object
@@ -10734,1565 +11059,4378 @@
 	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_0112:  ldloc.0 
+	IL_0113:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0118:  nop 
+	IL_0119:  ldarg.0 
+	IL_011a:  callvirt instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
+	IL_011f:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Types.WarningAsError::get_Excludes()
+	IL_0124:  callvirt instance class NAnt.DotNet.Types.CompilerWarningEnumerator class NAnt.DotNet.Types.CompilerWarningCollection::GetEnumerator()
+	IL_0129:  stloc.s 5
+	.try { // 1
+	  IL_012b:  br IL_016a
 
-	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_0130:  ldloc.s 5
+	  IL_0132:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current()
+	  IL_0137:  stloc.s 4
+	  IL_0139:  nop 
+	  IL_013a:  ldloc.s 4
+	  IL_013c:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_IfDefined()
+	  IL_0141:  brfalse IL_0169
 
-	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
+	  IL_0146:  ldloc.s 4
+	  IL_0148:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined()
+	  IL_014d:  brtrue IL_0169
 
-    // method line 279
-    .method public virtual hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
+	  IL_0152:  nop 
+	  IL_0153:  ldloc.0 
+	  IL_0154:  ldloc.s 4
+	  IL_0156:  callvirt instance string class NAnt.DotNet.Types.CompilerWarning::get_Number()
+	  IL_015b:  ldc.i4.s 0x2c
+	  IL_015d:  ldc.i4.0 
+	  IL_015e:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_0163:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	  IL_0168:  nop 
+	  IL_0169:  nop 
+	  IL_016a:  ldloc.s 5
+	  IL_016c:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarningEnumerator::MoveNext()
+	  IL_0171:  brtrue IL_0130
+
+	  IL_0176:  leave IL_0192
+
+	} // end .try 1
+	finally  { // 1
+	  IL_017b:  ldloc.s 5
+	  IL_017d:  isinst [mscorlib]System.IDisposable
+	  IL_0182:  dup 
+	  IL_0183:  stloc.s 6
+	  IL_0185:  brfalse IL_0191
+
+	  IL_018a:  ldloc.s 6
+	  IL_018c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0191:  endfinally 
+	} // end handler 1
+	IL_0192:  ldloc.0 
+	IL_0193:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0198:  ldc.i4.0 
+	IL_0199:  ble IL_01fd
+
+	IL_019e:  nop 
+	IL_019f:  ldarg.0 
+	IL_01a0:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsWarnAsErrorList()
+	IL_01a5:  brfalse IL_01cc
+
+	IL_01aa:  nop 
+	IL_01ab:  ldarg.1 
+	IL_01ac:  ldstr "/warnaserror-:"
+	IL_01b1:  ldstr ","
+	IL_01b6:  ldloc.0 
+	IL_01b7:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
+	IL_01bc:  call string string::Concat(string, string)
+	IL_01c1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_01c6:  nop 
+	IL_01c7:  br IL_01fc
+
+	IL_01cc:  nop 
+	IL_01cd:  ldarg.0 
+	IL_01ce:  ldc.i4 4000
+	IL_01d3:  ldstr "String_CompilerDoesNotSupportWarningsAsErrors"
+	IL_01d8:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01dd:  ldc.i4.1 
+	IL_01de:  newarr [mscorlib]System.Object
+	IL_01e3:  dup 
+	IL_01e4:  ldc.i4.0 
+	IL_01e5:  ldarg.0 
+	IL_01e6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_01eb:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_01f0:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_01f5:  stelem.ref 
+	IL_01f6:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_01fb:  nop 
+	IL_01fc:  nop 
+	IL_01fd:  ldloc.0 
+	IL_01fe:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0203:  ret 
+    } // end of method CompilerBase::WriteWarningsAsError
+
+    // method line 266
+    .method family virtual hidebysig newslot 
+           instance default void WriteNoWarnList (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x97c4
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x6a80
+	// Code size 255 (0xff)
+	.maxstack 7
 	.locals init (
-		string	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class NAnt.DotNet.Types.CompilerWarning	V_1,
+		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldstr "js"
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Tasks.CompilerBase::get_SuppressWarnings()
+	IL_000e:  callvirt instance class NAnt.DotNet.Types.CompilerWarningEnumerator class NAnt.DotNet.Types.CompilerWarningCollection::GetEnumerator()
+	IL_0013:  stloc.2 
+	.try { // 0
+	  IL_0014:  br IL_004e
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JscTask::get_Extension
+	  IL_0019:  ldloc.2 
+	  IL_001a:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current()
+	  IL_001f:  stloc.1 
+	  IL_0020:  nop 
+	  IL_0021:  ldloc.1 
+	  IL_0022:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_IfDefined()
+	  IL_0027:  brfalse IL_004d
 
-    // method line 280
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+	  IL_002c:  ldloc.1 
+	  IL_002d:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined()
+	  IL_0032:  brtrue IL_004d
+
+	  IL_0037:  nop 
+	  IL_0038:  ldloc.0 
+	  IL_0039:  ldloc.1 
+	  IL_003a:  callvirt instance string class NAnt.DotNet.Types.CompilerWarning::get_Number()
+	  IL_003f:  ldc.i4.s 0x2c
+	  IL_0041:  ldc.i4.0 
+	  IL_0042:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_0047:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	  IL_004c:  nop 
+	  IL_004d:  nop 
+	  IL_004e:  ldloc.2 
+	  IL_004f:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarningEnumerator::MoveNext()
+	  IL_0054:  brtrue IL_0019
+
+	  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:  ldarg.0 
+	IL_0073:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
+	IL_0078:  brfalse IL_0093
+
+	IL_007d:  nop 
+	IL_007e:  ldloc.0 
+	IL_007f:  ldarg.0 
+	IL_0080:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
+	IL_0085:  ldc.i4.s 0x2c
+	IL_0087:  ldc.i4.0 
+	IL_0088:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_008d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0092:  nop 
+	IL_0093:  ldloc.0 
+	IL_0094:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0099:  ldc.i4.0 
+	IL_009a:  ble IL_00fe
+
+	IL_009f:  nop 
+	IL_00a0:  ldarg.0 
+	IL_00a1:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsNoWarnList()
+	IL_00a6:  brfalse IL_00cd
+
+	IL_00ab:  nop 
+	IL_00ac:  ldarg.1 
+	IL_00ad:  ldstr "/nowarn:"
+	IL_00b2:  ldstr ","
+	IL_00b7:  ldloc.0 
+	IL_00b8:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
+	IL_00bd:  call string string::Concat(string, string)
+	IL_00c2:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_00c7:  nop 
+	IL_00c8:  br IL_00fd
+
+	IL_00cd:  nop 
+	IL_00ce:  ldarg.0 
+	IL_00cf:  ldc.i4 4000
+	IL_00d4:  ldstr "String_CompilerDoesNotSupportWarningsToSuppress"
+	IL_00d9:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00de:  ldc.i4.1 
+	IL_00df:  newarr [mscorlib]System.Object
+	IL_00e4:  dup 
+	IL_00e5:  ldc.i4.0 
+	IL_00e6:  ldarg.0 
+	IL_00e7:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00ec:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_00f1:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_00f6:  stelem.ref 
+	IL_00f7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00fc:  nop 
+	IL_00fd:  nop 
+	IL_00fe:  ret 
+    } // end of method CompilerBase::WriteNoWarnList
+
+    // method line 267
+    .method family virtual hidebysig newslot 
+           instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x6b9c
+	// Code size 33 (0x21)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
+	IL_0007:  brfalse IL_0020
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  ldstr "define"
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
+	IL_001a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_001f:  nop 
+	IL_0020:  ret 
+    } // end of method CompilerBase::WriteConditionalCompilationConstants
+
+    // method line 268
+    .method family virtual hidebysig newslot 
+           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x6bc0
+	// Code size 83 (0x53)
+	.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:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_000d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0012:  stloc.1 
+	.try { // 0
+	  IL_0013:  br IL_002e
+
+	  IL_0018:  ldloc.1 
+	  IL_0019:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_001e:  stloc.0 
+	  IL_001f:  nop 
+	  IL_0020:  ldarg.0 
+	  IL_0021:  ldarg.1 
+	  IL_0022:  ldstr "addmodule"
+	  IL_0027:  ldloc.0 
+	  IL_0028:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	  IL_002d:  nop 
+	  IL_002e:  ldloc.1 
+	  IL_002f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0034:  brtrue IL_0018
+
+	  IL_0039:  leave IL_0052
+
+	} // end .try 0
+	finally  { // 0
+	  IL_003e:  ldloc.1 
+	  IL_003f:  isinst [mscorlib]System.IDisposable
+	  IL_0044:  dup 
+	  IL_0045:  stloc.2 
+	  IL_0046:  brfalse IL_0051
+
+	  IL_004b:  ldloc.2 
+	  IL_004c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0051:  endfinally 
+	} // end handler 0
+	IL_0052:  ret 
+    } // end of method CompilerBase::WriteModuleReferences
+
+    // method line 269
+    .method family virtual hidebysig newslot 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x97e0
+        // Method begins at RVA 0x6c30
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method CompilerBase::WriteOptions
+
+    // method line 270
+    .method family virtual hidebysig newslot 
+           instance default void WriteOption (class [mscorlib]System.IO.TextWriter writer, string name)  cil managed 
+    {
+        // Method begins at RVA 0x6c33
 	// Code size 14 (0xe)
-	.maxstack 1
+	.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::WriteLine(string, object)
+	IL_000d:  ret 
+    } // end of method CompilerBase::WriteOption
+
+    // method line 271
+    .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 0x6c44
+	// Code size 69 (0x45)
+	.maxstack 4
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  ldstr "\""
+	IL_0007:  callvirt instance bool string::StartsWith(string)
+	IL_000c:  brfalse IL_0021
+
+	IL_0011:  ldarg.3 
+	IL_0012:  ldstr "\""
+	IL_0017:  callvirt instance bool string::EndsWith(string)
+	IL_001c:  brtrue IL_0035
+
+	IL_0021:  nop 
+	IL_0022:  ldarg.1 
+	IL_0023:  ldstr "\"/{0}:{1}\""
+	IL_0028:  ldarg.2 
+	IL_0029:  ldarg.3 
+	IL_002a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
+	IL_002f:  nop 
+	IL_0030:  br IL_0044
+
+	IL_0035:  nop 
+	IL_0036:  ldarg.1 
+	IL_0037:  ldstr "/{0}:{1}"
+	IL_003c:  ldarg.2 
+	IL_003d:  ldarg.3 
+	IL_003e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
+	IL_0043:  nop 
+	IL_0044:  ret 
+    } // end of method CompilerBase::WriteOption
+
+    // method line 272
+    .method family virtual hidebysig newslot 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x6c98
+	// Code size 1022 (0x3fe)
+	.maxstack 7
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0)
+		bool	V_0,
+		string	V_1,
+		class NAnt.DotNet.Types.ResourceFileSet	V_2,
+		class NAnt.DotNet.Types.ResourceFileSetEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class [System]System.Collections.Specialized.StringCollection	V_5,
+		class [NAnt.Core]NAnt.Core.Types.Argument	V_6,
+		class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator	V_7,
+		string	V_8,
+		string	V_9,
+		int32	V_10,
+		class [mscorlib]System.IDisposable	V_11)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_classNameRegex
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::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_03fc
+
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::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.CompilerBase::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_03fc
+
+	IL_006a:  ldarg.0 
+	IL_006b:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::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.CompilerBase::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_03fc
+
+	IL_00b3:  ldarg.0 
+	IL_00b4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
+	IL_00b9:  brfalse IL_0109
+
+	IL_00be:  nop 
+	IL_00bf:  ldarg.0 
+	IL_00c0:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
+	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.CompilerBase::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_03fc
+
+	IL_0108:  nop 
+	IL_0109:  ldarg.0 
+	IL_010a:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	IL_010f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0114:  ldarg.0 
+	IL_0115:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_011a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_011f:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_0124:  stloc.1 
+	IL_0125:  ldloc.1 
+	IL_0126:  brfalse IL_0152
+
+	IL_012b:  nop 
+	IL_012c:  ldarg.0 
+	IL_012d:  ldc.i4 2000
+	IL_0132:  ldstr "String_FileHasBeenUpdated"
+	IL_0137:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_013c:  ldc.i4.1 
+	IL_013d:  newarr [mscorlib]System.Object
+	IL_0142:  dup 
+	IL_0143:  ldc.i4.0 
+	IL_0144:  ldloc.1 
+	IL_0145:  stelem.ref 
+	IL_0146:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_014b:  ldc.i4.1 
+	IL_014c:  stloc.0 
+	IL_014d:  br IL_03fc
+
+	IL_0152:  ldarg.0 
+	IL_0153:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	IL_0158:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_015d:  ldarg.0 
+	IL_015e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_0163:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0168:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_016d:  stloc.1 
+	IL_016e:  ldloc.1 
+	IL_016f:  brfalse IL_019b
+
+	IL_0174:  nop 
+	IL_0175:  ldarg.0 
+	IL_0176:  ldc.i4 2000
+	IL_017b:  ldstr "String_FileHasBeenUpdated"
+	IL_0180:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0185:  ldc.i4.1 
+	IL_0186:  newarr [mscorlib]System.Object
+	IL_018b:  dup 
+	IL_018c:  ldc.i4.0 
+	IL_018d:  ldloc.1 
+	IL_018e:  stelem.ref 
+	IL_018f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0194:  ldc.i4.1 
+	IL_0195:  stloc.0 
+	IL_0196:  br IL_03fc
+
+	IL_019b:  nop 
+	IL_019c:  ldarg.0 
+	IL_019d:  call instance class NAnt.DotNet.Types.ResourceFileSetCollection class NAnt.DotNet.Tasks.CompilerBase::get_ResourcesList()
+	IL_01a2:  callvirt instance class NAnt.DotNet.Types.ResourceFileSetEnumerator class NAnt.DotNet.Types.ResourceFileSetCollection::GetEnumerator()
+	IL_01a7:  stloc.3 
+	.try { // 0
+	  IL_01a8:  br IL_01fa
+
+	  IL_01ad:  ldloc.3 
+	  IL_01ae:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Types.ResourceFileSetEnumerator::get_Current()
+	  IL_01b3:  stloc.2 
+	  IL_01b4:  nop 
+	  IL_01b5:  ldloc.2 
+	  IL_01b6:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_01bb:  ldarg.0 
+	  IL_01bc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	  IL_01c1:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_01c6:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	  IL_01cb:  stloc.1 
+	  IL_01cc:  ldloc.1 
+	  IL_01cd:  brfalse IL_01f9
+
+	  IL_01d2:  nop 
+	  IL_01d3:  ldarg.0 
+	  IL_01d4:  ldc.i4 2000
+	  IL_01d9:  ldstr "String_FileHasBeenUpdated"
+	  IL_01de:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_01e3:  ldc.i4.1 
+	  IL_01e4:  newarr [mscorlib]System.Object
+	  IL_01e9:  dup 
+	  IL_01ea:  ldc.i4.0 
+	  IL_01eb:  ldloc.1 
+	  IL_01ec:  stelem.ref 
+	  IL_01ed:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_01f2:  ldc.i4.1 
+	  IL_01f3:  stloc.0 
+	  IL_01f4:  leave IL_03fc
+
+	  IL_01f9:  nop 
+	  IL_01fa:  ldloc.3 
+	  IL_01fb:  callvirt instance bool class NAnt.DotNet.Types.ResourceFileSetEnumerator::MoveNext()
+	  IL_0200:  brtrue IL_01ad
+
+	  IL_0205:  leave IL_0220
+
+	} // end .try 0
+	finally  { // 0
+	  IL_020a:  ldloc.3 
+	  IL_020b:  isinst [mscorlib]System.IDisposable
+	  IL_0210:  dup 
+	  IL_0211:  stloc.s 4
+	  IL_0213:  brfalse IL_021f
+
+	  IL_0218:  ldloc.s 4
+	  IL_021a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_021f:  endfinally 
+	} // end handler 0
+	IL_0220:  ldarg.0 
+	IL_0221:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
+	IL_0226:  brfalse IL_0276
+
+	IL_022b:  nop 
+	IL_022c:  ldarg.0 
+	IL_022d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
+	IL_0232:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0237:  ldarg.0 
+	IL_0238:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_023d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0242:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0247:  stloc.1 
+	IL_0248:  ldloc.1 
+	IL_0249:  brfalse IL_0275
+
+	IL_024e:  nop 
+	IL_024f:  ldarg.0 
+	IL_0250:  ldc.i4 2000
+	IL_0255:  ldstr "String_FileHasBeenUpdated"
+	IL_025a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_025f:  ldc.i4.1 
+	IL_0260:  newarr [mscorlib]System.Object
+	IL_0265:  dup 
+	IL_0266:  ldc.i4.0 
+	IL_0267:  ldloc.1 
+	IL_0268:  stelem.ref 
+	IL_0269:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_026e:  ldc.i4.1 
+	IL_026f:  stloc.0 
+	IL_0270:  br IL_03fc
+
+	IL_0275:  nop 
+	IL_0276:  ldarg.0 
+	IL_0277:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_027c:  brfalse IL_02cc
+
+	IL_0281:  nop 
+	IL_0282:  ldarg.0 
+	IL_0283:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_0288:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_028d:  ldarg.0 
+	IL_028e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_0293:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0298:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_029d:  stloc.1 
+	IL_029e:  ldloc.1 
+	IL_029f:  brfalse IL_02cb
+
+	IL_02a4:  nop 
+	IL_02a5:  ldarg.0 
+	IL_02a6:  ldc.i4 2000
+	IL_02ab:  ldstr "String_FileHasBeenUpdated"
+	IL_02b0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02b5:  ldc.i4.1 
+	IL_02b6:  newarr [mscorlib]System.Object
+	IL_02bb:  dup 
+	IL_02bc:  ldc.i4.0 
+	IL_02bd:  ldloc.1 
+	IL_02be:  stelem.ref 
+	IL_02bf:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_02c4:  ldc.i4.1 
+	IL_02c5:  stloc.0 
+	IL_02c6:  br IL_03fc
+
+	IL_02cb:  nop 
+	IL_02cc:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_02d1:  stloc.s 5
+	IL_02d3:  nop 
+	IL_02d4:  ldarg.0 
+	IL_02d5:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_02da:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::GetEnumerator()
+	IL_02df:  stloc.s 7
+	.try { // 1
+	  IL_02e1:  br IL_038d
+
+	  IL_02e6:  ldloc.s 7
+	  IL_02e8:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Argument class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::get_Current()
+	  IL_02ed:  stloc.s 6
+	  IL_02ef:  nop 
+	  IL_02f0:  ldloc.s 6
+	  IL_02f2:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_IfDefined()
+	  IL_02f7:  brfalse IL_038c
+
+	  IL_02fc:  ldloc.s 6
+	  IL_02fe:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_UnlessDefined()
+	  IL_0303:  brtrue IL_038c
+
+	  IL_0308:  nop 
+	  IL_0309:  ldloc.s 6
+	  IL_030b:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Argument::get_Value()
+	  IL_0310:  stloc.s 8
+	  IL_0312:  ldloc.s 8
+	  IL_0314:  brfalse IL_038b
+
+	  IL_0319:  ldloc.s 8
+	  IL_031b:  ldstr "/res:"
+	  IL_0320:  callvirt instance bool string::StartsWith(string)
+	  IL_0325:  brtrue IL_033b
+
+	  IL_032a:  ldloc.s 8
+	  IL_032c:  ldstr "/resource:"
+	  IL_0331:  callvirt instance bool string::StartsWith(string)
+	  IL_0336:  brfalse IL_038b
+
+	  IL_033b:  nop 
+	  IL_033c:  ldloc.s 8
+	  IL_033e:  ldloc.s 8
+	  IL_0340:  ldc.i4.s 0x3a
+	  IL_0342:  callvirt instance int32 string::IndexOf(char)
+	  IL_0347:  ldc.i4.1 
+	  IL_0348:  add 
+	  IL_0349:  callvirt instance string string::Substring(int32)
+	  IL_034e:  stloc.s 9
+	  IL_0350:  ldloc.s 9
+	  IL_0352:  ldc.i4.s 0x2c
+	  IL_0354:  callvirt instance int32 string::IndexOf(char)
+	  IL_0359:  stloc.s 10
+	  IL_035b:  ldloc.s 10
+	  IL_035d:  ldc.i4.m1 
+	  IL_035e:  beq IL_0371
+
+	  IL_0363:  nop 
+	  IL_0364:  ldloc.s 9
+	  IL_0366:  ldc.i4.0 
+	  IL_0367:  ldloc.s 10
+	  IL_0369:  callvirt instance string string::Substring(int32, int32)
+	  IL_036e:  stloc.s 9
+	  IL_0370:  nop 
+	  IL_0371:  ldarg.0 
+	  IL_0372:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0377:  ldloc.s 9
+	  IL_0379:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
+	  IL_037e:  stloc.s 9
+	  IL_0380:  ldloc.s 5
+	  IL_0382:  ldloc.s 9
+	  IL_0384:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0389:  pop 
+	  IL_038a:  nop 
+	  IL_038b:  nop 
+	  IL_038c:  nop 
+	  IL_038d:  ldloc.s 7
+	  IL_038f:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::MoveNext()
+	  IL_0394:  brtrue IL_02e6
+
+	  IL_0399:  leave IL_03b5
+
+	} // end .try 1
+	finally  { // 1
+	  IL_039e:  ldloc.s 7
+	  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 1
+	IL_03b5:  ldloc.s 5
+	IL_03b7:  ldarg.0 
+	IL_03b8:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_03bd:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_03c2:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_03c7:  stloc.1 
+	IL_03c8:  ldloc.1 
+	IL_03c9:  brfalse IL_03f5
+
+	IL_03ce:  nop 
+	IL_03cf:  ldarg.0 
+	IL_03d0:  ldc.i4 2000
+	IL_03d5:  ldstr "String_FileHasBeenUpdated"
+	IL_03da:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_03df:  ldc.i4.1 
+	IL_03e0:  newarr [mscorlib]System.Object
+	IL_03e5:  dup 
+	IL_03e6:  ldc.i4.0 
+	IL_03e7:  ldloc.1 
+	IL_03e8:  stelem.ref 
+	IL_03e9:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_03ee:  ldc.i4.1 
+	IL_03ef:  stloc.0 
+	IL_03f0:  br IL_03fc
+
+	IL_03f5:  ldc.i4.0 
+	IL_03f6:  stloc.0 
+	IL_03f7:  br IL_03fc
+
+	IL_03fc:  ldloc.0 
+	IL_03fd:  ret 
+    } // end of method CompilerBase::NeedsCompiling
+
+    // method line 273
+    .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 0x70c0
+	// Code size 211 (0xd3)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.IO.StreamReader	V_0,
+		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_1,
+		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	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:  brtrue IL_0013
+
+	IL_000b:  nop 
+	IL_000c:  ldnull 
+	IL_000d:  stloc.2 
+	IL_000e:  br IL_00d1
+
+	.try { // 1
+	  .try { // 0
+	    IL_0013:  nop 
+	    IL_0014:  ldarg.1 
+	    IL_0015:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	    IL_001a:  ldc.i4.1 
+	    IL_001b:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	    IL_0020:  stloc.0 
+	    IL_0021:  ldarg.0 
+	    IL_0022:  ldloc.0 
+	    IL_0023:  callvirt instance class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage class NAnt.DotNet.Tasks.CompilerBase::PerformSearchForResourceLinkage(class [mscorlib]System.IO.TextReader)
+	    IL_0028:  stloc.1 
+	    IL_0029:  ldloc.1 
+	    IL_002a:  ldarg.2 
+	    IL_002b:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_Culture(class [mscorlib]System.Globalization.CultureInfo)
+	    IL_0030:  nop 
+	    IL_0031:  leave IL_006f
+
+	  } // end .try 0
+	  catch class [mscorlib]System.IO.FileNotFoundException { // 0
+	    IL_0036:  pop 
+	    IL_0037:  nop 
+	    IL_0038:  ldarg.0 
+	    IL_0039:  ldc.i4 1000
+	    IL_003e:  ldstr "String_DependentFileNotFound"
+	    IL_0043:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_0048:  ldc.i4.1 
+	    IL_0049:  newarr [mscorlib]System.Object
+	    IL_004e:  dup 
+	    IL_004f:  ldc.i4.0 
+	    IL_0050:  ldarg.1 
+	    IL_0051:  stelem.ref 
+	    IL_0052:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_0057:  ldnull 
+	    IL_0058:  stloc.2 
+	    IL_0059:  leave IL_00d1
+
+	  } // end handler 0
+	} // end .try 1
+	finally  { // 1
+	  IL_005e:  nop 
+	  IL_005f:  ldloc.0 
+	  IL_0060:  brfalse IL_006d
+
+	  IL_0065:  nop 
+	  IL_0066:  ldloc.0 
+	  IL_0067:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_006c:  nop 
+	  IL_006d:  nop 
+	  IL_006e:  endfinally 
+	} // end handler 1
+	IL_006f:  ldloc.1 
+	IL_0070:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
+	IL_0075:  brfalse IL_00a9
+
+	IL_007a:  nop 
+	IL_007b:  ldarg.0 
+	IL_007c:  ldc.i4 1000
+	IL_0081:  ldstr "String_FoundResourceLinkageInDependentFile"
+	IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_008b:  ldc.i4.2 
+	IL_008c:  newarr [mscorlib]System.Object
+	IL_0091:  dup 
+	IL_0092:  ldc.i4.0 
+	IL_0093:  ldloc.1 
+	IL_0094:  callvirt instance string object::ToString()
+	IL_0099:  stelem.ref 
+	IL_009a:  dup 
+	IL_009b:  ldc.i4.1 
+	IL_009c:  ldarg.1 
+	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:  nop 
+	IL_00a4:  br IL_00ca
+
+	IL_00a9:  nop 
+	IL_00aa:  ldarg.0 
+	IL_00ab:  ldc.i4 1000
+	IL_00b0:  ldstr "String_ResourceLinkageInDependentFileNotFound"
+	IL_00b5:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00ba:  ldc.i4.1 
+	IL_00bb:  newarr [mscorlib]System.Object
+	IL_00c0:  dup 
+	IL_00c1:  ldc.i4.0 
+	IL_00c2:  ldarg.1 
+	IL_00c3:  stelem.ref 
+	IL_00c4:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00c9:  nop 
+	IL_00ca:  ldloc.1 
+	IL_00cb:  stloc.2 
+	IL_00cc:  br IL_00d1
+
+	IL_00d1:  ldloc.2 
+	IL_00d2:  ret 
+    } // end of method CompilerBase::GetResourceLinkage
+
+    // method line 274
+    .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 0x71bc
+	// Code size 262 (0x106)
+	.maxstack 2
+	.locals init (
+		class NAnt.DotNet.Tasks.AssemblyLinkerTask	V_0,
+		string	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		string	V_3,
+		class NAnt.DotNet.Types.EmbeddedResource	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_001a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_001f:  ldloc.0 
+	IL_0020:  ldarg.0 
+	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0026:  ldloc.0 
+	IL_0027:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_002c:  ldloc.0 
+	IL_002d:  ldarg.2 
+	IL_002e:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_0033:  ldloc.0 
+	IL_0034:  ldarg.3 
+	IL_0035:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Culture(string)
+	IL_003a:  ldloc.0 
+	IL_003b:  ldstr "lib"
+	IL_0040:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputTarget(string)
+	IL_0045:  ldloc.0 
+	IL_0046:  ldarg.0 
+	IL_0047:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
+	IL_004c:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_TemplateFile(class [mscorlib]System.IO.FileInfo)
+	IL_0051:  ldloc.0 
+	IL_0052:  ldarg.0 
+	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
+	IL_0058:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyFile(class [mscorlib]System.IO.FileInfo)
+	IL_005d:  ldloc.0 
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
+	IL_0064:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyContainer(string)
+	IL_0069:  ldloc.0 
+	IL_006a:  ldarg.0 
+	IL_006b:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
+	IL_0070:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_DelaySign(valuetype NAnt.DotNet.Types.DelaySign)
+	IL_0075:  nop 
+	IL_0076:  ldarg.1 
+	IL_0077:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_007c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0081:  stloc.2 
+	.try { // 0
+	  IL_0082:  br IL_00b9
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JscTask::get_ClassNameRegex
+	  IL_0087:  ldloc.2 
+	  IL_0088:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_008d:  castclass [mscorlib]System.String
+	  IL_0092:  stloc.1 
+	  IL_0093:  nop 
+	  IL_0094:  ldarg.1 
+	  IL_0095:  ldloc.1 
+	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_009b:  castclass [mscorlib]System.String
+	  IL_00a0:  stloc.3 
+	  IL_00a1:  ldloc.3 
+	  IL_00a2:  ldloc.1 
+	  IL_00a3:  newobj instance void class NAnt.DotNet.Types.EmbeddedResource::'.ctor'(string, string)
+	  IL_00a8:  stloc.s 4
+	  IL_00aa:  ldloc.0 
+	  IL_00ab:  callvirt instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
+	  IL_00b0:  ldloc.s 4
+	  IL_00b2:  callvirt instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class NAnt.DotNet.Types.EmbeddedResource)
+	  IL_00b7:  pop 
+	  IL_00b8:  nop 
+	  IL_00b9:  ldloc.2 
+	  IL_00ba:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00bf:  brtrue IL_0087
 
-    // method line 281
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+	  IL_00c4:  leave IL_00df
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00c9:  ldloc.2 
+	  IL_00ca:  isinst [mscorlib]System.IDisposable
+	  IL_00cf:  dup 
+	  IL_00d0:  stloc.s 5
+	  IL_00d2:  brfalse IL_00de
+
+	  IL_00d7:  ldloc.s 5
+	  IL_00d9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00de:  endfinally 
+	} // end handler 0
+	IL_00df:  ldarg.0 
+	IL_00e0:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00e5:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 1
+	  IL_00ea:  nop 
+	  IL_00eb:  ldloc.0 
+	  IL_00ec:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_00f1:  nop 
+	  IL_00f2:  leave IL_0105
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00f7:  nop 
+	  IL_00f8:  ldarg.0 
+	  IL_00f9:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00fe:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0103:  nop 
+	  IL_0104:  endfinally 
+	} // end handler 1
+	IL_0105:  ret 
+    } // end of method CompilerBase::LinkResourceAssembly
+
+    // method line 275
+    .method family hidebysig 
+           instance default void CompileResxResources (class [System]System.Collections.Specialized.StringCollection resxFiles)  cil managed 
     {
-        // Method begins at RVA 0x97fc
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x72ec
+	// Code size 375 (0x177)
+	.maxstack 2
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0)
+		class NAnt.DotNet.Tasks.ResGenTask	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:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_namespaceRegex
+	IL_0001:  newobj instance void class NAnt.DotNet.Tasks.ResGenTask::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_001a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_001f:  ldloc.0 
+	IL_0020:  ldarg.0 
+	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0026:  ldloc.0 
+	IL_0027:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_002c:  ldloc.0 
+	IL_002d:  ldarg.0 
+	IL_002e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0033:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0038:  ldloc.0 
+	IL_0039:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_003e:  ldloc.0 
+	IL_003f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0044:  ldloc.0 
+	IL_0045:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_004a:  ldloc.0 
+	IL_004b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0055:  ldloc.0 
+	IL_0056:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_005b:  ldloc.0 
+	IL_005c:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0061:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0066:  ldloc.0 
+	IL_0067:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_006c:  ldarg.0 
+	IL_006d:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	IL_0072:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0077:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_007c:  ldloc.0 
+	IL_007d:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_0082:  ldarg.0 
+	IL_0083:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	IL_0088:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_008d:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0092:  ldloc.0 
+	IL_0093:  callvirt instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences()
+	IL_0098:  brfalse IL_00a6
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JscTask::get_NamespaceRegex
+	IL_009d:  nop 
+	IL_009e:  ldloc.0 
+	IL_009f:  ldc.i4.1 
+	IL_00a0:  callvirt instance void class NAnt.DotNet.Tasks.ResGenTask::set_UseSourcePath(bool)
+	IL_00a5:  nop 
+	IL_00a6:  nop 
+	IL_00a7:  ldarg.0 
+	IL_00a8:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
+	IL_00ad:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00b2:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00b7:  stloc.2 
+	.try { // 0
+	  IL_00b8:  br IL_00d8
 
-    // method line 282
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+	  IL_00bd:  ldloc.2 
+	  IL_00be:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00c3:  stloc.1 
+	  IL_00c4:  nop 
+	  IL_00c5:  ldloc.0 
+	  IL_00c6:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	  IL_00cb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_00d0:  ldloc.1 
+	  IL_00d1:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00d6:  pop 
+	  IL_00d7:  nop 
+	  IL_00d8:  ldloc.2 
+	  IL_00d9:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00de:  brtrue IL_00bd
+
+	  IL_00e3:  leave IL_00fc
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00e8:  ldloc.2 
+	  IL_00e9:  isinst [mscorlib]System.IDisposable
+	  IL_00ee:  dup 
+	  IL_00ef:  stloc.3 
+	  IL_00f0:  brfalse IL_00fb
+
+	  IL_00f5:  ldloc.3 
+	  IL_00f6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00fb:  endfinally 
+	} // end handler 0
+	IL_00fc:  nop 
+	IL_00fd:  ldarg.1 
+	IL_00fe:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0103:  stloc.s 5
+	.try { // 1
+	  IL_0105:  br IL_0128
+
+	  IL_010a:  ldloc.s 5
+	  IL_010c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0111:  stloc.s 4
+	  IL_0113:  nop 
+	  IL_0114:  ldloc.0 
+	  IL_0115:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	  IL_011a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_011f:  ldloc.s 4
+	  IL_0121:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0126:  pop 
+	  IL_0127:  nop 
+	  IL_0128:  ldloc.s 5
+	  IL_012a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_012f:  brtrue IL_010a
+
+	  IL_0134:  leave IL_0150
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0139:  ldloc.s 5
+	  IL_013b:  isinst [mscorlib]System.IDisposable
+	  IL_0140:  dup 
+	  IL_0141:  stloc.s 6
+	  IL_0143:  brfalse IL_014f
+
+	  IL_0148:  ldloc.s 6
+	  IL_014a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_014f:  endfinally 
+	} // end handler 1
+	IL_0150:  ldarg.0 
+	IL_0151:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0156:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 2
+	  IL_015b:  nop 
+	  IL_015c:  ldloc.0 
+	  IL_015d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0162:  nop 
+	  IL_0163:  leave IL_0176
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0168:  nop 
+	  IL_0169:  ldarg.0 
+	  IL_016a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_016f:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0174:  nop 
+	  IL_0175:  endfinally 
+	} // end handler 2
+	IL_0176:  ret 
+    } // end of method CompilerBase::CompileResxResources
+
+    // method line 276
+    .method public static hidebysig 
+           default class [mscorlib]System.Globalization.CultureInfo GetResourceCulture (string resourceFile, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0x9816
-	// 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 0x7498
+	// Code size 140 (0x8c)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Globalization.CultureInfo	V_1,
+		int32	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  brfalse IL_0034
 
-	.property instance bool AutoRef ()
+	IL_000e:  ldarg.1 
+	IL_000f:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0014:  brfalse IL_0034
+
+	IL_0019:  nop 
+	IL_001a:  ldarg.1 
+	IL_001b:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0020:  ldloc.0 
+	IL_0021:  call bool string::op_Equality(string, string)
+	IL_0026:  brfalse IL_0033
+
+	IL_002b:  nop 
+	IL_002c:  ldnull 
+	IL_002d:  stloc.1 
+	IL_002e:  br IL_008a
+
+	IL_0033:  nop 
+	IL_0034:  ldloc.0 
+	IL_0035:  ldc.i4.s 0x2e
+	IL_0037:  callvirt instance int32 string::LastIndexOf(char)
+	IL_003c:  stloc.2 
+	IL_003d:  ldloc.2 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  blt IL_0083
+
+	IL_0044:  ldloc.2 
+	IL_0045:  ldloc.0 
+	IL_0046:  callvirt instance int32 string::get_Length()
+	IL_004b:  bgt IL_0083
+
+	IL_0050:  nop 
+	IL_0051:  ldloc.0 
+	IL_0052:  ldloc.2 
+	IL_0053:  ldc.i4.1 
+	IL_0054:  add 
+	IL_0055:  ldloc.0 
+	IL_0056:  callvirt instance int32 string::get_Length()
+	IL_005b:  ldloc.2 
+	IL_005c:  ldc.i4.1 
+	IL_005d:  add 
+	IL_005e:  sub 
+	IL_005f:  callvirt instance string string::Substring(int32, int32)
+	IL_0064:  stloc.3 
+	IL_0065:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.DotNet.Tasks.CompilerBase::CultureNames
+	IL_006a:  ldloc.3 
+	IL_006b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_0070:  brfalse IL_0082
+
+	IL_0075:  nop 
+	IL_0076:  ldloc.3 
+	IL_0077:  newobj instance void class [mscorlib]System.Globalization.CultureInfo::'.ctor'(string)
+	IL_007c:  stloc.1 
+	IL_007d:  br IL_008a
+
+	IL_0082:  nop 
+	IL_0083:  ldnull 
+	IL_0084:  stloc.1 
+	IL_0085:  br IL_008a
+
+	IL_008a:  ldloc.1 
+	IL_008b:  ret 
+    } // end of method CompilerBase::GetResourceCulture
+
+	.property instance bool Debug ()
 	{
-		.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.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.JscTask::get_AutoRef () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_AutoRef (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_Debug () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Debug (bool 'value') 
 	}
-	.property instance bool NoStdLib ()
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
 	{
-		.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.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.
 
-		.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.CompilerBase::get_OutputFile () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string OutputTarget ()
+	{
+		.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.
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_NoStdLib () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_NoStdLib (bool 'value') 
+		.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.CompilerBase::get_OutputTarget () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_OutputTarget (string 'value') 
 	}
-	.property instance string Platform ()
+	.property instance string Define ()
 	{
-		.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..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 64 65 66 69 6E 65 00 00 ) // ...define..
 
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Platform () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Platform (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_Define () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Define (string 'value') 
 	}
-	.property instance bool VersionSafe ()
+	.property instance class [mscorlib]System.IO.FileInfo Win32Icon ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 77 69 6E 33 32 69 63 6F 6E 00 00 ) // ...win32icon..
 
-		.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.CompilerBase::get_Win32Icon () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Win32Res ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 77 69 6E 33 32 72 65 73 00 00 ) // ...win32res..
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_VersionSafe () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_VersionSafe (bool 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::get_Win32Res () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Win32Res (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string WarningLevel ()
+	.property instance bool WarnAsError ()
 	{
 		.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                                              ) // .
+		01 00 0B 77 61 72 6E 61 73 65 72 72 6F 72 00 00 ) // ...warnaserror..
 
-		.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 ) // ............
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 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') 
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_WarnAsError () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_WarnAsError (bool 'value') 
 	}
 	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
 	{
-		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.JscTask::get_WarningAsError () 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 77 61 72 6E 61 73 65 72 72 6F 72 00 00 ) // ...warnaserror..
+
+		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError () 
 	}
 	.property instance string NoWarn ()
 	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6E 6F 77 61 72 6E 00 00 ) // ...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') 
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_NoWarn () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::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 () 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 06 6E 6F 77 61 72 6E 07 77 61 72 6E 69 6E   // ...nowarn.warnin
+		67 00 00                                        ) // g..
+
+		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.CompilerBase::get_SuppressWarnings () 
 	}
-	.property instance string Codepage ()
+	.property instance bool ForceRebuild ()
 	{
-		.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..
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Codepage () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Codepage (string 'value') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_ForceRebuild () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_ForceRebuild (bool 'value') 
+	}
+	.property instance string MainType ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6E 00 00 ) // ...main..
+
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_MainType () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_MainType (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') 
+		.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.CompilerBase::get_KeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::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') 
+		.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.CompilerBase::get_KeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::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') 
+		.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..
+
+		.get instance default valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::get_DelaySign () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value') 
 	}
-	.property instance bool SupportsKeyContainer ()
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Lib ()
 	{
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsKeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsKeyContainer (bool 'value') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 03 6C 69 62 00 00 ) // ...lib..
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 3C 55 73 65 20 74 68 65 20 3C 6C 69 62 3E   // ..<Use the <lib>
+		20 65 6C 65 6D 65 6E 74 20 69 6E 20 3C 72 65 66   //  element in <ref
+		65 72 65 6E 63 65 73 3E 20 61 6E 64 20 3C 6D 6F   // erences> and <mo
+		64 75 6C 65 73 3E 20 69 6E 73 74 65 61 64 2E 00   // dules> instead..
+		00 00                                           ) // ..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::get_Lib () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Lib (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
 	}
-	.property instance bool SupportsKeyFile ()
+	.property instance class NAnt.DotNet.Types.AssemblyFileSet References ()
 	{
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsKeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsKeyFile (bool 'value') 
+		.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.CompilerBase::get_References () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
 	}
-	.property instance bool SupportsDelaySign ()
+	.property instance class NAnt.DotNet.Types.PackageCollection Packages ()
 	{
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsDelaySign () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsDelaySign (bool 'value') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 0E 70 6B 67 2D 72 65 66 65 72 65 6E 63 65   // ...pkg-reference
+		73 07 70 61 63 6B 61 67 65 00 00                ) // s.package..
+
+		.get instance default class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::get_Packages () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Packages (class NAnt.DotNet.Types.PackageCollection 'value') 
 	}
-	.property instance bool SupportsPlatform ()
+	.property instance class NAnt.DotNet.Types.ResourceFileSetCollection ResourcesList ()
 	{
-		.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..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 09 72 65 73 6F 75 72 63 65 73 00 00 ) // ...resources..
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsPlatform () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsPlatform (bool 'value') 
+		.get instance default class NAnt.DotNet.Types.ResourceFileSetCollection NAnt.DotNet.Tasks.CompilerBase::get_ResourcesList () 
 	}
 	.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') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 6D 6F 64 75 6C 65 73 00 00 ) // ...modules..
+
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::get_Modules () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Modules (class NAnt.DotNet.Types.AssemblyFileSet '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.CompilerBase::get_Sources () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance bool SupportsPackageReferences ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 19 73 75 70 70 6F 72 74 73 70 61 63 6B 61   // ...supportspacka
+		67 65 72 65 66 65 72 65 6E 63 65 73 00 00       ) // gereferences..
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsPackageReferences () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsPackageReferences (bool 'value') 
+	}
+	.property instance bool SupportsWarnAsErrorList ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 17 73 75 70 70 6F 72 74 73 77 61 72 6E 61   // ...supportswarna
+		73 65 72 72 6F 72 6C 69 73 74 00 00             ) // serrorlist..
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsWarnAsErrorList () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsWarnAsErrorList (bool 'value') 
+	}
+	.property instance bool SupportsNoWarnList ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 12 73 75 70 70 6F 72 74 73 6E 6F 77 61 72   // ...supportsnowar
+		6E 6C 69 73 74 00 00                            ) // nlist..
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsNoWarnList () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsNoWarnList (bool 'value') 
+	}
+	.property instance bool SupportsKeyContainer ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 14 73 75 70 70 6F 72 74 73 6B 65 79 63 6F   // ...supportskeyco
+		6E 74 61 69 6E 65 72 00 00                      ) // ntainer..
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsKeyContainer (bool 'value') 
+	}
+	.property instance bool SupportsKeyFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 0F 73 75 70 70 6F 72 74 73 6B 65 79 66 69   // ...supportskeyfi
+		6C 65 00 00                                     ) // le..
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsKeyFile (bool 'value') 
+	}
+	.property instance bool SupportsDelaySign ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 11 73 75 70 70 6F 72 74 73 64 65 6C 61 79   // ...supportsdelay
+		73 69 67 6E 00 00                               ) // sign..
+
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsDelaySign () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsDelaySign (bool 'value') 
 	}
 	.property instance string Extension ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Extension () 
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase::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 () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CompilerBase::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 () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CompilerBase::get_NamespaceRegex () 
 	}
-  } // end of class NAnt.DotNet.Tasks.JscTask
-}
-
-.namespace NAnt.DotNet.Tasks
-{
-  .class public auto ansi beforefieldinit VbcTask
-  	extends NAnt.DotNet.Tasks.CompilerBase
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_ProgramArguments () 
+	}
+  .class nested public auto ansi beforefieldinit ResourceLinkage
+  	extends [mscorlib]System.Object
   {
-    .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
+    .field  private  string _namespaceName
+    .field  private  string _className
+    .field  private  class [mscorlib]System.Globalization.CultureInfo _culture
 
-    // method line 283
+    // method line 277
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (string namespaceName, string className)  cil managed 
     {
-        // Method begins at RVA 0x9836
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x7530
+	// Code size 22 (0x16)
 	.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_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
 	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:  ldarg.1 
+	IL_0009:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
+	IL_0015:  ret 
+    } // end of method ResourceLinkage::.ctor
 
-    // method line 284
-    .method public hidebysig specialname 
-           instance default string get_BaseAddress ()  cil managed 
+    // method line 278
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x9850
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x7548
+	// Code size 146 (0x92)
+	.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.DotNet.Tasks.VbcTask::_baseAddress
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
+	IL_0007:  brtrue IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VbcTask::get_BaseAddress
+	IL_000c:  nop 
+	IL_000d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0012:  stloc.1 
+	IL_0013:  br IL_0090
 
-    // method line 285
-    .method public hidebysig specialname 
-           instance default void set_BaseAddress (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x986b
-	// 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
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasNamespaceName()
+	IL_001e:  brfalse IL_005c
 
-    // method line 286
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasClassName()
+	IL_002a:  brfalse IL_004d
+
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName()
+	IL_0036:  ldstr "."
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_ClassName()
+	IL_0041:  call string string::Concat(string, string, string)
+	IL_0046:  stloc.0 
+	IL_0047:  nop 
+	IL_0048:  br IL_0056
+
+	IL_004d:  nop 
+	IL_004e:  ldarg.0 
+	IL_004f:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName()
+	IL_0054:  stloc.0 
+	IL_0055:  nop 
+	IL_0056:  nop 
+	IL_0057:  br IL_0065
+
+	IL_005c:  nop 
+	IL_005d:  ldarg.0 
+	IL_005e:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_ClassName()
+	IL_0063:  stloc.0 
+	IL_0064:  nop 
+	IL_0065:  ldarg.0 
+	IL_0066:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_Culture()
+	IL_006b:  brfalse IL_0089
+
+	IL_0070:  nop 
+	IL_0071:  ldstr "{0}.{1}"
+	IL_0076:  ldloc.0 
+	IL_0077:  ldarg.0 
+	IL_0078:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_Culture()
+	IL_007d:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_0082:  call string string::Format(string, object, object)
+	IL_0087:  stloc.0 
+	IL_0088:  nop 
+	IL_0089:  ldloc.0 
+	IL_008a:  stloc.1 
+	IL_008b:  br IL_0090
+
+	IL_0090:  ldloc.1 
+	IL_0091:  ret 
+    } // end of method ResourceLinkage::ToString
+
+    // method line 279
     .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
+           instance default bool get_IsValid ()  cil managed 
     {
-        // Method begins at RVA 0x987c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x75e8
+	// Code size 42 (0x2a)
+	.maxstack 2
 	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
+		bool	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_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  brfalse IL_0021
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VbcTask::get_DebugOutput
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
+	IL_0017:  call bool string::IsNullOrEmpty(string)
+	IL_001c:  ldc.i4.0 
+	IL_001d:  ceq 
+	IL_001f:  br.s IL_0022
 
-    // method line 287
-    .method public hidebysig specialname 
-           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9897
-	// 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
+	IL_0021:  ldc.i4.1 
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
 
-    // method line 288
-    .method public virtual hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method ResourceLinkage::get_IsValid
+
+    // method line 280
+    .method public hidebysig specialname 
+           instance default bool get_HasNamespaceName ()  cil managed 
     {
-        // Method begins at RVA 0x98a4
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x7620
+	// Code size 23 (0x17)
 	.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_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ceq 
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method VbcTask::get_Debug
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method ResourceLinkage::get_HasNamespaceName
 
-    // method line 289
-    .method public virtual hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+    // method line 281
+    .method public hidebysig specialname 
+           instance default bool get_HasClassName ()  cil managed 
     {
-        // Method begins at RVA 0x98c5
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x7644
+	// Code size 23 (0x17)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	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
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ceq 
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-    // method line 290
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method ResourceLinkage::get_HasClassName
+
+    // method line 282
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
+           instance default string get_NamespaceName ()  cil managed 
     {
-        // Method begins at RVA 0x98d0
+        // Method begins at RVA 0x7668
 	// 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.VbcTask::_docFile
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
 	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 ResourceLinkage::get_NamespaceName
 
-    // method line 291
+    // method line 283
     .method public hidebysig specialname 
-           instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_NamespaceName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x98eb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x7683
+	// Code size 26 (0x1a)
 	.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 292
-    .method public hidebysig specialname 
-           instance default void set_ImportsString (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x98f8
-	// 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_0003:  brfalse IL_0013
 
-	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_0008:  ldarg.1 
+	IL_0009:  callvirt instance string string::Trim()
+	IL_000e:  br IL_0014
 
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method VbcTask::set_ImportsString
+	IL_0013:  ldnull 
+	IL_0014:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
+	IL_0019:  ret 
+    } // end of method ResourceLinkage::set_NamespaceName
 
-    // method line 293
+    // method line 284
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
+           instance default string get_ClassName ()  cil managed 
     {
-        // Method begins at RVA 0x994c
+        // Method begins at RVA 0x76a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImportCollection	V_0)
+		string	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 string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
 	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 ResourceLinkage::get_ClassName
 
-    // method line 294
+    // method line 285
     .method public hidebysig specialname 
-           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
+           instance default void set_ClassName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9967
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x76bb
+	// Code size 26 (0x1a)
 	.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
+	IL_0003:  brfalse IL_0013
 
-    // method line 295
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance string string::Trim()
+	IL_000e:  br IL_0014
+
+	IL_0013:  ldnull 
+	IL_0014:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
+	IL_0019:  ret 
+    } // end of method ResourceLinkage::set_ClassName
+
+    // method line 286
     .method public hidebysig specialname 
-           instance default bool get_NoStdLib ()  cil managed 
+           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0x9974
+        // Method begins at RVA 0x76d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Globalization.CultureInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_nostdlib
+	IL_0002:  ldfld class [mscorlib]System.Globalization.CultureInfo NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_culture
 	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 ResourceLinkage::get_Culture
 
-    // method line 296
+    // method line 287
     .method public hidebysig specialname 
-           instance default void set_NoStdLib (bool 'value')  cil managed 
+           instance default void set_Culture (class [mscorlib]System.Globalization.CultureInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x998f
+        // Method begins at RVA 0x76f3
 	// 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 class [mscorlib]System.Globalization.CultureInfo NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_culture
 	IL_0008:  ret 
-    } // end of method VbcTask::set_NoStdLib
+    } // end of method ResourceLinkage::set_Culture
 
-    // method line 297
+	.property instance bool IsValid ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid () 
+	}
+	.property instance bool HasNamespaceName ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasNamespaceName () 
+	}
+	.property instance bool HasClassName ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasClassName () 
+	}
+	.property instance string NamespaceName ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_NamespaceName (string 'value') 
+	}
+	.property instance string ClassName ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_ClassName () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_ClassName (string 'value') 
+	}
+	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
+	{
+		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_Culture () 
+		.set instance default void NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_Culture (class [mscorlib]System.Globalization.CultureInfo 'value') 
+	}
+  } // end of class ResourceLinkage
+
+  } // end of class NAnt.DotNet.Tasks.CompilerBase
+}
+
+.namespace NAnt.DotNet.Tasks
+{
+  .class public auto ansi serializable beforefieldinit LicenseTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 6C 69 63 65 6E 73 65 00 00 ) // ...license..
+
+    .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.DotNet.Types.AssemblyFileSet _assemblies
+    .field  private  class [mscorlib]System.IO.FileInfo _inputFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _target
+    .field  private  string _programFileName
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _workingDirectory
+    .field  private  bool _supportsAssemblyReferences
+    .field  private  bool _hasCommandLineCompiler
+
+    // method line 288
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7f1a
+	// Code size 25 (0x19)
+	.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.LicenseTask::_assemblies
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.DotNet.Tasks.LicenseTask::_hasCommandLineCompiler
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0018:  ret 
+    } // end of method LicenseTask::.ctor
+
+    // method line 289
     .method public hidebysig specialname 
-           instance default string get_OptionCompare ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
     {
-        // Method begins at RVA 0x999c
+        // Method begins at RVA 0x7f34
 	// 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.DotNet.Tasks.VbcTask::_optionCompare
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::_inputFile
 	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 LicenseTask::get_InputFile
 
-    // method line 298
+    // method line 290
     .method public hidebysig specialname 
-           instance default void set_OptionCompare (string 'value')  cil managed 
+           instance default void set_InputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x99b7
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x7f4f
+	// 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 class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::_inputFile
+	IL_0008:  ret 
+    } // end of method LicenseTask::set_InputFile
 
-    // method line 299
+    // method line 291
     .method public hidebysig specialname 
-           instance default bool get_OptionExplicit ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x99c8
+        // Method begins at RVA 0x7f5c
 	// 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.VbcTask::_optionExplicit
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::_outputFile
 	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 LicenseTask::get_OutputFile
 
-    // method line 300
+    // method line 292
     .method public hidebysig specialname 
-           instance default void set_OptionExplicit (bool 'value')  cil managed 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x99e3
+        // Method begins at RVA 0x7f77
 	// 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 class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::_outputFile
 	IL_0008:  ret 
-    } // end of method VbcTask::set_OptionExplicit
+    } // end of method LicenseTask::set_OutputFile
 
-    // method line 301
+    // method line 293
     .method public hidebysig specialname 
-           instance default bool get_OptionOptimize ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x99f0
+        // Method begins at RVA 0x7f84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionOptimize
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.LicenseTask::_assemblies
 	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 LicenseTask::get_Assemblies
 
-    // method line 302
+    // method line 294
     .method public hidebysig specialname 
-           instance default void set_OptionOptimize (bool 'value')  cil managed 
+           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x9a0b
+        // Method begins at RVA 0x7f9f
 	// 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_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.LicenseTask::_assemblies
 	IL_0008:  ret 
-    } // end of method VbcTask::set_OptionOptimize
+    } // end of method LicenseTask::set_Assemblies
 
-    // method line 303
+    // method line 295
     .method public hidebysig specialname 
-           instance default bool get_OptionStrict ()  cil managed 
+           instance default string get_LicenseTarget ()  cil managed 
     {
-        // Method begins at RVA 0x9a18
+        // Method begins at RVA 0x7fac
 	// 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::_optionStrict
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
 	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 LicenseTask::get_LicenseTarget
 
-    // method line 304
+    // method line 296
     .method public hidebysig specialname 
-           instance default void set_OptionStrict (bool 'value')  cil managed 
+           instance default void set_LicenseTarget (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9a33
+        // Method begins at RVA 0x7fc7
 	// 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:  call instance void class NAnt.DotNet.Tasks.LicenseTask::set_Target(string)
 	IL_0008:  ret 
-    } // end of method VbcTask::set_OptionStrict
+    } // end of method LicenseTask::set_LicenseTarget
 
-    // method line 305
+    // method line 297
     .method public hidebysig specialname 
-           instance default string get_Platform ()  cil managed 
+           instance default string get_Target ()  cil managed 
     {
-        // Method begins at RVA 0x9a40
+        // Method begins at RVA 0x7fd4
 	// 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.LicenseTask::_target
 	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 LicenseTask::get_Target
 
-    // method line 306
+    // method line 298
     .method public hidebysig specialname 
-           instance default void set_Platform (string 'value')  cil managed 
+           instance default void set_Target (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9a5b
+        // Method begins at RVA 0x7fef
 	// 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.LicenseTask::_target
 	IL_000d:  ret 
-    } // end of method VbcTask::set_Platform
+    } // end of method LicenseTask::set_Target
 
-    // method line 307
+    // method line 299
     .method public hidebysig specialname 
-           instance default bool get_RemoveIntChecks ()  cil managed 
+           instance default bool get_SupportsAssemblyReferences ()  cil managed 
     {
-        // Method begins at RVA 0x9a6c
+        // Method begins at RVA 0x8000
 	// 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_0002:  ldfld bool NAnt.DotNet.Tasks.LicenseTask::_supportsAssemblyReferences
 	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 LicenseTask::get_SupportsAssemblyReferences
 
-    // method line 308
+    // method line 300
     .method public hidebysig specialname 
-           instance default void set_RemoveIntChecks (bool 'value')  cil managed 
+           instance default void set_SupportsAssemblyReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9a87
+        // Method begins at RVA 0x801b
 	// 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_0003:  stfld bool NAnt.DotNet.Tasks.LicenseTask::_supportsAssemblyReferences
 	IL_0008:  ret 
-    } // end of method VbcTask::set_RemoveIntChecks
+    } // end of method LicenseTask::set_SupportsAssemblyReferences
 
-    // method line 309
+    // method line 301
     .method public hidebysig specialname 
-           instance default string get_RootNamespace ()  cil managed 
+           instance default bool get_HasCommandLineCompiler ()  cil managed 
     {
-        // Method begins at RVA 0x9a94
+        // Method begins at RVA 0x8028
 	// 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::_rootNamespace
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.LicenseTask::_hasCommandLineCompiler
 	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 LicenseTask::get_HasCommandLineCompiler
 
-    // method line 310
+    // method line 302
     .method public hidebysig specialname 
-           instance default void set_RootNamespace (string 'value')  cil managed 
+           instance default void set_HasCommandLineCompiler (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9aaf
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x8043
+	// 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::_rootNamespace
-	IL_000d:  ret 
-    } // end of method VbcTask::set_RootNamespace
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.LicenseTask::_hasCommandLineCompiler
+	IL_0008:  ret 
+    } // end of method LicenseTask::set_HasCommandLineCompiler
 
-    // method line 311
-    .method public hidebysig specialname 
-           instance default bool get_SupportsDocGeneration ()  cil managed 
+    // method line 303
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x9ac0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x8050
+	// Code size 112 (0x70)
+	.maxstack 3
 	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_0002:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	IL_0007:  brtrue IL_0033
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VbcTask::get_SupportsDocGeneration
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0012:  ldstr "NA2013"
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001c:  ldarg.0 
+	IL_001d:  callvirt instance string class [NAnt.Core]NAnt.Core.Element::get_Name()
+	IL_0022:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0027:  ldarg.0 
+	IL_0028:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_002d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0032:  throw 
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	IL_0039:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_003e:  brtrue IL_006f
 
-    // method line 312
-    .method public hidebysig specialname 
-           instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9adb
-	// 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
+	IL_0043:  nop 
+	IL_0044:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0049:  ldstr "NA2014"
+	IL_004e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0053:  ldarg.0 
+	IL_0054:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	IL_0059:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_005e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0063:  ldarg.0 
+	IL_0064:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_0069:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_006e:  throw 
+	IL_006f:  ret 
+    } // end of method LicenseTask::Initialize
 
-    // method line 313
-    .method public hidebysig specialname 
-           instance default bool get_SupportsNoStdLib ()  cil managed 
+    // method line 304
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x9ae8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x80cc
+	// 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 bool NAnt.DotNet.Tasks.VbcTask::_supportsNoStdLib
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.LicenseTask::_workingDirectory
+	IL_0007:  brtrue IL_0019
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VbcTask::get_SupportsNoStdLib
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0025
 
-    // method line 314
-    .method public hidebysig specialname 
-           instance default void set_SupportsNoStdLib (bool 'value')  cil managed 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.LicenseTask::_workingDirectory
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
+
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method LicenseTask::get_BaseDirectory
+
+    // method line 305
+    .method public virtual hidebysig specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9b03
+        // Method begins at RVA 0x80ff
 	// 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 class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.LicenseTask::_workingDirectory
 	IL_0008:  ret 
-    } // end of method VbcTask::set_SupportsNoStdLib
+    } // end of method LicenseTask::set_BaseDirectory
 
-    // method line 315
-    .method public hidebysig specialname 
-           instance default bool get_SupportsPlatform ()  cil managed 
+    // method line 306
+    .method public virtual hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
     {
-        // Method begins at RVA 0x9b10
+        // Method begins at RVA 0x810c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.ArgumentCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsPlatform
+	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_SupportsPlatform
-
-    // method line 316
-    .method public hidebysig specialname 
-           instance default void set_SupportsPlatform (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9b2b
-	// 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
+    } // end of method LicenseTask::get_Arguments
 
-    // method line 317
-    .method family virtual hidebysig 
-           instance default class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage GetResourceLinkage (string dependentFile, class [mscorlib]System.Globalization.CultureInfo resourceCulture)  cil managed 
+    // method line 307
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x9b38
-	// Code size 105 (0x69)
-	.maxstack 4
+        // Method begins at RVA 0x8128
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_0,
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_1)
+		string	V_0)
 	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_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0067:  ldloc.1 
-	IL_0068:  ret 
-    } // end of method VbcTask::GetResourceLinkage
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method LicenseTask::get_ProgramArguments
 
-    // method line 318
-    .method family virtual hidebysig 
-           instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 308
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x9bb0
-	// Code size 72 (0x48)
-	.maxstack 4
+        // Method begins at RVA 0x8144
+	// Code size 40 (0x28)
+	.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.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
-	IL_0007:  brfalse IL_0047
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
+	IL_0007:  brtrue IL_001a
 
 	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_000e:  ldarg.0 
+	IL_000f:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_0014:  stfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method VbcTask::WriteConditionalCompilationConstants
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method LicenseTask::get_ProgramFileName
 
-    // method line 319
+    // method line 309
     .method family virtual hidebysig 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x9c04
-	// Code size 840 (0x348)
-	.maxstack 7
+        // Method begins at RVA 0x8178
+	// Code size 547 (0x223)
+	.maxstack 4
 	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
-		string	V_1)
+		class [NAnt.Core]NAnt.Core.Tasks.CopyTask	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		string	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:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_BaseAddress()
-	IL_0007:  brfalse IL_0020
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.LicenseTask::get_SupportsAssemblyReferences()
+	IL_0007:  brtrue IL_01ac
 
 	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldstr "baseaddress"
+	IL_000d:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::'.ctor'()
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
 	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_0015:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_001f:  ldloc.0 
 	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_0021:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0026:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_002b:  ldloc.0 
 	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_002d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0032:  ldloc.0 
+	IL_0033:  ldarg.0 
+	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:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0044:  brtrue IL_0056
 
+	IL_0049:  nop 
+	IL_004a:  ldloc.0 
+	IL_004b:  ldc.i4 4000
+	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
 	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_0056:  ldloc.0 
+	IL_0057:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	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 void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0068:  ldloc.0 
+	IL_0069:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_006e:  ldloc.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_0074:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0079:  ldloc.0 
+	IL_007a:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_007f:  ldloc.0 
+	IL_0080:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0085:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_008a:  ldloc.0 
+	IL_008b:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0090:  ldarg.0 
+	IL_0091:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_0096:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_00a0:  ldloc.0 
+	IL_00a1:  ldc.i4.1 
+	IL_00a2:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_Flatten(bool)
+	IL_00a7:  nop 
+	IL_00a8:  ldarg.0 
+	IL_00a9:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_00ae:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00b3:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00b8:  stloc.2 
+	.try { // 0
+	  IL_00b9:  br IL_00d9
 
-	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_00be:  ldloc.2 
+	  IL_00bf:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00c4:  stloc.1 
+	  IL_00c5:  nop 
+	  IL_00c6:  ldloc.0 
+	  IL_00c7:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	  IL_00cc:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_00d1:  ldloc.1 
+	  IL_00d2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00d7:  pop 
+	  IL_00d8:  nop 
+	  IL_00d9:  ldloc.2 
+	  IL_00da:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00df:  brtrue IL_00be
 
-	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_00e4:  leave IL_00fd
 
-	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
+	} // end .try 0
+	finally  { // 0
+	  IL_00e9:  ldloc.2 
+	  IL_00ea:  isinst [mscorlib]System.IDisposable
+	  IL_00ef:  dup 
+	  IL_00f0:  stloc.3 
+	  IL_00f1:  brfalse IL_00fc
 
-	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_00f6:  ldloc.3 
+	  IL_00f7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00fc:  endfinally 
+	} // end handler 0
+	IL_00fd:  ldloc.0 
+	IL_00fe:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0103:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	IL_0108:  ldarg.0 
+	IL_0109:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_010e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0113:  pop 
+	IL_0114:  ldloc.0 
+	IL_0115:  ldarg.0 
+	IL_0116:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_011b:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_ToDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0120:  ldloc.0 
+	IL_0121:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0126:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 1
+	  IL_012b:  nop 
+	  IL_012c:  ldloc.0 
+	  IL_012d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0132:  nop 
+	  IL_0133:  leave IL_0146
 
-	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
+	} // end .try 1
+	finally  { // 1
+	  IL_0138:  nop 
+	  IL_0139:  ldloc.0 
+	  IL_013a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_013f:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0144:  nop 
+	  IL_0145:  endfinally 
+	} // end handler 1
+	IL_0146:  ldarg.0 
+	IL_0147:  ldarg.0 
+	IL_0148:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_014d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0152:  ldarg.0 
+	IL_0153:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_0158:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_015d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0162:  stfld string NAnt.DotNet.Tasks.LicenseTask::_programFileName
+	IL_0167:  ldarg.0 
+	IL_0168:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_016d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0172:  ldarg.0 
+	IL_0173:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	IL_0178:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_017d:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0182:  stloc.s 4
+	IL_0184:  ldloc.s 4
+	IL_0186:  call bool string::IsNullOrEmpty(string)
+	IL_018b:  brtrue IL_01a6
+
+	IL_0190:  ldloc.s 4
+	IL_0192:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0197:  brtrue IL_01a6
+
+	IL_019c:  nop 
+	IL_019d:  ldloc.s 4
+	IL_019f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	IL_01a4:  pop 
+	IL_01a5:  nop 
+	IL_01a6:  nop 
+	IL_01a7:  br IL_021b
+
+	IL_01ac:  nop 
+	IL_01ad:  nop 
+	IL_01ae:  ldarg.0 
+	IL_01af:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_01b4:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_01b9:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_01be:  stloc.s 6
+	.try { // 2
+	  IL_01c0:  br IL_01f2
+
+	  IL_01c5:  ldloc.s 6
+	  IL_01c7:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_01cc:  stloc.s 5
+	  IL_01ce:  nop 
+	  IL_01cf:  ldarg.0 
+	  IL_01d0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_01d5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_01da:  ldstr "/i:\"{0}\""
+	  IL_01df:  ldloc.s 5
+	  IL_01e1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_01e6:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_01eb:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_01f0:  pop 
+	  IL_01f1:  nop 
+	  IL_01f2:  ldloc.s 6
+	  IL_01f4:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_01f9:  brtrue IL_01c5
+
+	  IL_01fe:  leave IL_021a
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0203:  ldloc.s 6
+	  IL_0205:  isinst [mscorlib]System.IDisposable
+	  IL_020a:  dup 
+	  IL_020b:  stloc.s 7
+	  IL_020d:  brfalse IL_0219
+
+	  IL_0212:  ldloc.s 7
+	  IL_0214:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0219:  endfinally 
+	} // end handler 2
+	IL_021a:  nop 
+	IL_021b:  ldarg.0 
+	IL_021c:  ldarg.1 
+	IL_021d:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
+	IL_0222:  ret 
+    } // end of method LicenseTask::PrepareProcess
+
+    // method line 310
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x83d0
+	// Code size 724 (0x2d4)
+	.maxstack 9
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0,
+		class [mscorlib]System.Exception	V_1,
+		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_2,
+		class [mscorlib]System.AppDomain	V_3,
+		class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_0009:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000e:  brtrue IL_0030
+
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_001a:  ldarg.0 
+	IL_001b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0020:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0025:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_002a:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_OutputFile()
+	IL_0036:  brtrue IL_0093
+
+	IL_003b:  nop 
+	.try { // 0
+	  IL_003c:  nop 
+	  IL_003d:  ldarg.0 
+	  IL_003e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0043:  ldarg.0 
+	  IL_0044:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	  IL_0049:  ldstr ".licenses"
+	  IL_004e:  call string string::Concat(string, string)
+	  IL_0053:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
+	  IL_0058:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_005d:  stloc.0 
+	  IL_005e:  nop 
+	  IL_005f:  leave IL_008d
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0064:  stloc.1 
+	  IL_0065:  nop 
+	  IL_0066:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_006b:  ldstr "NA2015"
+	  IL_0070:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0075:  ldarg.0 
+	  IL_0076:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	  IL_007b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0080:  ldarg.0 
+	  IL_0081:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	  IL_0086:  ldloc.1 
+	  IL_0087:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_008c:  throw 
+	} // end handler 0
+	IL_008d:  nop 
+	IL_008e:  br IL_009c
+
+	IL_0093:  nop 
+	IL_0094:  ldarg.0 
+	IL_0095:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_OutputFile()
+	IL_009a:  stloc.0 
+	IL_009b:  nop 
+	IL_009c:  ldloc.0 
+	IL_009d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_00a2:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_00a7:  brtrue IL_00b9
+
+	IL_00ac:  nop 
+	IL_00ad:  ldloc.0 
+	IL_00ae:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_00b3:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_00b8:  nop 
+	IL_00b9:  ldarg.0 
+	IL_00ba:  ldloc.0 
+	IL_00bb:  call instance bool class NAnt.DotNet.Tasks.LicenseTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
+	IL_00c0:  brtrue IL_00cb
+
+	IL_00c5:  nop 
+	IL_00c6:  br IL_02d3
+
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldc.i4 2000
+	IL_00d1:  ldstr "String_CompilingLicenseUsingTarget"
+	IL_00d6:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00db:  ldc.i4.3 
+	IL_00dc:  newarr [mscorlib]System.Object
+	IL_00e1:  dup 
+	IL_00e2:  ldc.i4.0 
+	IL_00e3:  ldarg.0 
+	IL_00e4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	IL_00e9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00ee:  stelem.ref 
+	IL_00ef:  dup 
+	IL_00f0:  ldc.i4.1 
+	IL_00f1:  ldloc.0 
+	IL_00f2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00f7:  stelem.ref 
+	IL_00f8:  dup 
+	IL_00f9:  ldc.i4.2 
+	IL_00fa:  ldarg.0 
+	IL_00fb:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	IL_0100:  stelem.ref 
+	IL_0101:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0106:  ldarg.0 
+	IL_0107:  call instance bool class NAnt.DotNet.Tasks.LicenseTask::get_HasCommandLineCompiler()
+	IL_010c:  brfalse IL_026d
 
 	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_0113:  call class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Util.FileUtils::GetTempDirectory()
+	IL_0118:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	.try { // 1
+	  IL_011d:  nop 
+	  IL_011e:  ldarg.0 
+	  IL_011f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_0124:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0129:  ldstr "/target:\"{0}\""
+	  IL_012e:  ldarg.0 
+	  IL_012f:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	  IL_0134:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0139:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_013e:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_0143:  pop 
+	  IL_0144:  ldarg.0 
+	  IL_0145:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_014a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_014f:  ldstr "/complist:\"{0}\""
+	  IL_0154:  ldarg.0 
+	  IL_0155:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	  IL_015a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_015f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0164:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_0169:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_016e:  pop 
+	  IL_016f:  ldarg.0 
+	  IL_0170:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_0175:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_017a:  ldstr "/outdir:\"{0}\""
+	  IL_017f:  ldarg.0 
+	  IL_0180:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	  IL_0185:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_018a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_018f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_0194:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_0199:  pop 
+	  IL_019a:  ldarg.0 
+	  IL_019b:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_01a0:  ldstr "/nologo"
+	  IL_01a5:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_01aa:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_01af:  pop 
+	  IL_01b0:  ldarg.0 
+	  IL_01b1:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_01b6:  brfalse IL_01d3
 
-	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_01bb:  nop 
+	  IL_01bc:  ldarg.0 
+	  IL_01bd:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_01c2:  ldstr "/v"
+	  IL_01c7:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_01cc:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_01d1:  pop 
+	  IL_01d2:  nop 
+	  IL_01d3:  ldarg.0 
+	  IL_01d4:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_01d9:  ldloc.0 
+	  IL_01da:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01df:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_01e4:  brfalse IL_01f6
 
-	IL_0188:  br IL_0212
+	  IL_01e9:  nop 
+	  IL_01ea:  ldloc.0 
+	  IL_01eb:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01f0:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_01f5:  nop 
+	  IL_01f6:  ldarg.0 
+	  IL_01f7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	  IL_01fc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0201:  ldarg.0 
+	  IL_0202:  call instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	  IL_0207:  ldstr ".licenses"
+	  IL_020c:  call string string::Concat(string, string)
+	  IL_0211:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0216:  ldloc.0 
+	  IL_0217:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_021c:  ldc.i4.1 
+	  IL_021d:  call void class [mscorlib]System.IO.File::Copy(string, string, bool)
+	  IL_0222:  nop 
+	  IL_0223:  leave IL_0267
 
-	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
+	} // end .try 1
+	finally  { // 1
+	  IL_0228:  nop 
+	  IL_0229:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
+	  IL_022e:  stloc.2 
+	  IL_022f:  ldloc.2 
+	  IL_0230:  ldarg.0 
+	  IL_0231:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0236:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	  IL_023b:  ldloc.2 
+	  IL_023c:  ldarg.0 
+	  IL_023d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	  IL_0242:  ldloc.2 
+	  IL_0243:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	  IL_0248:  ldloc.2 
+	  IL_0249:  ldarg.0 
+	  IL_024a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	  IL_024f:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_Directory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_0254:  ldloc.2 
+	  IL_0255:  ldc.i4 9999
+	  IL_025a:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	  IL_025f:  ldloc.2 
+	  IL_0260:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0265:  nop 
+	  IL_0266:  endfinally 
+	} // end handler 1
+	IL_0267:  nop 
+	IL_0268:  br IL_02d3
 
-	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_026d:  nop 
+	IL_026e:  ldstr "LicenseGatheringDomain"
+	IL_0273:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::CreateDomain(string)
+	IL_0278:  stloc.3 
+	IL_0279:  ldloc.3 
+	IL_027a:  ldtoken NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer
+	IL_027f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0284:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
+	IL_0289:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_028e:  ldtoken NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer
+	IL_0293:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0298:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_029d:  ldc.i4.0 
+	IL_029e:  ldc.i4.s 0x14
+	IL_02a0:  ldnull 
+	IL_02a1:  ldc.i4.0 
+	IL_02a2:  newarr [mscorlib]System.Object
+	IL_02a7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02ac:  ldc.i4.0 
+	IL_02ad:  newarr [mscorlib]System.Object
+	IL_02b2:  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_02b7:  castclass NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer
+	IL_02bc:  stloc.s 4
+	IL_02be:  ldloc.s 4
+	IL_02c0:  ldarg.0 
+	IL_02c1:  ldloc.0 
+	IL_02c2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_02c7:  callvirt instance void class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer::CreateLicenseFile(class NAnt.DotNet.Tasks.LicenseTask, string)
+	IL_02cc:  ldloc.3 
+	IL_02cd:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
+	IL_02d2:  nop 
+	IL_02d3:  ret 
+    } // end of method LicenseTask::ExecuteTask
 
-	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
+    // method line 311
+    .method private hidebysig 
+           instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo licensesFile)  cil managed 
+    {
+        // Method begins at RVA 0x86e4
+	// Code size 214 (0xd6)
+	.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_0038
 
-	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_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldc.i4 2000
+	IL_0013:  ldstr "String_OutputFileDoesNotExist"
+	IL_0018:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  ldc.i4.1 
+	IL_001e:  newarr [mscorlib]System.Object
+	IL_0023:  dup 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  ldarg.1 
+	IL_0026:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002b:  stelem.ref 
+	IL_002c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0031:  ldc.i4.1 
+	IL_0032:  stloc.0 
+	IL_0033:  br IL_00d4
 
-	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_0038:  ldarg.0 
+	IL_0039:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_003e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0043:  ldarg.1 
+	IL_0044:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0049:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_004e:  stloc.1 
+	IL_004f:  ldloc.1 
+	IL_0050:  brfalse IL_007c
 
-	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_0055:  nop 
+	IL_0056:  ldarg.0 
+	IL_0057:  ldc.i4 2000
+	IL_005c:  ldstr "String_FileHasBeenUpdated"
+	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:  ldloc.1 
+	IL_006f:  stelem.ref 
+	IL_0070:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0075:  ldc.i4.1 
+	IL_0076:  stloc.0 
+	IL_0077:  br IL_00d4
 
-	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_007c:  ldarg.0 
+	IL_007d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	IL_0082:  brfalse IL_00cd
 
-	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_0087:  nop 
+	IL_0088:  ldarg.0 
+	IL_0089:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	IL_008e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0093:  ldarg.1 
+	IL_0094:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0099:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_009e:  stloc.1 
+	IL_009f:  ldloc.1 
+	IL_00a0:  brfalse IL_00cc
 
-	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_00a5:  nop 
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldc.i4 2000
+	IL_00ac:  ldstr "String_FileHasBeenUpdated"
+	IL_00b1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00b6:  ldc.i4.1 
+	IL_00b7:  newarr [mscorlib]System.Object
+	IL_00bc:  dup 
+	IL_00bd:  ldc.i4.0 
+	IL_00be:  ldloc.1 
+	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_00d4
 
-	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_00cc:  nop 
+	IL_00cd:  ldc.i4.0 
+	IL_00ce:  stloc.0 
+	IL_00cf:  br IL_00d4
 
-	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_00d4:  ldloc.0 
+	IL_00d5:  ret 
+    } // end of method LicenseTask::NeedsCompiling
 
-	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
+	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
+	{
+		.custom instance void class [NAnt.Core]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.
 
-	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
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::get_InputFile () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_InputFile (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 00                            ) // quired.
 
-    // method line 320
-    .method family virtual hidebysig 
-           instance default bool NeedsCompiling ()  cil managed 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.LicenseTask::get_OutputFile () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.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 00 00 ) // ...assemblies..
+
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.LicenseTask::get_Assemblies () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+	.property instance string LicenseTarget ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 6C 69 63 65 6E 73 65 74 61 72 67 65 74   // ...licensetarget
+		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.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 23 55 73 65 20 74 68 65 20 22 74 61 72 67   // ..#Use the "targ
+		65 74 22 20 61 74 74 72 69 62 75 74 65 20 69 6E   // et" attribute in
+		73 74 65 61 64 2E 00 00 00                      ) // stead....
+
+		.get instance default string NAnt.DotNet.Tasks.LicenseTask::get_LicenseTarget () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_LicenseTarget (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.
+
+		.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.LicenseTask::get_Target () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_Target (string 'value') 
+	}
+	.property instance bool SupportsAssemblyReferences ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 1A 73 75 70 70 6F 72 74 73 61 73 73 65 6D   // ...supportsassem
+		62 6C 79 72 65 66 65 72 65 6E 63 65 73 00 00    ) // blyreferences..
+
+		.get instance default bool NAnt.DotNet.Tasks.LicenseTask::get_SupportsAssemblyReferences () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_SupportsAssemblyReferences (bool 'value') 
+	}
+	.property instance bool HasCommandLineCompiler ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 16 68 61 73 63 6F 6D 6D 61 6E 64 6C 69 6E   // ...hascommandlin
+		65 63 6F 6D 70 69 6C 65 72 00 00                ) // ecompiler..
+
+		.get instance default bool NAnt.DotNet.Tasks.LicenseTask::get_HasCommandLineCompiler () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_HasCommandLineCompiler (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.LicenseTask::get_BaseDirectory () 
+		.set instance default void NAnt.DotNet.Tasks.LicenseTask::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection Arguments ()
+	{
+		.get instance default class [NAnt.Core]NAnt.Core.Types.ArgumentCollection NAnt.DotNet.Tasks.LicenseTask::get_Arguments () 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.LicenseTask::get_ProgramArguments () 
+	}
+	.property instance string ProgramFileName ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.LicenseTask::get_ProgramFileName () 
+	}
+  .class nested private auto ansi beforefieldinit LicenseGatherer
+  	extends [mscorlib]System.MarshalByRefObject
+  {
+
+    // method line 312
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x9f58
-	// Code size 123 (0x7b)
+        // Method begins at RVA 0x87c6
+	// 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 LicenseGatherer::.ctor
+
+    // method line 313
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
+    {
+        // Method begins at RVA 0x87d0
+	// 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 LicenseGatherer::InitializeLifetimeService
+
+    // method line 314
+    .method public hidebysig 
+           instance default void CreateLicenseFile (class NAnt.DotNet.Tasks.LicenseTask licenseTask, string licensesFile)  cil managed 
+    {
+        // Method begins at RVA 0x880c
+	// Code size 1071 (0x42f)
 	.maxstack 7
 	.locals init (
+		class [mscorlib]System.Collections.ArrayList	V_0,
+		class [NAnt.Core]NAnt.Core.Util.AssemblyResolver	V_1,
+		string	V_2,
+		class [System]System.Collections.Specialized.StringEnumerator	V_3,
+		class [mscorlib]System.Reflection.Assembly	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [System]System.ComponentModel.Design.DesigntimeLicenseContext	V_6,
+		class [mscorlib]System.IO.StreamReader	V_7,
+		class [mscorlib]System.Collections.Hashtable	V_8,
+		string	V_9,
+		string	V_10,
+		class [mscorlib]System.Type	V_11,
+		class [mscorlib]System.Reflection.Assembly	V_12,
+		class [mscorlib]System.Collections.IEnumerator	V_13,
+		class [mscorlib]System.IDisposable	V_14,
+		class [mscorlib]System.Exception	V_15,
+		class [mscorlib]System.IO.FileStream	V_16,
+		class [mscorlib]System.Exception	V_17)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.1 
+	IL_0008:  newobj instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::'.ctor'(class [NAnt.Core]NAnt.Core.Task)
+	IL_000d:  stloc.1 
+	IL_000e:  ldloc.1 
+	IL_000f:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Attach()
+	IL_0014:  ldarg.1 
+	IL_0015:  ldc.i4 2000
+	IL_001a:  ldstr "String_LoadingAssemblies"
+	IL_001f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	.try { // 8
+	  .try { // 6
+	    IL_0029:  nop 
+	    IL_002a:  nop 
+	    IL_002b:  ldarg.1 
+	    IL_002c:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	    IL_0031:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_0036:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	    IL_003b:  stloc.3 
+	    .try { // 0
+	      IL_003c:  br IL_0089
+
+	      IL_0041:  ldloc.3 
+	      IL_0042:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	      IL_0047:  stloc.2 
+	      IL_0048:  nop 
+	      IL_0049:  ldloc.2 
+	      IL_004a:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	      IL_004f:  stloc.s 4
+	      IL_0051:  ldloc.s 4
+	      IL_0053:  ldnull 
+	      IL_0054:  call bool class [mscorlib]System.Reflection.Assembly::op_Inequality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
+	      IL_0059:  brfalse IL_0088
+
+	      IL_005e:  nop 
+	      IL_005f:  ldarg.1 
+	      IL_0060:  ldc.i4 2000
+	      IL_0065:  ldstr "String_AssemblyLoaded"
+	      IL_006a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	      IL_006f:  ldc.i4.1 
+	      IL_0070:  newarr [mscorlib]System.Object
+	      IL_0075:  dup 
+	      IL_0076:  ldc.i4.0 
+	      IL_0077:  ldloc.2 
+	      IL_0078:  stelem.ref 
+	      IL_0079:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	      IL_007e:  ldloc.0 
+	      IL_007f:  ldloc.s 4
+	      IL_0081:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	      IL_0086:  pop 
+	      IL_0087:  nop 
+	      IL_0088:  nop 
+	      IL_0089:  ldloc.3 
+	      IL_008a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	      IL_008f:  brtrue IL_0041
+
+	      IL_0094:  leave IL_00af
+
+	    } // end .try 0
+	    finally  { // 0
+	      IL_0099:  ldloc.3 
+	      IL_009a:  isinst [mscorlib]System.IDisposable
+	      IL_009f:  dup 
+	      IL_00a0:  stloc.s 5
+	      IL_00a2:  brfalse IL_00ae
+
+	      IL_00a7:  ldloc.s 5
+	      IL_00a9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_00ae:  endfinally 
+	    } // end handler 0
+	    IL_00af:  newobj instance void class [System]System.ComponentModel.Design.DesigntimeLicenseContext::'.ctor'()
+	    IL_00b4:  stloc.s 6
+	    IL_00b6:  ldloc.s 6
+	    IL_00b8:  call void class [System]System.ComponentModel.LicenseManager::set_CurrentContext(class [System]System.ComponentModel.LicenseContext)
+	    IL_00bd:  ldarg.1 
+	    IL_00be:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	    IL_00c3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_00c8:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string)
+	    IL_00cd:  stloc.s 7
+	    .try { // 4
+	      IL_00cf:  nop 
+	      IL_00d0:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	      IL_00d5:  stloc.s 8
+	      IL_00d7:  ldarg.1 
+	      IL_00d8:  ldc.i4 2000
+	      IL_00dd:  ldstr "String_CreatingLicenses"
+	      IL_00e2:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	      IL_00e7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	      IL_00ec:  nop 
+	      IL_00ed:  nop 
+	      IL_00ee:  ldloc.s 7
+	      IL_00f0:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	      IL_00f5:  stloc.s 9
+	      IL_00f7:  ldloc.s 9
+	      IL_00f9:  brtrue IL_0104
+
+	      IL_00fe:  nop 
+	      IL_00ff:  leave IL_0322
+
+	      IL_0104:  ldloc.s 9
+	      IL_0106:  callvirt instance string string::Trim()
+	      IL_010b:  stloc.s 9
+	      IL_010d:  ldloc.s 9
+	      IL_010f:  ldstr "#"
+	      IL_0114:  callvirt instance bool string::StartsWith(string)
+	      IL_0119:  brtrue IL_0138
+
+	      IL_011e:  ldloc.s 9
+	      IL_0120:  callvirt instance int32 string::get_Length()
+	      IL_0125:  brfalse IL_0138
+
+	      IL_012a:  ldloc.s 8
+	      IL_012c:  ldloc.s 9
+	      IL_012e:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	      IL_0133:  brfalse IL_013e
+
+	      IL_0138:  nop 
+	      IL_0139:  leave IL_00ec
+
+	      IL_013e:  ldarg.1 
+	      IL_013f:  ldc.i4 2000
+	      IL_0144:  ldloc.s 9
+	      IL_0146:  ldstr ": "
+	      IL_014b:  call string string::Concat(string, string)
+	      IL_0150:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	      IL_0155:  ldloc.s 9
+	      IL_0157:  ldc.i4.s 0x2c
+	      IL_0159:  callvirt instance int32 string::IndexOf(char)
+	      IL_015e:  ldc.i4.m1 
+	      IL_015f:  beq IL_0179
+
+	      IL_0164:  nop 
+	      IL_0165:  ldloc.s 9
+	      IL_0167:  ldc.i4.s 0x2c
+	      IL_0169:  ldc.i4.0 
+	      IL_016a:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	      IL_016f:  ldc.i4.0 
+	      IL_0170:  ldelem.ref 
+	      IL_0171:  stloc.s 10
+	      IL_0173:  nop 
+	      IL_0174:  br IL_017f
+
+	      IL_0179:  nop 
+	      IL_017a:  ldloc.s 9
+	      IL_017c:  stloc.s 10
+	      IL_017e:  nop 
+	      IL_017f:  ldnull 
+	      IL_0180:  stloc.s 11
+	      IL_0182:  nop 
+	      IL_0183:  ldloc.0 
+	      IL_0184:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	      IL_0189:  stloc.s 13
+	      .try { // 1
+	        IL_018b:  br IL_01cf
+
+	        IL_0190:  ldloc.s 13
+	        IL_0192:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	        IL_0197:  castclass [mscorlib]System.Reflection.Assembly
+	        IL_019c:  stloc.s 12
+	        IL_019e:  nop 
+	        IL_019f:  ldloc.s 11
+	        IL_01a1:  ldnull 
+	        IL_01a2:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	        IL_01a7:  brfalse IL_01bb
+
+	        IL_01ac:  nop 
+	        IL_01ad:  ldloc.s 12
+	        IL_01af:  ldloc.s 10
+	        IL_01b1:  ldc.i4.0 
+	        IL_01b2:  ldc.i4.1 
+	        IL_01b3:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
+	        IL_01b8:  stloc.s 11
+	        IL_01ba:  nop 
+	        IL_01bb:  ldloc.s 11
+	        IL_01bd:  ldnull 
+	        IL_01be:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	        IL_01c3:  brfalse IL_01ce
+
+	        IL_01c8:  nop 
+	        IL_01c9:  leave IL_01db
+
+	        IL_01ce:  nop 
+	        IL_01cf:  ldloc.s 13
+	        IL_01d1:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	        IL_01d6:  brtrue IL_0190
+
+	        IL_01db:  leave IL_01f7
+
+	      } // end .try 1
+	      finally  { // 1
+	        IL_01e0:  ldloc.s 13
+	        IL_01e2:  isinst [mscorlib]System.IDisposable
+	        IL_01e7:  dup 
+	        IL_01e8:  stloc.s 14
+	        IL_01ea:  brfalse IL_01f6
+
+	        IL_01ef:  ldloc.s 14
+	        IL_01f1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	        IL_01f6:  endfinally 
+	      } // end handler 1
+	      IL_01f7:  ldloc.s 11
+	      IL_01f9:  ldnull 
+	      IL_01fa:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	      IL_01ff:  brfalse IL_0220
+
+	      IL_0204:  nop 
+	      .try { // 2
+	        IL_0205:  nop 
+	        IL_0206:  ldloc.s 9
+	        IL_0208:  ldc.i4.0 
+	        IL_0209:  ldc.i4.0 
+	        IL_020a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
+	        IL_020f:  stloc.s 11
+	        IL_0211:  nop 
+	        IL_0212:  leave IL_021f
+
+	      } // end .try 2
+	      catch class [mscorlib]System.Object { // 2
+	        IL_0217:  pop 
+	        IL_0218:  nop 
+	        IL_0219:  nop 
+	        IL_021a:  leave IL_021f
+
+	      } // end handler 2
+	      IL_021f:  nop 
+	      IL_0220:  ldloc.s 11
+	      IL_0222:  ldnull 
+	      IL_0223:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	      IL_0228:  brfalse IL_0250
+
+	      IL_022d:  nop 
+	      IL_022e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	      IL_0233:  ldstr "NA2016"
+	      IL_0238:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	      IL_023d:  ldloc.s 10
+	      IL_023f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	      IL_0244:  ldarg.1 
+	      IL_0245:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	      IL_024a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	      IL_024f:  throw 
+	      IL_0250:  nop 
+	      IL_0251:  ldloc.s 8
+	      IL_0253:  ldloc.s 9
+	      IL_0255:  ldloc.s 11
+	      IL_0257:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	      IL_025c:  nop 
+	      IL_025d:  ldloc.s 11
+	      IL_025f:  ldtoken [System]System.ComponentModel.LicenseProviderAttribute
+	      IL_0264:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	      IL_0269:  ldc.i4.1 
+	      IL_026a:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	      IL_026f:  ldlen 
+	      IL_0270:  conv.i4 
+	      IL_0271:  brtrue IL_029e
+
+	      IL_0276:  nop 
+	      IL_0277:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	      IL_027c:  ldstr "NA2017"
+	      IL_0281:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	      IL_0286:  ldloc.s 11
+	      IL_0288:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	      IL_028d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	      IL_0292:  ldarg.1 
+	      IL_0293:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	      IL_0298:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	      IL_029d:  throw 
+	      .try { // 3
+	        IL_029e:  nop 
+	        IL_029f:  ldloc.s 11
+	        IL_02a1:  ldloc.s 6
+	        IL_02a3:  call object class [System]System.ComponentModel.LicenseManager::CreateWithContext(class [mscorlib]System.Type, class [System]System.ComponentModel.LicenseContext)
+	        IL_02a8:  pop 
+	        IL_02a9:  nop 
+	        IL_02aa:  leave IL_031c
+
+	      } // end .try 3
+	      catch class [mscorlib]System.Exception { // 3
+	        IL_02af:  stloc.s 15
+	        IL_02b1:  nop 
+	        IL_02b2:  ldarg.0 
+	        IL_02b3:  ldloc.s 15
+	        IL_02b5:  call instance bool class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer::IsSerializable(object)
+	        IL_02ba:  brfalse IL_02e9
+
+	        IL_02bf:  nop 
+	        IL_02c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	        IL_02c5:  ldstr "NA2018"
+	        IL_02ca:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	        IL_02cf:  ldloc.s 11
+	        IL_02d1:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	        IL_02d6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	        IL_02db:  ldarg.1 
+	        IL_02dc:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	        IL_02e1:  ldloc.s 15
+	        IL_02e3:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	        IL_02e8:  throw 
+	        IL_02e9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	        IL_02ee:  ldstr "NA2018"
+	        IL_02f3:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	        IL_02f8:  ldloc.s 11
+	        IL_02fa:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	        IL_02ff:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	        IL_0304:  ldarg.1 
+	        IL_0305:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	        IL_030a:  ldloc.s 15
+	        IL_030c:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	        IL_0311:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
+	        IL_0316:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	        IL_031b:  throw 
+	      } // end handler 3
+	      IL_031c:  nop 
+	      IL_031d:  br IL_00ec
+
+	      IL_0322:  nop 
+	      IL_0323:  leave IL_0337
+
+	    } // end .try 4
+	    finally  { // 4
+	      IL_0328:  ldloc.s 7
+	      IL_032a:  brfalse IL_0336
+
+	      IL_032f:  ldloc.s 7
+	      IL_0331:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_0336:  endfinally 
+	    } // end handler 4
+	    IL_0337:  ldarg.2 
+	    IL_0338:  call bool class [mscorlib]System.IO.File::Exists(string)
+	    IL_033d:  brfalse IL_0355
+
+	    IL_0342:  nop 
+	    IL_0343:  ldarg.2 
+	    IL_0344:  ldc.i4 128
+	    IL_0349:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	    IL_034e:  ldarg.2 
+	    IL_034f:  call void class [mscorlib]System.IO.File::Delete(string)
+	    IL_0354:  nop 
+	    IL_0355:  ldarg.2 
+	    IL_0356:  ldc.i4.2 
+	    IL_0357:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
+	    IL_035c:  stloc.s 16
+	    .try { // 5
+	      IL_035e:  nop 
+	      IL_035f:  ldloc.s 16
+	      IL_0361:  ldarg.1 
+	      IL_0362:  callvirt instance string class NAnt.DotNet.Tasks.LicenseTask::get_Target()
+	      IL_0367:  ldloc.s 6
+	      IL_0369:  call void class [System]System.ComponentModel.Design.DesigntimeLicenseContextSerializer::Serialize(class [mscorlib]System.IO.Stream, string, class [System]System.ComponentModel.Design.DesigntimeLicenseContext)
+	      IL_036e:  ldarg.1 
+	      IL_036f:  ldc.i4 2000
+	      IL_0374:  ldstr "String_CreatedNewLicense"
+	      IL_0379:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	      IL_037e:  ldc.i4.1 
+	      IL_037f:  newarr [mscorlib]System.Object
+	      IL_0384:  dup 
+	      IL_0385:  ldc.i4.0 
+	      IL_0386:  ldarg.2 
+	      IL_0387:  stelem.ref 
+	      IL_0388:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	      IL_038d:  nop 
+	      IL_038e:  leave IL_03a2
+
+	    } // end .try 5
+	    finally  { // 5
+	      IL_0393:  ldloc.s 16
+	      IL_0395:  brfalse IL_03a1
+
+	      IL_039a:  ldloc.s 16
+	      IL_039c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_03a1:  endfinally 
+	    } // end handler 5
+	    IL_03a2:  ldnull 
+	    IL_03a3:  stloc.s 6
+	    IL_03a5:  nop 
+	    IL_03a6:  leave IL_042e
+
+	  } // end .try 6
+	  catch class [NAnt.Core]NAnt.Core.BuildException { // 6
+	    IL_03ab:  pop 
+	    IL_03ac:  nop 
+	    IL_03ad:  rethrow 
+	  } // end handler 6
+	  catch class [mscorlib]System.Exception { // 7
+	    IL_03af:  stloc.s 17
+	    IL_03b1:  nop 
+	    IL_03b2:  ldarg.0 
+	    IL_03b3:  ldloc.s 17
+	    IL_03b5:  call instance bool class NAnt.DotNet.Tasks.LicenseTask/LicenseGatherer::IsSerializable(object)
+	    IL_03ba:  brfalse IL_03ed
+
+	    IL_03bf:  nop 
+	    IL_03c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_03c5:  ldstr "NA2019"
+	    IL_03ca:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_03cf:  ldarg.1 
+	    IL_03d0:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	    IL_03d5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_03da:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_03df:  ldarg.1 
+	    IL_03e0:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	    IL_03e5:  ldloc.s 17
+	    IL_03e7:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_03ec:  throw 
+	    IL_03ed:  nop 
+	    IL_03ee:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_03f3:  ldstr "NA2019"
+	    IL_03f8:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_03fd:  ldarg.1 
+	    IL_03fe:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.LicenseTask::get_InputFile()
+	    IL_0403:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_0408:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_040d:  ldarg.1 
+	    IL_040e:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	    IL_0413:  ldloc.s 17
+	    IL_0415:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_041a:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
+	    IL_041f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_0424:  throw 
+	  } // end handler 7
+	} // end .try 8
+	finally  { // 8
+	  IL_0425:  nop 
+	  IL_0426:  ldloc.1 
+	  IL_0427:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Detach()
+	  IL_042c:  nop 
+	  IL_042d:  endfinally 
+	} // end handler 8
+	IL_042e:  ret 
+    } // end of method LicenseGatherer::CreateLicenseFile
+
+    // method line 315
+    .method private hidebysig 
+           instance default bool IsSerializable (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8d24
+	// Code size 49 (0x31)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Runtime.Serialization.Formatters.Binary.BinaryFormatter	V_0,
+		class [mscorlib]System.IO.MemoryStream	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.Runtime.Serialization.Formatters.Binary.BinaryFormatter::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
+	IL_000c:  stloc.1 
+	.try { // 1
+	  .try { // 0
+	    IL_000d:  nop 
+	    IL_000e:  ldloc.0 
+	    IL_000f:  ldloc.1 
+	    IL_0010:  ldarg.1 
+	    IL_0011:  callvirt instance void class [mscorlib]System.Runtime.Serialization.Formatters.Binary.BinaryFormatter::Serialize(class [mscorlib]System.IO.Stream, object)
+	    IL_0016:  ldc.i4.1 
+	    IL_0017:  stloc.2 
+	    IL_0018:  leave IL_002f
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Runtime.Serialization.SerializationException { // 0
+	    IL_001d:  pop 
+	    IL_001e:  nop 
+	    IL_001f:  ldc.i4.0 
+	    IL_0020:  stloc.2 
+	    IL_0021:  leave IL_002f
+
+	  } // end handler 0
+	} // end .try 1
+	finally  { // 1
+	  IL_0026:  nop 
+	  IL_0027:  ldloc.1 
+	  IL_0028:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
+	  IL_002d:  nop 
+	  IL_002e:  endfinally 
+	} // end handler 1
+	IL_002f:  ldloc.2 
+	IL_0030:  ret 
+    } // end of method LicenseGatherer::IsSerializable
+
+  } // end of class LicenseGatherer
+
+  } // end of class NAnt.DotNet.Tasks.LicenseTask
+}
+
+.namespace NAnt.DotNet.Tasks
+{
+  .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 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 _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 316
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x8d80
+	// Code size 7 (0x7)
+	.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
+
+    // method line 317
+    .method public hidebysig specialname 
+           instance default bool get_AutoRef ()  cil managed 
+    {
+        // Method begins at RVA 0x8d88
+	// 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.DotNet.Tasks.CompilerBase::NeedsCompiling()
-	IL_0007:  brfalse IL_0014
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_autoRef
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  nop 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0079
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_AutoRef
 
-	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
+    // method line 318
+    .method public hidebysig specialname 
+           instance default void set_AutoRef (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8da3
+	// 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_0008:  ret 
+    } // end of method JscTask::set_AutoRef
 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
-	IL_0025:  brfalse IL_006d
+    // method line 319
+    .method public hidebysig specialname 
+           instance default bool get_NoStdLib ()  cil managed 
+    {
+        // Method begins at RVA 0x8db0
+	// 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.JscTask::_nostdlib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_NoStdLib
+
+    // method line 320
+    .method public hidebysig specialname 
+           instance default void set_NoStdLib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8dcb
+	// 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::_nostdlib
+	IL_0008:  ret 
+    } // end of method JscTask::set_NoStdLib
+
+    // method line 321
+    .method public hidebysig specialname 
+           instance default string get_Platform ()  cil managed 
+    {
+        // Method begins at RVA 0x8dd8
+	// 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::_platform
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_Platform
+
+    // method line 322
+    .method public hidebysig specialname 
+           instance default void set_Platform (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8df3
+	// 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
+
+    // method line 323
+    .method public hidebysig specialname 
+           instance default bool get_VersionSafe ()  cil managed 
+    {
+        // Method begins at RVA 0x8e04
+	// 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.JscTask::_versionSafe
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_VersionSafe
+
+    // method line 324
+    .method public hidebysig specialname 
+           instance default void set_VersionSafe (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8e1f
+	// 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_0008:  ret 
+    } // end of method JscTask::set_VersionSafe
+
+    // method line 325
+    .method public hidebysig specialname 
+           instance default string get_WarningLevel ()  cil managed 
+    {
+        // Method begins at RVA 0x8e2c
+	// 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::_warningLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_WarningLevel
+
+    // method line 326
+    .method public hidebysig specialname 
+           instance default void set_WarningLevel (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8e47
+	// 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 327
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
+    {
+        // Method begins at RVA 0x8e58
+	// 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 328
+    .method public virtual hidebysig specialname 
+           instance default string get_NoWarn ()  cil managed 
+    {
+        // Method begins at RVA 0x8e74
+	// 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 329
+    .method public virtual hidebysig specialname 
+           instance default void set_NoWarn (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8e8f
+	// 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
+
+    // method line 330
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
+    {
+        // Method begins at RVA 0x8e9c
+	// 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 331
+    .method public hidebysig specialname 
+           instance default string get_Codepage ()  cil managed 
+    {
+        // Method begins at RVA 0x8eb8
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_Codepage
+
+    // method line 332
+    .method public hidebysig specialname 
+           instance default void set_Codepage (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8ed3
+	// 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 333
+    .method public virtual hidebysig specialname 
+           instance default string get_KeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0x8ee4
+	// 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 334
+    .method public virtual hidebysig specialname 
+           instance default void set_KeyContainer (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8eff
+	// 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
+
+    // method line 335
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x8f0c
+	// 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
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_KeyFile
+
+    // method line 336
+    .method public virtual hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8f27
+	// 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
+
+    // method line 337
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
+    {
+        // Method begins at RVA 0x8f34
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.DotNet.Types.DelaySign	V_0)
+	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_DelaySign
+
+    // method line 338
+    .method public virtual hidebysig specialname 
+           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8f4f
+	// 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
+
+    // method line 339
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsKeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0x8f5c
+	// 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 340
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8f72
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method JscTask::set_SupportsKeyContainer
+
+    // method line 341
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsKeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x8f78
+	// 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 342
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsKeyFile (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8f8e
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method JscTask::set_SupportsKeyFile
+
+    // method line 343
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsDelaySign ()  cil managed 
+    {
+        // Method begins at RVA 0x8f94
+	// 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 344
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsDelaySign (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8faa
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method JscTask::set_SupportsDelaySign
+
+    // method line 345
+    .method public hidebysig specialname 
+           instance default bool get_SupportsPlatform ()  cil managed 
+    {
+        // Method begins at RVA 0x8fb0
+	// 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.JscTask::_supportsPlatform
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_SupportsPlatform
+
+    // method line 346
+    .method public hidebysig specialname 
+           instance default void set_SupportsPlatform (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8fcb
+	// 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
 
+    // method line 347
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
+    {
+        // Method begins at RVA 0x8fd8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.AssemblyFileSet	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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_Modules
+
+    // method line 348
+    .method public virtual hidebysig specialname 
+           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8ff3
+	// 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_Modules(class NAnt.DotNet.Types.AssemblyFileSet)
+	IL_0008:  ret 
+    } // end of method JscTask::set_Modules
+
+    // method line 349
+    .method family virtual hidebysig 
+           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x8ffd
+	// 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 350
+    .method family virtual hidebysig 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x9030
+	// 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:  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_003d:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_NoStdLib()
+	IL_0042:  brfalse IL_005a
 
-	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_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_0079:  ldloc.0 
-	IL_007a:  ret 
-    } // end of method VbcTask::NeedsCompiling
+	IL_005a:  ldarg.0 
+	IL_005b:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_AutoRef()
+	IL_0060:  brfalse IL_0073
 
-    // method line 321
+	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 351
     .method public virtual hidebysig specialname 
            instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0x9fe0
+        // Method begins at RVA 0x918c
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "vb"
+	IL_0001:  ldstr "js"
 	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 JscTask::get_Extension
 
-    // method line 322
+    // method line 352
     .method family virtual hidebysig specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
     {
-        // Method begins at RVA 0x9ffc
+        // Method begins at RVA 0x91a8
 	// 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.JscTask::_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 JscTask::get_ClassNameRegex
 
-    // method line 323
+    // method line 353
     .method family virtual hidebysig specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
     {
-        // Method begins at RVA 0xa018
+        // Method begins at RVA 0x91c4
 	// 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.JscTask::_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 JscTask::get_NamespaceRegex
 
-    // method line 324
+    // method line 354
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa032
+        // Method begins at RVA 0x91de
 	// 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.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.VbcTask::_namespaceRegex
+	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_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..
+    } // end of method JscTask::.cctor
 
-		.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 ()
+	.property instance bool AutoRef ()
 	{
-		.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 07 61 75 74 6F 72 65 66 00 00 ) // ...autoref..
 
-		.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.BooleanValidatorAttribute::'.ctor'() =  (01 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 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.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') 
+		.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 OptionCompare ()
+	.property instance string Platform ()
 	{
-		.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.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_OptionCompare () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionCompare (string 'value') 
+		.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 OptionExplicit ()
+	.property instance bool VersionSafe ()
 	{
 		.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..
+		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.VbcTask::get_OptionExplicit () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionExplicit (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_VersionSafe () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_VersionSafe (bool 'value') 
 	}
-	.property instance bool OptionOptimize ()
+	.property instance string WarningLevel ()
 	{
 		.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..
+		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_OptionOptimize () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionOptimize (bool 'value') 
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_WarningLevel () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_WarningLevel (string 'value') 
 	}
-	.property instance bool OptionStrict ()
+	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
 	{
-		.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') 
+		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.JscTask::get_WarningAsError () 
 	}
-	.property instance string Platform ()
+	.property instance string NoWarn ()
 	{
-		.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..
+		.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.VbcTask::get_Platform () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Platform (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_NoWarn () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_NoWarn (string 'value') 
 	}
-	.property instance bool RemoveIntChecks ()
+	.property instance class NAnt.DotNet.Types.CompilerWarningCollection SuppressWarnings ()
 	{
-		.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') 
+		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.JscTask::get_SuppressWarnings () 
 	}
-	.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.JscTask::get_Codepage () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Codepage (string 'value') 
 	}
-	.property instance bool SupportsDocGeneration ()
+	.property instance string KeyContainer ()
 	{
-		.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') 
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_KeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_KeyContainer (string 'value') 
 	}
-	.property instance bool SupportsNoStdLib ()
+	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
 	{
-		.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') 
+		.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 ()
 	{
@@ -12300,8250 +15438,5030 @@
 		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') 
+		.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.VbcTask::get_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.VbcTask::get_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.VbcTask::get_NamespaceRegex () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::get_NamespaceRegex () 
 	}
-  } // end of class NAnt.DotNet.Tasks.VbcTask
+  } // end of class NAnt.DotNet.Tasks.JscTask
 }
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit AssemblyLinkerTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi beforefieldinit VjcTask
+  	extends NAnt.DotNet.Tasks.CompilerBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 61 6C 00 00 ) // ...al..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 76 6A 63 00 00 ) // ...vjc..
 
     .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 _responseFileName
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  string _target
-    .field  private  string _algorithmID
-    .field  private  string _company
-    .field  private  string _configuration
-    .field  private  string _copyright
-    .field  private  string _culture
-    .field  private  valuetype NAnt.DotNet.Types.DelaySign _delaySign
-    .field  private  string _description
-    .field  private  class [mscorlib]System.IO.FileInfo _evidenceFile
-    .field  private  string _fileVersion
-    .field  private  string _flags
-    .field  private  string _keyContainer
-    .field  private  class [mscorlib]System.IO.FileInfo _keyfile
-    .field  private  string _mainMethod
-    .field  private  class NAnt.DotNet.Types.ModuleSet _modules
-    .field  private  string _product
-    .field  private  string _productVersion
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _resources
-    .field  private  class NAnt.DotNet.Types.EmbeddedResourceCollection _embeddedResources
-    .field  private  class [mscorlib]System.IO.FileInfo _templateFile
-    .field  private  string _title
-    .field  private  string _trademark
-    .field  private  string _version
-    .field  private  class [mscorlib]System.IO.FileInfo _win32Icon
-    .field  private  class [mscorlib]System.IO.FileInfo _win32Res
-    .field  private  bool _supportsTemplate
+    .field  private  string _baseAddress
+    .field  private  valuetype NAnt.DotNet.Types.DebugOutput _debugOutput
+    .field  private  bool _secureScoping
+    .field  private  string _x
+    .field  private  string _libPath
+    .field  private  string _jcpa
+    .field  private  string _codepage
+    .field  private  string _warningLevel
+    .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
+    .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
 
-    // method line 325
+    // method line 355
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa052
-	// Code size 47 (0x2f)
+        // Method begins at RVA 0x91fe
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.DotNet.Types.ModuleSet::'.ctor'()
-	IL_0006:  stfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_modules
-	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.AssemblyLinkerTask::_resources
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::'.ctor'()
-	IL_001c:  stfld class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::_embeddedResources
-	IL_0021:  ldarg.0 
-	IL_0022:  ldc.i4.1 
-	IL_0023:  stfld bool NAnt.DotNet.Tasks.AssemblyLinkerTask::_supportsTemplate
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_002e:  ret 
-    } // end of method AssemblyLinkerTask::.ctor
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VjcTask::_debugOutput
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
+	IL_000d:  ret 
+    } // end of method VjcTask::.ctor
 
-    // method line 326
+    // method line 356
     .method public hidebysig specialname 
-           instance default string get_AlgorithmID ()  cil managed 
+           instance default string get_BaseAddress ()  cil managed 
     {
-        // Method begins at RVA 0xa084
+        // Method begins at RVA 0x9210
 	// 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.AssemblyLinkerTask::_algorithmID
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VjcTask::_baseAddress
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_AlgorithmID
+    } // end of method VjcTask::get_BaseAddress
 
-    // method line 327
+    // method line 357
     .method public hidebysig specialname 
-           instance default void set_AlgorithmID (string 'value')  cil managed 
+           instance default void set_BaseAddress (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa09f
+        // Method begins at RVA 0x922b
 	// 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.AssemblyLinkerTask::_algorithmID
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VjcTask::_baseAddress
 	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_AlgorithmID
+    } // end of method VjcTask::set_BaseAddress
 
-    // method line 328
+    // method line 358
     .method public hidebysig specialname 
-           instance default string get_Company ()  cil managed 
+           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
     {
-        // Method begins at RVA 0xa0b0
+        // Method begins at RVA 0x923c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_company
+	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VjcTask::_debugOutput
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_Company
+    } // end of method VjcTask::get_DebugOutput
 
-    // method line 329
+    // method line 359
     .method public hidebysig specialname 
-           instance default void set_Company (string 'value')  cil managed 
+           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
     {
-        // Method begins at RVA 0xa0cb
+        // Method begins at RVA 0x9257
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_company
+	IL_0003:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VjcTask::_debugOutput
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Company
+    } // end of method VjcTask::set_DebugOutput
 
-    // method line 330
+    // method line 360
+    .method public virtual hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
+    {
+        // Method begins at RVA 0x9264
+	// 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.VjcTask::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 VjcTask::get_Debug
+
+    // method line 361
+    .method public virtual hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9285
+	// 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.VjcTask::set_DebugOutput(valuetype NAnt.DotNet.Types.DebugOutput)
+	IL_0008:  ret 
+    } // end of method VjcTask::set_Debug
+
+    // method line 362
     .method public hidebysig specialname 
-           instance default string get_Configuration ()  cil managed 
+           instance default bool get_SecureScoping ()  cil managed 
     {
-        // Method begins at RVA 0xa0d8
+        // Method begins at RVA 0x9290
 	// 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.AssemblyLinkerTask::_configuration
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VjcTask::_secureScoping
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_Configuration
+    } // end of method VjcTask::get_SecureScoping
 
-    // method line 331
+    // method line 363
     .method public hidebysig specialname 
-           instance default void set_Configuration (string 'value')  cil managed 
+           instance default void set_SecureScoping (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa0f3
+        // Method begins at RVA 0x92ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_configuration
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VjcTask::_secureScoping
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Configuration
+    } // end of method VjcTask::set_SecureScoping
 
-    // method line 332
+    // method line 364
     .method public hidebysig specialname 
-           instance default string get_Copyright ()  cil managed 
+           instance default string get_X ()  cil managed 
     {
-        // Method begins at RVA 0xa100
+        // Method begins at RVA 0x92b8
 	// 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.AssemblyLinkerTask::_copyright
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VjcTask::_x
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_Copyright
+    } // end of method VjcTask::get_X
 
-    // method line 333
+    // method line 365
     .method public hidebysig specialname 
-           instance default void set_Copyright (string 'value')  cil managed 
+           instance default void set_X (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa11b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x92d3
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_copyright
-	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Copyright
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VjcTask::_x
+	IL_000d:  ret 
+    } // end of method VjcTask::set_X
 
-    // method line 334
+    // method line 366
     .method public hidebysig specialname 
-           instance default string get_Culture ()  cil managed 
+           instance default string get_LibPath ()  cil managed 
     {
-        // Method begins at RVA 0xa128
+        // Method begins at RVA 0x92e4
 	// 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.AssemblyLinkerTask::_culture
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VjcTask::_libPath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_Culture
+    } // end of method VjcTask::get_LibPath
 
-    // method line 335
+    // method line 367
     .method public hidebysig specialname 
-           instance default void set_Culture (string 'value')  cil managed 
+           instance default void set_LibPath (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa143
+        // Method begins at RVA 0x92ff
 	// 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.AssemblyLinkerTask::_culture
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VjcTask::_libPath
 	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_Culture
+    } // end of method VjcTask::set_LibPath
 
-    // method line 336
+    // method line 368
     .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
+           instance default string get_Jcpa ()  cil managed 
     {
-        // Method begins at RVA 0xa154
+        // Method begins at RVA 0x9310
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Types.DelaySign	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.AssemblyLinkerTask::_delaySign
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VjcTask::_jcpa
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_DelaySign
+    } // end of method VjcTask::get_Jcpa
 
-    // method line 337
+    // method line 369
     .method public hidebysig specialname 
-           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
+           instance default void set_Jcpa (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa16f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x932b
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.AssemblyLinkerTask::_delaySign
-	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_DelaySign
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VjcTask::_jcpa
+	IL_000d:  ret 
+    } // end of method VjcTask::set_Jcpa
 
-    // method line 338
+    // method line 370
     .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
+           instance default string get_Codepage ()  cil managed 
     {
-        // Method begins at RVA 0xa17c
+        // Method begins at RVA 0x933c
 	// 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.AssemblyLinkerTask::_description
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VjcTask::_codepage
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_Description
+    } // end of method VjcTask::get_Codepage
 
-    // method line 339
+    // method line 371
     .method public hidebysig specialname 
-           instance default void set_Description (string 'value')  cil managed 
+           instance default void set_Codepage (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa197
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x9357
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_description
-	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Description
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VjcTask::_codepage
+	IL_000d:  ret 
+    } // end of method VjcTask::set_Codepage
 
-    // method line 340
+    // method line 372
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_EvidenceFile ()  cil managed 
+           instance default string get_WarningLevel ()  cil managed 
     {
-        // Method begins at RVA 0xa1a4
+        // Method begins at RVA 0x9368
 	// 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.AssemblyLinkerTask::_evidenceFile
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VjcTask::_warningLevel
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyLinkerTask::get_EvidenceFile
+    } // end of method VjcTask::get_WarningLevel
 
-    // method line 341
+    // method line 373
     .method public hidebysig specialname 
-           instance default void set_EvidenceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_WarningLevel (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9383
+	// 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.VjcTask::_warningLevel
+	IL_000d:  ret 
+    } // end of method VjcTask::set_WarningLevel
+
+    // method line 374
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
+    {
+        // Method begins at RVA 0x9394
+	// 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 VjcTask::get_WarningAsError
+
+    // method line 375
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.PackageCollection get_Packages ()  cil managed 
     {
-        // Method begins at RVA 0xa1bf
+        // Method begins at RVA 0x93b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.PackageCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.DotNet.Types.PackageCollection class NAnt.DotNet.Tasks.CompilerBase::get_Packages()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VjcTask::get_Packages
+
+    // method line 376
+    .method public virtual hidebysig specialname 
+           instance default void set_Packages (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x93cb
 	// 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.AssemblyLinkerTask::_evidenceFile
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_Packages(class NAnt.DotNet.Types.PackageCollection)
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_EvidenceFile
+    } // end of method VjcTask::set_Packages
 
-    // method line 342
-    .method public hidebysig specialname 
-           instance default string get_FileVersion ()  cil managed 
+    // method line 377
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0xa1cc
+        // Method begins at RVA 0x93d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
+		class NAnt.DotNet.Types.AssemblyFileSet	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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VjcTask::get_Modules
+
+    // method line 378
+    .method public virtual hidebysig specialname 
+           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x93f3
+	// 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_Modules(class NAnt.DotNet.Types.AssemblyFileSet)
+	IL_0008:  ret 
+    } // end of method VjcTask::set_Modules
+
+    // method line 379
+    .method family virtual hidebysig 
+           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x93fd
+	// 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 VjcTask::WriteModuleReferences
+
+    // method line 380
+    .method family virtual hidebysig 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x9430
+	// Code size 421 (0x1a5)
+	.maxstack 4
+	.locals init (
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.VjcTask::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.VjcTask::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 bool class NAnt.DotNet.Tasks.VjcTask::get_SecureScoping()
+	IL_0026:  brfalse IL_0039
+
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  ldarg.1 
+	IL_002e:  ldstr "securescoping"
+	IL_0033:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0038:  nop 
+	IL_0039:  ldarg.0 
+	IL_003a:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_X()
+	IL_003f:  brfalse IL_0058
+
+	IL_0044:  nop 
+	IL_0045:  ldarg.0 
+	IL_0046:  ldarg.1 
+	IL_0047:  ldstr "x"
+	IL_004c:  ldarg.0 
+	IL_004d:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_X()
+	IL_0052:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0057:  nop 
+	IL_0058:  ldarg.0 
+	IL_0059:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_LibPath()
+	IL_005e:  brfalse IL_0077
+
+	IL_0063:  nop 
+	IL_0064:  ldarg.0 
+	IL_0065:  ldarg.1 
+	IL_0066:  ldstr "libpath"
+	IL_006b:  ldarg.0 
+	IL_006c:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_LibPath()
+	IL_0071:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0076:  nop 
+	IL_0077:  ldarg.0 
+	IL_0078:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Jcpa()
+	IL_007d:  brfalse IL_0096
+
+	IL_0082:  nop 
+	IL_0083:  ldarg.0 
+	IL_0084:  ldarg.1 
+	IL_0085:  ldstr "jcpa"
+	IL_008a:  ldarg.0 
+	IL_008b:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Jcpa()
+	IL_0090:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0095:  nop 
+	IL_0096:  ldarg.0 
+	IL_0097:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Codepage()
+	IL_009c:  brfalse IL_00b5
+
+	IL_00a1:  nop 
+	IL_00a2:  ldarg.0 
+	IL_00a3:  ldarg.1 
+	IL_00a4:  ldstr "codepage"
+	IL_00a9:  ldarg.0 
+	IL_00aa:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_Codepage()
+	IL_00af:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_00b4:  nop 
+	IL_00b5:  ldarg.0 
+	IL_00b6:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VjcTask::get_DebugOutput()
+	IL_00bb:  stloc.0 
+	IL_00bc:  ldloc.0 
+	IL_00bd:  switch (
+	  IL_00d7,
+	  IL_00dc,
+	  IL_010f,
+	  IL_0120)
+	IL_00d2:  br IL_0136
+
+	IL_00d7:  br IL_0161
+
+	IL_00dc:  ldarg.0 
+	IL_00dd:  ldarg.1 
+	IL_00de:  ldstr "debug"
+	IL_00e3:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_00e8:  ldarg.0 
+	IL_00e9:  ldarg.1 
+	IL_00ea:  ldstr "define"
+	IL_00ef:  ldstr "DEBUG"
+	IL_00f4:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_00f9:  ldarg.0 
+	IL_00fa:  ldarg.1 
+	IL_00fb:  ldstr "define"
+	IL_0100:  ldstr "TRACE"
+	IL_0105:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_010a:  br IL_0161
+
+	IL_010f:  ldarg.0 
+	IL_0110:  ldarg.1 
+	IL_0111:  ldstr "debug"
+	IL_0116:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_011b:  br IL_0161
+
+	IL_0120:  ldarg.0 
+	IL_0121:  ldarg.1 
+	IL_0122:  ldstr "debug"
+	IL_0127:  ldstr "pdbonly"
+	IL_012c:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0131:  br IL_0161
+
+	IL_0136:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_013b:  ldstr "NA2011"
+	IL_0140:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0145:  ldarg.0 
+	IL_0146:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VjcTask::get_DebugOutput()
+	IL_014b:  box NAnt.DotNet.Types.DebugOutput
+	IL_0150:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0155:  ldarg.0 
+	IL_0156:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_015b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0160:  throw 
+	IL_0161:  ldarg.0 
+	IL_0162:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_WarningLevel()
+	IL_0167:  brfalse IL_0180
+
+	IL_016c:  nop 
+	IL_016d:  ldarg.0 
+	IL_016e:  ldarg.1 
+	IL_016f:  ldstr "warn"
+	IL_0174:  ldarg.0 
+	IL_0175:  call instance string class NAnt.DotNet.Tasks.VjcTask::get_WarningLevel()
+	IL_017a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_017f:  nop 
+	IL_0180:  ldarg.0 
+	IL_0181:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_0186:  brfalse IL_01a4
+
+	IL_018b:  nop 
+	IL_018c:  ldarg.0 
+	IL_018d:  ldarg.1 
+	IL_018e:  ldstr "win32res"
+	IL_0193:  ldarg.0 
+	IL_0194:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_0199:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_019e:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01a3:  nop 
+	IL_01a4:  ret 
+    } // end of method VjcTask::WriteOptions
+
+    // method line 381
+    .method public virtual hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0x95e4
+	// 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 VjcTask::get_Extension
+
+    // method line 382
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x9600
+	// 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.VjcTask::_classNameRegex
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VjcTask::get_ClassNameRegex
+
+    // method line 383
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x961c
+	// 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.VjcTask::_namespaceRegex
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VjcTask::get_NamespaceRegex
+
+    // method line 384
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsPackageReferences ()  cil managed 
+    {
+        // Method begins at RVA 0x9638
+	// 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 VjcTask::get_SupportsPackageReferences
+
+    // method line 385
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsPackageReferences (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x964e
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method VjcTask::set_SupportsPackageReferences
+
+    // method line 386
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9651
+	// 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.VjcTask::_classNameRegex
+	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|package\\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.VjcTask::_namespaceRegex
+	IL_001e:  ret 
+    } // end of method VjcTask::.cctor
+
+	.property instance string BaseAddress ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_BaseAddress () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::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.VjcTask::get_DebugOutput () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value') 
+	}
+	.property instance bool Debug ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.VjcTask::get_Debug () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Debug (bool 'value') 
+	}
+	.property instance bool SecureScoping ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 73 65 63 75 72 65 73 63 6F 70 69 6E 67   // ...securescoping
+		00 00                                           ) // ..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.VjcTask::get_SecureScoping () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_SecureScoping (bool 'value') 
+	}
+	.property instance string X ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 01 78 00 00 ) // ...x..
+
+		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_X () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_X (string 'value') 
+	}
+	.property instance string LibPath ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6C 69 62 70 61 74 68 00 00 ) // ...libpath..
+
+		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_LibPath () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_LibPath (string 'value') 
+	}
+	.property instance string Jcpa ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6A 63 70 61 00 00 ) // ...jcpa..
+
+		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_Jcpa () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Jcpa (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.VjcTask::get_Codepage () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Codepage (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.VjcTask::get_WarningLevel () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_WarningLevel (string 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
+	{
+		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.VjcTask::get_WarningAsError () 
+	}
+	.property instance class NAnt.DotNet.Types.PackageCollection Packages ()
+	{
+		.get instance default class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.VjcTask::get_Packages () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Packages (class NAnt.DotNet.Types.PackageCollection 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.AssemblyFileSet Modules ()
+	{
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.VjcTask::get_Modules () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+	.property instance string Extension ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.VjcTask::get_Extension () 
+	}
+	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
+	{
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VjcTask::get_ClassNameRegex () 
+	}
+	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
+	{
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VjcTask::get_NamespaceRegex () 
+	}
+	.property instance bool SupportsPackageReferences ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.VjcTask::get_SupportsPackageReferences () 
+		.set instance default void NAnt.DotNet.Tasks.VjcTask::set_SupportsPackageReferences (bool 'value') 
+	}
+  } // end of class NAnt.DotNet.Tasks.VjcTask
+}
+
+.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 387
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9671
+	// 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 388
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
+    {
+        // Method begins at RVA 0x969c
+	// 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 string NAnt.DotNet.Tasks.AssemblyLinkerTask::_fileVersion
+	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 AssemblyLinkerTask::get_FileVersion
+    } // end of method NDocTask::get_Assemblies
 
-    // method line 343
+    // method line 389
     .method public hidebysig specialname 
-           instance default void set_FileVersion (string 'value')  cil managed 
+           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xa1e7
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x96b7
+	// 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.AssemblyLinkerTask::_fileVersion
-	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_FileVersion
+	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
+	IL_0008:  ret 
+    } // end of method NDocTask::set_Assemblies
 
-    // method line 344
+    // method line 390
     .method public hidebysig specialname 
-           instance default string get_Flags ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Summaries ()  cil managed 
     {
-        // Method begins at RVA 0xa1f8
+        // Method begins at RVA 0x96c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_flags
+	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 AssemblyLinkerTask::get_Flags
+    } // end of method NDocTask::get_Summaries
 
-    // method line 345
+    // method line 391
     .method public hidebysig specialname 
-           instance default void set_Flags (string 'value')  cil managed 
+           instance default void set_Summaries (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xa213
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x96df
+	// 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.AssemblyLinkerTask::_flags
-	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_Flags
+	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 346
+    // method line 392
     .method public hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Documenters ()  cil managed 
     {
-        // Method begins at RVA 0xa224
+        // Method begins at RVA 0x96ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [NAnt.Core]NAnt.Core.Types.RawXml	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_keyContainer
+	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 AssemblyLinkerTask::get_KeyContainer
+    } // end of method NDocTask::get_Documenters
 
-    // method line 347
+    // method line 393
     .method public hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
+           instance default void set_Documenters (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
     {
-        // Method begins at RVA 0xa23f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x9707
+	// 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.AssemblyLinkerTask::_keyContainer
-	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_KeyContainer
+	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 348
+    // method line 394
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.DirSet get_ReferencePaths ()  cil managed 
     {
-        // Method begins at RVA 0xa250
+        // Method begins at RVA 0x9714
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class [NAnt.Core]NAnt.Core.Types.DirSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::_keyfile
+	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 AssemblyLinkerTask::get_KeyFile
+    } // end of method NDocTask::get_ReferencePaths
 
-    // method line 349
+    // method line 395
     .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_ReferencePaths (class [NAnt.Core]NAnt.Core.Types.DirSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xa26b
+        // Method begins at RVA 0x972f
 	// 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.AssemblyLinkerTask::_keyfile
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_KeyFile
+    } // end of method NDocTask::set_ReferencePaths
 
-    // method line 350
+    // method line 396
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x973c
+	// 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 397
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x9788
+    } // end of method NDocTask::ExecuteTask
+
+    // method line 398
+    .method private hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x9e3c
+	// 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 399
+    .method private hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x9e77
+	// 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 400
+    .method private hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x9ea0
+    } // end of method NDocTask::<NULL METHOD SIGNATURE>
+
+    // method line 401
+    .method private hidebysig 
+           instance default void ExpandPropertiesInNodes (class [System.Xml]System.Xml.XmlNodeList nodes)  cil managed 
+    {
+        // Method begins at RVA 0x9fb8
+	// 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 402
+    .method private hidebysig 
+           instance default void SetHtmlHelpCompiler (object sender, string hhcexe)  cil managed 
+    {
+        // Method begins at RVA 0xa0f0
+	// 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 403
+    .method private hidebysig 
+           instance default string ResolveHhcExe ()  cil managed 
+    {
+        // Method begins at RVA 0xa1a0
+	// 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 CscTask
+  	extends NAnt.DotNet.Tasks.CompilerBase
+  {
+    .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  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 404
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa252
+	// 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.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
+
+    // method line 405
     .method public hidebysig specialname 
-           instance default string get_MainMethod ()  cil managed 
+           instance default string get_BaseAddress ()  cil managed 
     {
-        // Method begins at RVA 0xa278
+        // Method begins at RVA 0xa268
 	// 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.AssemblyLinkerTask::_mainMethod
+	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 AssemblyLinkerTask::get_MainMethod
+    } // end of method CscTask::get_BaseAddress
 
-    // method line 351
+    // method line 406
     .method public hidebysig specialname 
-           instance default void set_MainMethod (string 'value')  cil managed 
+           instance default void set_BaseAddress (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa293
+        // Method begins at RVA 0xa283
 	// 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.AssemblyLinkerTask::_mainMethod
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_baseAddress
 	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_MainMethod
+    } // end of method CscTask::set_BaseAddress
 
-    // method line 352
+    // method line 407
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
+           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
     {
-        // Method begins at RVA 0xa2a4
+        // Method begins at RVA 0xa294
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ModuleSet	V_0)
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::_modules
+	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 AssemblyLinkerTask::get_ModuleSet
+    } // end of method CscTask::get_DebugOutput
 
-    // method line 353
+    // method line 408
     .method public hidebysig specialname 
-           instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
+           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
     {
-        // Method begins at RVA 0xa2bf
+        // Method begins at RVA 0xa2af
 	// 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.Tasks.AssemblyLinkerTask::_modules
+	IL_0003:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_ModuleSet
+    } // end of method CscTask::set_DebugOutput
 
-    // method line 354
+    // method line 409
+    .method public virtual hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
+    {
+        // Method begins at RVA 0xa2bc
+	// 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.CscTask::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 CscTask::get_Debug
+
+    // method line 410
+    .method public virtual hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa2dd
+	// 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 411
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
     {
-        // Method begins at RVA 0xa2cc
+        // Method begins at RVA 0xa2e8
 	// 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.AssemblyLinkerTask::_outputFile
+	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 AssemblyLinkerTask::get_OutputFile
+    } // end of method CscTask::get_DocFile
 
-    // method line 355
+    // method line 412
     .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xa2e7
+        // Method begins at RVA 0xa303
 	// 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.AssemblyLinkerTask::_outputFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::_docFile
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_OutputFile
+    } // end of method CscTask::set_DocFile
 
-    // method line 356
+    // method line 413
     .method public hidebysig specialname 
-           instance default string get_OutputTarget ()  cil managed 
+           instance default int32 get_FileAlign ()  cil managed 
     {
-        // Method begins at RVA 0xa2f4
+        // Method begins at RVA 0xa310
 	// 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.DotNet.Tasks.AssemblyLinkerTask::_target
+	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 AssemblyLinkerTask::get_OutputTarget
+    } // end of method CscTask::get_FileAlign
 
-    // method line 357
+    // method line 414
     .method public hidebysig specialname 
-           instance default void set_OutputTarget (string 'value')  cil managed 
+           instance default void set_FileAlign (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0xa30f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xa32b
+	// 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.AssemblyLinkerTask::_target
-	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_OutputTarget
+	IL_0003:  stfld int32 NAnt.DotNet.Tasks.CscTask::_fileAlign
+	IL_0008:  ret 
+    } // end of method CscTask::set_FileAlign
 
-    // method line 358
+    // method line 415
     .method public hidebysig specialname 
-           instance default string get_Product ()  cil managed 
+           instance default bool get_NoStdLib ()  cil managed 
     {
-        // Method begins at RVA 0xa320
+        // Method begins at RVA 0xa338
 	// 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.AssemblyLinkerTask::_product
+	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 AssemblyLinkerTask::get_Product
+    } // end of method CscTask::get_NoStdLib
 
-    // method line 359
+    // method line 416
     .method public hidebysig specialname 
-           instance default void set_Product (string 'value')  cil managed 
+           instance default void set_NoStdLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa33b
+        // Method begins at RVA 0xa353
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_product
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_nostdlib
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Product
+    } // end of method CscTask::set_NoStdLib
 
-    // method line 360
+    // method line 417
     .method public hidebysig specialname 
-           instance default string get_ProductVersion ()  cil managed 
+           instance default bool get_NoConfig ()  cil managed 
     {
-        // Method begins at RVA 0xa348
+        // Method begins at RVA 0xa360
 	// 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.AssemblyLinkerTask::_productVersion
+	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 AssemblyLinkerTask::get_ProductVersion
+    } // end of method CscTask::get_NoConfig
 
-    // method line 361
+    // method line 418
     .method public hidebysig specialname 
-           instance default void set_ProductVersion (string 'value')  cil managed 
+           instance default void set_NoConfig (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa363
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xa37b
+	// 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.AssemblyLinkerTask::_productVersion
-	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_ProductVersion
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_noconfig
+	IL_0008:  ret 
+    } // end of method CscTask::set_NoConfig
 
-    // method line 362
+    // method line 419
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Resources ()  cil managed 
+           instance default bool get_Checked ()  cil managed 
     {
-        // Method begins at RVA 0xa374
+        // Method begins at RVA 0xa388
 	// 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.AssemblyLinkerTask::_resources
+	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 AssemblyLinkerTask::get_Resources
+    } // end of method CscTask::get_Checked
 
-    // method line 363
+    // method line 420
     .method public hidebysig specialname 
-           instance default void set_Resources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Checked (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa38f
+        // Method begins at RVA 0xa3a3
 	// 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.AssemblyLinkerTask::_resources
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_checked
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Resources
+    } // end of method CscTask::set_Checked
 
-    // method line 364
+    // method line 421
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.EmbeddedResourceCollection get_EmbeddedResources ()  cil managed 
+           instance default bool get_Unsafe ()  cil managed 
     {
-        // Method begins at RVA 0xa39c
+        // Method begins at RVA 0xa3b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.EmbeddedResourceCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::_embeddedResources
+	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 AssemblyLinkerTask::get_EmbeddedResources
+    } // end of method CscTask::get_Unsafe
 
-    // method line 365
+    // method line 422
     .method public hidebysig specialname 
-           instance default void set_EmbeddedResources (class NAnt.DotNet.Types.EmbeddedResourceCollection 'value')  cil managed 
+           instance default void set_Unsafe (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa3b7
+        // Method begins at RVA 0xa3cb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::_embeddedResources
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_unsafe
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_EmbeddedResources
+    } // end of method CscTask::set_Unsafe
 
-    // method line 366
+    // method line 423
     .method public hidebysig specialname 
-           instance default bool get_SupportsTemplate ()  cil managed 
+           instance default string get_LangVersion ()  cil managed 
     {
-        // Method begins at RVA 0xa3c4
+        // Method begins at RVA 0xa3d8
 	// 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.AssemblyLinkerTask::_supportsTemplate
+	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 AssemblyLinkerTask::get_SupportsTemplate
+    } // end of method CscTask::get_LangVersion
 
-    // method line 367
+    // method line 424
     .method public hidebysig specialname 
-           instance default void set_SupportsTemplate (bool 'value')  cil managed 
+           instance default void set_LangVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa3df
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xa3f3
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.AssemblyLinkerTask::_supportsTemplate
-	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_SupportsTemplate
+	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 368
+    // method line 425
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_TemplateFile ()  cil managed 
+           instance default bool get_Optimize ()  cil managed 
     {
-        // Method begins at RVA 0xa3ec
+        // Method begins at RVA 0xa404
 	// 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.AssemblyLinkerTask::_templateFile
+	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 AssemblyLinkerTask::get_TemplateFile
+    } // end of method CscTask::get_Optimize
 
-    // method line 369
+    // method line 426
     .method public hidebysig specialname 
-           instance default void set_TemplateFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Optimize (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa407
+        // Method begins at RVA 0xa41f
 	// 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.AssemblyLinkerTask::_templateFile
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_optimize
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_TemplateFile
+    } // end of method CscTask::set_Optimize
 
-    // method line 370
+    // method line 427
     .method public hidebysig specialname 
-           instance default string get_Title ()  cil managed 
+           instance default string get_Platform ()  cil managed 
     {
-        // Method begins at RVA 0xa414
+        // Method begins at RVA 0xa42c
 	// 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.AssemblyLinkerTask::_title
+	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 AssemblyLinkerTask::get_Title
+    } // end of method CscTask::get_Platform
 
-    // method line 371
+    // method line 428
     .method public hidebysig specialname 
-           instance default void set_Title (string 'value')  cil managed 
+           instance default void set_Platform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa42f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xa447
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_title
-	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Title
+	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 372
+    // method line 429
     .method public hidebysig specialname 
-           instance default string get_Trademark ()  cil managed 
+           instance default string get_WarningLevel ()  cil managed 
     {
-        // Method begins at RVA 0xa43c
+        // Method begins at RVA 0xa458
 	// 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.AssemblyLinkerTask::_trademark
+	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 AssemblyLinkerTask::get_Trademark
+    } // end of method CscTask::get_WarningLevel
 
-    // method line 373
+    // method line 430
     .method public hidebysig specialname 
-           instance default void set_Trademark (string 'value')  cil managed 
+           instance default void set_WarningLevel (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa457
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xa473
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_trademark
-	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Trademark
+	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 374
+    // method line 431
     .method public hidebysig specialname 
-           instance default string get_Version ()  cil managed 
+           instance default string get_Codepage ()  cil managed 
     {
-        // Method begins at RVA 0xa464
+        // Method begins at RVA 0xa484
 	// 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.AssemblyLinkerTask::_version
+	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 AssemblyLinkerTask::get_Version
+    } // end of method CscTask::get_Codepage
 
-    // method line 375
+    // method line 432
     .method public hidebysig specialname 
-           instance default void set_Version (string 'value')  cil managed 
+           instance default void set_Codepage (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa47f
+        // Method begins at RVA 0xa49f
 	// 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.AssemblyLinkerTask::_version
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_codepage
 	IL_000d:  ret 
-    } // end of method AssemblyLinkerTask::set_Version
+    } // end of method CscTask::set_Codepage
 
-    // method line 376
+    // method line 433
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Win32Icon ()  cil managed 
+           instance default bool get_SupportsDocGeneration ()  cil managed 
     {
-        // Method begins at RVA 0xa490
+        // Method begins at RVA 0xa4b0
 	// 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.AssemblyLinkerTask::_win32Icon
+	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 AssemblyLinkerTask::get_Win32Icon
+    } // end of method CscTask::get_SupportsDocGeneration
 
-    // method line 377
+    // method line 434
     .method public hidebysig specialname 
-           instance default void set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa4ab
+        // Method begins at RVA 0xa4cb
 	// 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.AssemblyLinkerTask::_win32Icon
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Win32Icon
+    } // end of method CscTask::set_SupportsDocGeneration
 
-    // method line 378
+    // method line 435
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Win32Res ()  cil managed 
+           instance default bool get_SupportsPlatform ()  cil managed 
     {
-        // Method begins at RVA 0xa4b8
+        // Method begins at RVA 0xa4d8
 	// 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.AssemblyLinkerTask::_win32Res
+	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 AssemblyLinkerTask::get_Win32Res
+    } // end of method CscTask::get_SupportsPlatform
 
-    // method line 379
+    // method line 436
     .method public hidebysig specialname 
-           instance default void set_Win32Res (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_SupportsPlatform (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa4d3
+        // Method begins at RVA 0xa4f3
 	// 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.AssemblyLinkerTask::_win32Res
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsPlatform
 	IL_0008:  ret 
-    } // end of method AssemblyLinkerTask::set_Win32Res
+    } // end of method CscTask::set_SupportsPlatform
 
-    // method line 380
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    // method line 437
+    .method public hidebysig specialname 
+           instance default bool get_SupportsLangVersion ()  cil managed 
     {
-        // Method begins at RVA 0xa4e0
-	// Code size 50 (0x32)
-	.maxstack 3
+        // Method begins at RVA 0xa500
+	// 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.AssemblyLinkerTask::_responseFileName
-	IL_0007:  brfalse IL_0028
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "@\""
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	IL_0018:  ldstr "\""
-	IL_001d:  call string string::Concat(string, string, string)
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_0030
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsLangVersion
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0028:  nop 
-	IL_0029:  ldnull 
-	IL_002a:  stloc.0 
-	IL_002b:  br IL_0030
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CscTask::get_SupportsLangVersion
 
-	IL_0030:  ldloc.0 
-	IL_0031:  ret 
-    } // end of method AssemblyLinkerTask::get_ProgramArguments
+    // method line 438
+    .method public hidebysig specialname 
+           instance default void set_SupportsLangVersion (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa51b
+	// 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 381
+    // method line 439
     .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0xa520
-	// Code size 1471 (0x5bf)
-	.maxstack 8
+        // Method begins at RVA 0xa528
+	// Code size 812 (0x32c)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.IO.StreamWriter	V_0,
-		class NAnt.DotNet.Types.Module	V_1,
-		class NAnt.DotNet.Types.ModuleEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		valuetype NAnt.DotNet.Types.DelaySign	V_4,
-		string	V_5,
-		class [System]System.Collections.Specialized.StringEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class NAnt.DotNet.Types.EmbeddedResource	V_8,
-		class NAnt.DotNet.Types.EmbeddedResourceEnumerator	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		class [mscorlib]System.IO.StreamReader	V_11)
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
+		int32	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
-	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:  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_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
-	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 class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
-	IL_0034:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Types.ModuleSet::get_Dir()
-	IL_0039:  brtrue IL_005b
+	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_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_004b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0050:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0055:  callvirt instance void class NAnt.DotNet.Types.ModuleSet::set_Dir(class [mscorlib]System.IO.DirectoryInfo)
-	IL_005a:  nop 
-	IL_005b:  ldarg.0 
-	IL_005c:  callvirt instance bool class NAnt.DotNet.Tasks.AssemblyLinkerTask::NeedsCompiling()
-	IL_0061:  brfalse IL_05be
+	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_0066:  nop 
-	IL_0067:  ldarg.0 
-	IL_0068:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	IL_006d:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	IL_0072:  ldarg.0 
-	IL_0073:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	IL_0078:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
-	IL_007d:  stloc.0 
-	.try { // 3
-	  IL_007e:  nop 
-	  IL_007f:  ldarg.0 
-	  IL_0080:  ldc.i4 3000
-	  IL_0085:  ldstr "String_CompilingFiles"
-	  IL_008a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_008f:  ldc.i4.2 
-	  IL_0090:  newarr [mscorlib]System.Object
-	  IL_0095:  dup 
-	  IL_0096:  ldc.i4.0 
-	  IL_0097:  ldarg.0 
-	  IL_0098:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
-	  IL_009d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_00a2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	  IL_00a7:  ldarg.0 
-	  IL_00a8:  call instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
-	  IL_00ad:  callvirt instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
-	  IL_00b2:  add 
-	  IL_00b3:  ldarg.0 
-	  IL_00b4:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
-	  IL_00b9:  callvirt instance class NAnt.DotNet.Types.ModuleCollection class NAnt.DotNet.Types.ModuleSet::get_Modules()
-	  IL_00be:  callvirt instance int32 class NAnt.DotNet.Types.ModuleCollection::get_Count()
-	  IL_00c3:  add 
-	  IL_00c4:  box [mscorlib]System.Int32
-	  IL_00c9:  stelem.ref 
-	  IL_00ca:  dup 
-	  IL_00cb:  ldc.i4.1 
-	  IL_00cc:  ldarg.0 
-	  IL_00cd:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	  IL_00d2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00d7:  stelem.ref 
-	  IL_00d8:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_00dd:  nop 
-	  IL_00de:  ldarg.0 
-	  IL_00df:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
-	  IL_00e4:  callvirt instance class NAnt.DotNet.Types.ModuleCollection class NAnt.DotNet.Types.ModuleSet::get_Modules()
-	  IL_00e9:  callvirt instance class NAnt.DotNet.Types.ModuleEnumerator class NAnt.DotNet.Types.ModuleCollection::GetEnumerator()
-	  IL_00ee:  stloc.2 
-	  .try { // 0
-	    IL_00ef:  br IL_010e
+	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_00f4:  ldloc.2 
-	    IL_00f5:  callvirt instance class NAnt.DotNet.Types.Module class NAnt.DotNet.Types.ModuleEnumerator::get_Current()
-	    IL_00fa:  stloc.1 
-	    IL_00fb:  nop 
-	    IL_00fc:  ldloc.0 
-	    IL_00fd:  ldstr "\"{0}\""
-	    IL_0102:  ldloc.1 
-	    IL_0103:  callvirt instance string object::ToString()
-	    IL_0108:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	    IL_010d:  nop 
-	    IL_010e:  ldloc.2 
-	    IL_010f:  callvirt instance bool class NAnt.DotNet.Types.ModuleEnumerator::MoveNext()
-	    IL_0114:  brtrue IL_00f4
+	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_0119:  leave IL_0132
+	IL_009d:  nop 
+	IL_009e:  ldarg.0 
+	IL_009f:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsLangVersion()
+	IL_00a4:  brfalse IL_00c2
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_011e:  ldloc.2 
-	    IL_011f:  isinst [mscorlib]System.IDisposable
-	    IL_0124:  dup 
-	    IL_0125:  stloc.3 
-	    IL_0126:  brfalse IL_0131
+	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_012b:  ldloc.3 
-	    IL_012c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0131:  endfinally 
-	  } // end handler 0
-	  IL_0132:  ldloc.0 
-	  IL_0133:  ldstr "/target:\"{0}\""
-	  IL_0138:  ldarg.0 
-	  IL_0139:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputTarget()
-	  IL_013e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0143:  ldloc.0 
-	  IL_0144:  ldstr "/out:\"{0}\""
-	  IL_0149:  ldarg.0 
-	  IL_014a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	  IL_014f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0154:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0159:  ldarg.0 
-	  IL_015a:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_AlgorithmID()
-	  IL_015f:  brfalse IL_0177
+	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_0164:  nop 
-	  IL_0165:  ldloc.0 
-	  IL_0166:  ldstr "/algid:\"{0}\""
-	  IL_016b:  ldarg.0 
-	  IL_016c:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_AlgorithmID()
-	  IL_0171:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0176:  nop 
-	  IL_0177:  ldarg.0 
-	  IL_0178:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Company()
-	  IL_017d:  brfalse IL_0195
-
-	  IL_0182:  nop 
-	  IL_0183:  ldloc.0 
-	  IL_0184:  ldstr "/company:\"{0}\""
-	  IL_0189:  ldarg.0 
-	  IL_018a:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Company()
-	  IL_018f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0194:  nop 
-	  IL_0195:  ldarg.0 
-	  IL_0196:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Configuration()
-	  IL_019b:  brfalse IL_01b3
-
-	  IL_01a0:  nop 
-	  IL_01a1:  ldloc.0 
-	  IL_01a2:  ldstr "/configuration:\"{0}\""
-	  IL_01a7:  ldarg.0 
-	  IL_01a8:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Configuration()
-	  IL_01ad:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_01b2:  nop 
-	  IL_01b3:  ldarg.0 
-	  IL_01b4:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Copyright()
-	  IL_01b9:  brfalse IL_01d1
-
-	  IL_01be:  nop 
-	  IL_01bf:  ldloc.0 
-	  IL_01c0:  ldstr "/copyright:\"{0}\""
-	  IL_01c5:  ldarg.0 
-	  IL_01c6:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Copyright()
-	  IL_01cb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_01d0:  nop 
-	  IL_01d1:  ldarg.0 
-	  IL_01d2:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture()
-	  IL_01d7:  brfalse IL_01ef
-
-	  IL_01dc:  nop 
-	  IL_01dd:  ldloc.0 
-	  IL_01de:  ldstr "/culture:\"{0}\""
-	  IL_01e3:  ldarg.0 
-	  IL_01e4:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture()
-	  IL_01e9:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_01ee:  nop 
-	  IL_01ef:  ldarg.0 
-	  IL_01f0:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_DelaySign()
-	  IL_01f5:  stloc.s 4
-	  IL_01f7:  ldloc.s 4
-	  IL_01f9:  switch (
-	    IL_020f,
-	    IL_0224,
-	    IL_0214)
-	  IL_020a:  br IL_0234
-
-	  IL_020f:  leave IL_025a
-
-	  IL_0214:  ldloc.0 
-	  IL_0215:  ldstr "/delaysign+"
-	  IL_021a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_021f:  leave IL_025a
-
-	  IL_0224:  ldloc.0 
-	  IL_0225:  ldstr "/delaysign-"
-	  IL_022a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_022f:  leave IL_025a
-
-	  IL_0234:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0239:  ldstr "Value {0} is not supported for \"delaysign\"."
-	  IL_023e:  ldarg.0 
-	  IL_023f:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_DelaySign()
-	  IL_0244:  box NAnt.DotNet.Types.DelaySign
-	  IL_0249:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_024e:  ldarg.0 
-	  IL_024f:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	  IL_0254:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_0259:  throw 
-	  IL_025a:  ldarg.0 
-	  IL_025b:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Description()
-	  IL_0260:  brfalse IL_0278
-
-	  IL_0265:  nop 
-	  IL_0266:  ldloc.0 
-	  IL_0267:  ldstr "/description:\"{0}\""
-	  IL_026c:  ldarg.0 
-	  IL_026d:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Description()
-	  IL_0272:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0277:  nop 
-	  IL_0278:  ldarg.0 
-	  IL_0279:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
-	  IL_027e:  brfalse IL_029b
-
-	  IL_0283:  nop 
-	  IL_0284:  ldloc.0 
-	  IL_0285:  ldstr "/evidence:\"{0}\""
-	  IL_028a:  ldarg.0 
-	  IL_028b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
-	  IL_0290:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0295:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_029a:  nop 
-	  IL_029b:  ldarg.0 
-	  IL_029c:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_FileVersion()
-	  IL_02a1:  brfalse IL_02b9
-
-	  IL_02a6:  nop 
-	  IL_02a7:  ldloc.0 
-	  IL_02a8:  ldstr "/fileversion:\"{0}\""
-	  IL_02ad:  ldarg.0 
-	  IL_02ae:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_FileVersion()
-	  IL_02b3:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_02b8:  nop 
-	  IL_02b9:  ldarg.0 
-	  IL_02ba:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Flags()
-	  IL_02bf:  brfalse IL_02d7
-
-	  IL_02c4:  nop 
-	  IL_02c5:  ldloc.0 
-	  IL_02c6:  ldstr "/flags:\"{0}\""
-	  IL_02cb:  ldarg.0 
-	  IL_02cc:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Flags()
-	  IL_02d1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_02d6:  nop 
-	  IL_02d7:  ldarg.0 
-	  IL_02d8:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_MainMethod()
-	  IL_02dd:  brfalse IL_02f5
-
-	  IL_02e2:  nop 
-	  IL_02e3:  ldloc.0 
-	  IL_02e4:  ldstr "/main:\"{0}\""
-	  IL_02e9:  ldarg.0 
-	  IL_02ea:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_MainMethod()
-	  IL_02ef:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_02f4:  nop 
-	  IL_02f5:  ldarg.0 
-	  IL_02f6:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyContainer()
-	  IL_02fb:  brfalse IL_0313
-
-	  IL_0300:  nop 
-	  IL_0301:  ldloc.0 
-	  IL_0302:  ldstr "/keyname:\"{0}\""
-	  IL_0307:  ldarg.0 
-	  IL_0308:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyContainer()
-	  IL_030d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0312:  nop 
-	  IL_0313:  ldarg.0 
-	  IL_0314:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Product()
-	  IL_0319:  brfalse IL_0331
-
-	  IL_031e:  nop 
-	  IL_031f:  ldloc.0 
-	  IL_0320:  ldstr "/product:\"{0}\""
-	  IL_0325:  ldarg.0 
-	  IL_0326:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Product()
-	  IL_032b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0330:  nop 
-	  IL_0331:  ldarg.0 
-	  IL_0332:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProductVersion()
-	  IL_0337:  brfalse IL_034f
-
-	  IL_033c:  nop 
-	  IL_033d:  ldloc.0 
-	  IL_033e:  ldstr "/productversion:\"{0}\""
-	  IL_0343:  ldarg.0 
-	  IL_0344:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProductVersion()
-	  IL_0349:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_034e:  nop 
-	  IL_034f:  ldarg.0 
-	  IL_0350:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
-	  IL_0355:  brfalse IL_03b4
-
-	  IL_035a:  nop 
-	  IL_035b:  ldarg.0 
-	  IL_035c:  call instance bool class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_SupportsTemplate()
-	  IL_0361:  brfalse IL_0383
-
-	  IL_0366:  nop 
-	  IL_0367:  ldloc.0 
-	  IL_0368:  ldstr "/template:\"{0}\""
-	  IL_036d:  ldarg.0 
-	  IL_036e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
-	  IL_0373:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0378:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_037d:  nop 
-	  IL_037e:  br IL_03b3
+	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_0383:  nop 
-	  IL_0384:  ldarg.0 
-	  IL_0385:  ldc.i4 4000
-	  IL_038a:  ldstr "String_LinkerDoesNotSupportTemplateAssembly"
-	  IL_038f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0394:  ldc.i4.1 
-	  IL_0395:  newarr [mscorlib]System.Object
-	  IL_039a:  dup 
-	  IL_039b:  ldc.i4.0 
-	  IL_039c:  ldarg.0 
-	  IL_039d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_03a2:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	  IL_03a7:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	  IL_03ac:  stelem.ref 
-	  IL_03ad:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_03b2:  nop 
-	  IL_03b3:  nop 
-	  IL_03b4:  ldarg.0 
-	  IL_03b5:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Title()
-	  IL_03ba:  brfalse IL_03d2
+	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_03bf:  nop 
-	  IL_03c0:  ldloc.0 
-	  IL_03c1:  ldstr "/title:\"{0}\""
-	  IL_03c6:  ldarg.0 
-	  IL_03c7:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Title()
-	  IL_03cc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_03d1:  nop 
-	  IL_03d2:  ldarg.0 
-	  IL_03d3:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Trademark()
-	  IL_03d8:  brfalse IL_03f0
+	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_03dd:  nop 
-	  IL_03de:  ldloc.0 
-	  IL_03df:  ldstr "/trademark:\"{0}\""
-	  IL_03e4:  ldarg.0 
-	  IL_03e5:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Trademark()
-	  IL_03ea:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_03ef:  nop 
-	  IL_03f0:  ldarg.0 
-	  IL_03f1:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
-	  IL_03f6:  brfalse IL_0413
+	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_03fb:  nop 
-	  IL_03fc:  ldloc.0 
-	  IL_03fd:  ldstr "/keyfile:\"{0}\""
-	  IL_0402:  ldarg.0 
-	  IL_0403:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
-	  IL_0408:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_040d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0412:  nop 
-	  IL_0413:  ldarg.0 
-	  IL_0414:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Version()
-	  IL_0419:  brfalse IL_0431
+	IL_019a:  br IL_0224
 
-	  IL_041e:  nop 
-	  IL_041f:  ldloc.0 
-	  IL_0420:  ldstr "/version:\"{0}\""
-	  IL_0425:  ldarg.0 
-	  IL_0426:  call instance string class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Version()
-	  IL_042b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0430:  nop 
-	  IL_0431:  ldarg.0 
-	  IL_0432:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
-	  IL_0437:  brfalse IL_0454
+	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_043c:  nop 
-	  IL_043d:  ldloc.0 
-	  IL_043e:  ldstr "/win32icon:\"{0}\""
-	  IL_0443:  ldarg.0 
-	  IL_0444:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
-	  IL_0449:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_044e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0453:  nop 
-	  IL_0454:  ldarg.0 
-	  IL_0455:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
-	  IL_045a:  brfalse IL_0477
+	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_045f:  nop 
-	  IL_0460:  ldloc.0 
-	  IL_0461:  ldstr "/win32res:\"{0}\""
-	  IL_0466:  ldarg.0 
-	  IL_0467:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
-	  IL_046c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0471:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0476:  nop 
-	  IL_0477:  nop 
-	  IL_0478:  ldarg.0 
-	  IL_0479:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
-	  IL_047e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_0483:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0488:  stloc.s 6
-	  .try { // 1
-	    IL_048a:  br IL_04a7
+	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_048f:  ldloc.s 6
-	    IL_0491:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0496:  stloc.s 5
-	    IL_0498:  nop 
-	    IL_0499:  ldloc.0 
-	    IL_049a:  ldstr "/embed:\"{0}\""
-	    IL_049f:  ldloc.s 5
-	    IL_04a1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	    IL_04a6:  nop 
-	    IL_04a7:  ldloc.s 6
-	    IL_04a9:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_04ae:  brtrue IL_048f
+	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_04b3:  leave IL_04cf
+	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
 
-	  } // end .try 1
-	  finally  { // 1
-	    IL_04b8:  ldloc.s 6
-	    IL_04ba:  isinst [mscorlib]System.IDisposable
-	    IL_04bf:  dup 
-	    IL_04c0:  stloc.s 7
-	    IL_04c2:  brfalse IL_04ce
+	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_04c7:  ldloc.s 7
-	    IL_04c9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_04ce:  endfinally 
-	  } // end handler 1
-	  IL_04cf:  nop 
-	  IL_04d0:  ldarg.0 
-	  IL_04d1:  call instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
-	  IL_04d6:  callvirt instance class NAnt.DotNet.Types.EmbeddedResourceEnumerator class NAnt.DotNet.Types.EmbeddedResourceCollection::GetEnumerator()
-	  IL_04db:  stloc.s 9
-	  .try { // 2
-	    IL_04dd:  br IL_0506
+	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_04e2:  ldloc.s 9
-	    IL_04e4:  callvirt instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceEnumerator::get_Current()
-	    IL_04e9:  stloc.s 8
-	    IL_04eb:  nop 
-	    IL_04ec:  ldloc.0 
-	    IL_04ed:  ldstr "/embed:\"{0}\",{1}"
-	    IL_04f2:  ldloc.s 8
-	    IL_04f4:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_File()
-	    IL_04f9:  ldloc.s 8
-	    IL_04fb:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_ManifestResourceName()
-	    IL_0500:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
-	    IL_0505:  nop 
-	    IL_0506:  ldloc.s 9
-	    IL_0508:  callvirt instance bool class NAnt.DotNet.Types.EmbeddedResourceEnumerator::MoveNext()
-	    IL_050d:  brtrue IL_04e2
+	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_0512:  leave IL_052e
+	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
 
-	  } // end .try 2
-	  finally  { // 2
-	    IL_0517:  ldloc.s 9
-	    IL_0519:  isinst [mscorlib]System.IDisposable
-	    IL_051e:  dup 
-	    IL_051f:  stloc.s 10
-	    IL_0521:  brfalse IL_052d
+	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_0526:  ldloc.s 10
-	    IL_0528:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_052d:  endfinally 
-	  } // end handler 2
-	  IL_052e:  ldloc.0 
-	  IL_052f:  ldstr "/nologo"
-	  IL_0534:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0539:  ldloc.0 
-	  IL_053a:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_053f:  ldarg.0 
-	  IL_0540:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_0545:  brfalse IL_0596
+	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_054a:  nop 
-	  IL_054b:  ldarg.0 
-	  IL_054c:  ldc.i4 2000
-	  IL_0551:  ldstr "String_ContentsOf"
-	  IL_0556:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_055b:  ldc.i4.1 
-	  IL_055c:  newarr [mscorlib]System.Object
-	  IL_0561:  dup 
-	  IL_0562:  ldc.i4.0 
-	  IL_0563:  ldarg.0 
-	  IL_0564:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	  IL_0569:  stelem.ref 
-	  IL_056a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_056f:  ldarg.0 
-	  IL_0570:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	  IL_0575:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
-	  IL_057a:  stloc.s 11
-	  IL_057c:  ldarg.0 
-	  IL_057d:  ldc.i4 2000
-	  IL_0582:  ldloc.s 11
-	  IL_0584:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_0589:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_058e:  ldloc.s 11
-	  IL_0590:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_0595:  nop 
-	  IL_0596:  ldarg.0 
-	  IL_0597:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_059c:  nop 
-	  IL_059d:  leave IL_05bd
+	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
 
-	} // end .try 3
-	finally  { // 3
-	  IL_05a2:  nop 
-	  IL_05a3:  ldloc.0 
-	  IL_05a4:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_05a9:  ldarg.0 
-	  IL_05aa:  ldfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	  IL_05af:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_05b4:  ldarg.0 
-	  IL_05b5:  ldnull 
-	  IL_05b6:  stfld string NAnt.DotNet.Tasks.AssemblyLinkerTask::_responseFileName
-	  IL_05bb:  nop 
-	  IL_05bc:  endfinally 
-	} // end handler 3
-	IL_05bd:  nop 
-	IL_05be:  ret 
-    } // end of method AssemblyLinkerTask::ExecuteTask
+	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 382
-    .method family virtual hidebysig newslot 
+    // method line 440
+    .method family virtual hidebysig 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0xab50
-	// Code size 1229 (0x4cd)
+        // Method begins at RVA 0xa860
+	// Code size 118 (0x76)
 	.maxstack 7
 	.locals init (
-		bool	V_0,
-		string	V_1,
-		class NAnt.DotNet.Types.Module	V_2,
-		class NAnt.DotNet.Types.ModuleEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class NAnt.DotNet.Types.EmbeddedResource	V_5,
-		class NAnt.DotNet.Types.EmbeddedResourceEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [System]System.Collections.Specialized.StringCollection	V_8,
-		class [NAnt.Core]NAnt.Core.Types.Argument	V_9,
-		class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator	V_10,
-		string	V_11,
-		string	V_12,
-		int32	V_13,
-		bool	V_14,
-		class [mscorlib]System.IDisposable	V_15)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	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.AssemblyLinkerTask::get_OutputFile()
-	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_04cb
-
-	IL_0042:  ldnull 
-	IL_0043:  stloc.1 
-	IL_0044:  nop 
-	IL_0045:  ldarg.0 
-	IL_0046:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet()
-	IL_004b:  callvirt instance class NAnt.DotNet.Types.ModuleCollection class NAnt.DotNet.Types.ModuleSet::get_Modules()
-	IL_0050:  callvirt instance class NAnt.DotNet.Types.ModuleEnumerator class NAnt.DotNet.Types.ModuleCollection::GetEnumerator()
-	IL_0055:  stloc.3 
-	.try { // 0
-	  IL_0056:  br IL_00a8
-
-	  IL_005b:  ldloc.3 
-	  IL_005c:  callvirt instance class NAnt.DotNet.Types.Module class NAnt.DotNet.Types.ModuleEnumerator::get_Current()
-	  IL_0061:  stloc.2 
-	  IL_0062:  nop 
-	  IL_0063:  ldloc.2 
-	  IL_0064:  callvirt instance string class NAnt.DotNet.Types.Module::get_File()
-	  IL_0069:  ldarg.0 
-	  IL_006a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	  IL_006f:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0074:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	  IL_0079:  stloc.1 
-	  IL_007a:  ldloc.1 
-	  IL_007b:  brfalse IL_00a7
-
-	  IL_0080:  nop 
-	  IL_0081:  ldarg.0 
-	  IL_0082:  ldc.i4 2000
-	  IL_0087:  ldstr "String_FileHasBeenUpdated"
-	  IL_008c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0091:  ldc.i4.1 
-	  IL_0092:  newarr [mscorlib]System.Object
-	  IL_0097:  dup 
-	  IL_0098:  ldc.i4.0 
-	  IL_0099:  ldloc.1 
-	  IL_009a:  stelem.ref 
-	  IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_00a0:  ldc.i4.1 
-	  IL_00a1:  stloc.0 
-	  IL_00a2:  leave IL_04cb
-
-	  IL_00a7:  nop 
-	  IL_00a8:  ldloc.3 
-	  IL_00a9:  callvirt instance bool class NAnt.DotNet.Types.ModuleEnumerator::MoveNext()
-	  IL_00ae:  brtrue IL_005b
-
-	  IL_00b3:  leave IL_00ce
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00b8:  ldloc.3 
-	  IL_00b9:  isinst [mscorlib]System.IDisposable
-	  IL_00be:  dup 
-	  IL_00bf:  stloc.s 4
-	  IL_00c1:  brfalse IL_00cd
-
-	  IL_00c6:  ldloc.s 4
-	  IL_00c8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00cd:  endfinally 
-	} // end handler 0
-	IL_00ce:  ldarg.0 
-	IL_00cf:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources()
-	IL_00d4:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00d9:  ldarg.0 
-	IL_00da:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_00df:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_00e4:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_00e9:  stloc.1 
-	IL_00ea:  ldloc.1 
-	IL_00eb:  brfalse IL_0117
-
-	IL_00f0:  nop 
-	IL_00f1:  ldarg.0 
-	IL_00f2:  ldc.i4 2000
-	IL_00f7:  ldstr "String_FileHasBeenUpdated"
-	IL_00fc:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0101:  ldc.i4.1 
-	IL_0102:  newarr [mscorlib]System.Object
-	IL_0107:  dup 
-	IL_0108:  ldc.i4.0 
-	IL_0109:  ldloc.1 
-	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:  ldc.i4.1 
-	IL_0111:  stloc.0 
-	IL_0112:  br IL_04cb
-
-	IL_0117:  ldarg.0 
-	IL_0118:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
-	IL_011d:  brfalse IL_016d
-
-	IL_0122:  nop 
-	IL_0123:  ldarg.0 
-	IL_0124:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile()
-	IL_0129:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_012e:  ldarg.0 
-	IL_012f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_0134:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0139:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_013e:  stloc.1 
-	IL_013f:  ldloc.1 
-	IL_0140:  brfalse IL_016c
-
-	IL_0145:  nop 
-	IL_0146:  ldarg.0 
-	IL_0147:  ldc.i4 2000
-	IL_014c:  ldstr "String_FileHasBeenUpdated"
-	IL_0151:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0156:  ldc.i4.1 
-	IL_0157:  newarr [mscorlib]System.Object
-	IL_015c:  dup 
-	IL_015d:  ldc.i4.0 
-	IL_015e:  ldloc.1 
-	IL_015f:  stelem.ref 
-	IL_0160:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0165:  ldc.i4.1 
-	IL_0166:  stloc.0 
-	IL_0167:  br IL_04cb
-
-	IL_016c:  nop 
-	IL_016d:  ldarg.0 
-	IL_016e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
-	IL_0173:  brfalse IL_01c3
-
-	IL_0178:  nop 
-	IL_0179:  ldarg.0 
-	IL_017a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile()
-	IL_017f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0184:  ldarg.0 
-	IL_0185:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_018a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_018f:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0194:  stloc.1 
-	IL_0195:  ldloc.1 
-	IL_0196:  brfalse IL_01c2
-
-	IL_019b:  nop 
-	IL_019c:  ldarg.0 
-	IL_019d:  ldc.i4 2000
-	IL_01a2:  ldstr "String_FileHasBeenUpdated"
-	IL_01a7:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01ac:  ldc.i4.1 
-	IL_01ad:  newarr [mscorlib]System.Object
-	IL_01b2:  dup 
-	IL_01b3:  ldc.i4.0 
-	IL_01b4:  ldloc.1 
-	IL_01b5:  stelem.ref 
-	IL_01b6:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_01bb:  ldc.i4.1 
-	IL_01bc:  stloc.0 
-	IL_01bd:  br IL_04cb
-
-	IL_01c2:  nop 
-	IL_01c3:  ldarg.0 
-	IL_01c4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
-	IL_01c9:  brfalse IL_0219
-
-	IL_01ce:  nop 
-	IL_01cf:  ldarg.0 
-	IL_01d0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile()
-	IL_01d5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01da:  ldarg.0 
-	IL_01db:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_01e0:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_01e5:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_01ea:  stloc.1 
-	IL_01eb:  ldloc.1 
-	IL_01ec:  brfalse IL_0218
-
-	IL_01f1:  nop 
-	IL_01f2:  ldarg.0 
-	IL_01f3:  ldc.i4 2000
-	IL_01f8:  ldstr "String_FileHasBeenUpdated"
-	IL_01fd:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0202:  ldc.i4.1 
-	IL_0203:  newarr [mscorlib]System.Object
-	IL_0208:  dup 
-	IL_0209:  ldc.i4.0 
-	IL_020a:  ldloc.1 
-	IL_020b:  stelem.ref 
-	IL_020c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0211:  ldc.i4.1 
-	IL_0212:  stloc.0 
-	IL_0213:  br IL_04cb
-
-	IL_0218:  nop 
-	IL_0219:  ldarg.0 
-	IL_021a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
-	IL_021f:  brfalse IL_026f
-
-	IL_0224:  nop 
-	IL_0225:  ldarg.0 
-	IL_0226:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon()
-	IL_022b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0230:  ldarg.0 
-	IL_0231:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_0236:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_023b:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0240:  stloc.1 
-	IL_0241:  ldloc.1 
-	IL_0242:  brfalse IL_026e
-
-	IL_0247:  nop 
-	IL_0248:  ldarg.0 
-	IL_0249:  ldc.i4 2000
-	IL_024e:  ldstr "String_FileHasBeenUpdated"
-	IL_0253:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0258:  ldc.i4.1 
-	IL_0259:  newarr [mscorlib]System.Object
-	IL_025e:  dup 
-	IL_025f:  ldc.i4.0 
-	IL_0260:  ldloc.1 
-	IL_0261:  stelem.ref 
-	IL_0262:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0267:  ldc.i4.1 
-	IL_0268:  stloc.0 
-	IL_0269:  br IL_04cb
-
-	IL_026e:  nop 
-	IL_026f:  ldarg.0 
-	IL_0270:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
-	IL_0275:  brfalse IL_02c5
-
-	IL_027a:  nop 
-	IL_027b:  ldarg.0 
-	IL_027c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res()
-	IL_0281:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0286:  ldarg.0 
-	IL_0287:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_028c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0291:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0296:  stloc.1 
-	IL_0297:  ldloc.1 
-	IL_0298:  brfalse IL_02c4
-
-	IL_029d:  nop 
-	IL_029e:  ldarg.0 
-	IL_029f:  ldc.i4 2000
-	IL_02a4:  ldstr "String_FileHasBeenUpdated"
-	IL_02a9:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02ae:  ldc.i4.1 
-	IL_02af:  newarr [mscorlib]System.Object
-	IL_02b4:  dup 
-	IL_02b5:  ldc.i4.0 
-	IL_02b6:  ldloc.1 
-	IL_02b7:  stelem.ref 
-	IL_02b8:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_02bd:  ldc.i4.1 
-	IL_02be:  stloc.0 
-	IL_02bf:  br IL_04cb
-
-	IL_02c4:  nop 
-	IL_02c5:  nop 
-	IL_02c6:  ldarg.0 
-	IL_02c7:  call instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
-	IL_02cc:  callvirt instance class NAnt.DotNet.Types.EmbeddedResourceEnumerator class NAnt.DotNet.Types.EmbeddedResourceCollection::GetEnumerator()
-	IL_02d1:  stloc.s 6
-	.try { // 1
-	  IL_02d3:  br IL_0328
-
-	  IL_02d8:  ldloc.s 6
-	  IL_02da:  callvirt instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceEnumerator::get_Current()
-	  IL_02df:  stloc.s 5
-	  IL_02e1:  nop 
-	  IL_02e2:  ldloc.s 5
-	  IL_02e4:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_File()
-	  IL_02e9:  ldarg.0 
-	  IL_02ea:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	  IL_02ef:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_02f4:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	  IL_02f9:  stloc.1 
-	  IL_02fa:  ldloc.1 
-	  IL_02fb:  brfalse IL_0327
-
-	  IL_0300:  nop 
-	  IL_0301:  ldarg.0 
-	  IL_0302:  ldc.i4 2000
-	  IL_0307:  ldstr "String_FileHasBeenUpdated"
-	  IL_030c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0311:  ldc.i4.1 
-	  IL_0312:  newarr [mscorlib]System.Object
-	  IL_0317:  dup 
-	  IL_0318:  ldc.i4.0 
-	  IL_0319:  ldloc.1 
-	  IL_031a:  stelem.ref 
-	  IL_031b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0320:  ldc.i4.1 
-	  IL_0321:  stloc.0 
-	  IL_0322:  leave IL_04cb
-
-	  IL_0327:  nop 
-	  IL_0328:  ldloc.s 6
-	  IL_032a:  callvirt instance bool class NAnt.DotNet.Types.EmbeddedResourceEnumerator::MoveNext()
-	  IL_032f:  brtrue IL_02d8
-
-	  IL_0334:  leave IL_0350
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0339:  ldloc.s 6
-	  IL_033b:  isinst [mscorlib]System.IDisposable
-	  IL_0340:  dup 
-	  IL_0341:  stloc.s 7
-	  IL_0343:  brfalse IL_034f
-
-	  IL_0348:  ldloc.s 7
-	  IL_034a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_034f:  endfinally 
-	} // end handler 1
-	IL_0350:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0355:  stloc.s 8
-	IL_0357:  nop 
-	IL_0358:  ldarg.0 
-	IL_0359:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_035e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::GetEnumerator()
-	IL_0363:  stloc.s 10
-	.try { // 2
-	  IL_0365:  br IL_045c
-
-	  IL_036a:  ldloc.s 10
-	  IL_036c:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Argument class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::get_Current()
-	  IL_0371:  stloc.s 9
-	  IL_0373:  nop 
-	  IL_0374:  ldloc.s 9
-	  IL_0376:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_IfDefined()
-	  IL_037b:  brfalse IL_045b
-
-	  IL_0380:  ldloc.s 9
-	  IL_0382:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_UnlessDefined()
-	  IL_0387:  brtrue IL_045b
-
-	  IL_038c:  nop 
-	  IL_038d:  ldloc.s 9
-	  IL_038f:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Argument::get_Value()
-	  IL_0394:  stloc.s 11
-	  IL_0396:  ldloc.s 11
-	  IL_0398:  brfalse IL_045a
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
+	IL_0007:  brfalse IL_0014
 
-	  IL_039d:  ldloc.s 11
-	  IL_039f:  ldstr "/embed:"
-	  IL_03a4:  callvirt instance bool string::StartsWith(string)
-	  IL_03a9:  brtrue IL_03bf
+	IL_000c:  nop 
+	IL_000d:  ldc.i4.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0074
 
-	  IL_03ae:  ldloc.s 11
-	  IL_03b0:  ldstr "/embedresource:"
-	  IL_03b5:  callvirt instance bool string::StartsWith(string)
-	  IL_03ba:  brfalse IL_045a
+	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_03bf:  nop 
-	  IL_03c0:  ldloc.s 11
-	  IL_03c2:  ldloc.s 11
-	  IL_03c4:  ldc.i4.s 0x3a
-	  IL_03c6:  callvirt instance int32 string::IndexOf(char)
-	  IL_03cb:  ldc.i4.1 
-	  IL_03cc:  add 
-	  IL_03cd:  callvirt instance string string::Substring(int32)
-	  IL_03d2:  stloc.s 12
-	  IL_03d4:  ldloc.s 12
-	  IL_03d6:  ldc.i4.s 0x2c
-	  IL_03d8:  callvirt instance int32 string::IndexOf(char)
-	  IL_03dd:  stloc.s 13
-	  IL_03df:  ldloc.s 13
-	  IL_03e1:  ldc.i4.m1 
-	  IL_03e2:  beq IL_03f5
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration()
+	IL_0025:  brfalse IL_006d
 
-	  IL_03e7:  nop 
-	  IL_03e8:  ldloc.s 12
-	  IL_03ea:  ldc.i4.0 
-	  IL_03eb:  ldloc.s 13
-	  IL_03ed:  callvirt instance string string::Substring(int32, int32)
-	  IL_03f2:  stloc.s 12
-	  IL_03f4:  nop 
-	  IL_03f5:  ldloc.s 12
-	  IL_03f7:  callvirt instance int32 string::get_Length()
-	  IL_03fc:  ldc.i4.2 
-	  IL_03fd:  ble IL_0421
+	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_0402:  ldloc.s 12
-	  IL_0404:  ldstr "\""
-	  IL_0409:  callvirt instance bool string::StartsWith(string)
-	  IL_040e:  brfalse IL_0421
+	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_0413:  ldloc.s 12
-	  IL_0415:  ldstr "\""
-	  IL_041a:  callvirt instance bool string::EndsWith(string)
-	  IL_041f:  br.s IL_0422
+	IL_006c:  nop 
+	IL_006d:  ldc.i4.0 
+	IL_006e:  stloc.0 
+	IL_006f:  br IL_0074
 
-	  IL_0421:  ldc.i4.0 
-	  IL_0422:  stloc.s 14
-	  IL_0424:  ldloc.s 14
-	  IL_0426:  brfalse IL_0440
+	IL_0074:  ldloc.0 
+	IL_0075:  ret 
+    } // end of method CscTask::NeedsCompiling
 
-	  IL_042b:  nop 
-	  IL_042c:  ldloc.s 12
-	  IL_042e:  ldc.i4.1 
-	  IL_042f:  ldloc.s 12
-	  IL_0431:  callvirt instance int32 string::get_Length()
-	  IL_0436:  ldc.i4.2 
-	  IL_0437:  sub 
-	  IL_0438:  callvirt instance string string::Substring(int32, int32)
-	  IL_043d:  stloc.s 12
-	  IL_043f:  nop 
-	  IL_0440:  ldarg.0 
-	  IL_0441:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0446:  ldloc.s 12
-	  IL_0448:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
-	  IL_044d:  stloc.s 12
-	  IL_044f:  ldloc.s 8
-	  IL_0451:  ldloc.s 12
-	  IL_0453:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0458:  pop 
-	  IL_0459:  nop 
-	  IL_045a:  nop 
-	  IL_045b:  nop 
-	  IL_045c:  ldloc.s 10
-	  IL_045e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::MoveNext()
-	  IL_0463:  brtrue IL_036a
+    // method line 441
+    .method public virtual hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0xa8e4
+	// 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_0468:  leave IL_0484
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method CscTask::get_Extension
 
-	} // end .try 2
-	finally  { // 2
-	  IL_046d:  ldloc.s 10
-	  IL_046f:  isinst [mscorlib]System.IDisposable
-	  IL_0474:  dup 
-	  IL_0475:  stloc.s 15
-	  IL_0477:  brfalse IL_0483
+    // method line 442
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+    {
+        // Method begins at RVA 0xa900
+	// 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_047c:  ldloc.s 15
-	  IL_047e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0483:  endfinally 
-	} // end handler 2
-	IL_0484:  ldloc.s 8
-	IL_0486:  ldarg.0 
-	IL_0487:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile()
-	IL_048c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0491:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_0496:  stloc.1 
-	IL_0497:  ldloc.1 
-	IL_0498:  brfalse IL_04c4
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method CscTask::get_ClassNameRegex
 
-	IL_049d:  nop 
-	IL_049e:  ldarg.0 
-	IL_049f:  ldc.i4 2000
-	IL_04a4:  ldstr "String_FileHasBeenUpdated"
-	IL_04a9:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_04ae:  ldc.i4.1 
-	IL_04af:  newarr [mscorlib]System.Object
-	IL_04b4:  dup 
-	IL_04b5:  ldc.i4.0 
-	IL_04b6:  ldloc.1 
-	IL_04b7:  stelem.ref 
-	IL_04b8:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_04bd:  ldc.i4.1 
-	IL_04be:  stloc.0 
-	IL_04bf:  br IL_04cb
+    // method line 443
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+    {
+        // Method begins at RVA 0xa91c
+	// 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_04c4:  ldc.i4.0 
-	IL_04c5:  stloc.0 
-	IL_04c6:  br IL_04cb
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method CscTask::get_NamespaceRegex
 
-	IL_04cb:  ldloc.0 
-	IL_04cc:  ret 
-    } // end of method AssemblyLinkerTask::NeedsCompiling
+    // method line 444
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa936
+	// 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 AlgorithmID ()
+	.property instance string BaseAddress ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 61 6C 67 69 64 01 00 54 02 08 52 65 71   // ...algid..T..Req
-		75 69 72 65 64 00                               ) // uired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 01 00 54 08 04 42 61 73 65 10 00 00 00 ) // ....T..Base....
+		01 00 0B 62 61 73 65 61 64 64 72 65 73 73 00 00 ) // ...baseaddress..
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_AlgorithmID () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_AlgorithmID (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 string Company ()
+	.property instance valuetype NAnt.DotNet.Types.DebugOutput DebugOutput ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 63 6F 6D 70 61 6E 79 01 00 54 02 08 52   // ...company..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+		.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 string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Company () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Company (string '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 string Configuration ()
+	.property instance bool Debug ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E   // ...configuration
-		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
-
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Configuration () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Configuration (string '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 string Copyright ()
+	.property instance class [mscorlib]System.IO.FileInfo DocFile ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 63 6F 70 79 72 69 67 68 74 01 00 54 02   // ...copyright..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 6F 63 00 00 ) // ...doc..
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Copyright () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Copyright (string '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 Culture ()
+	.property instance int32 FileAlign ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 63 75 6C 74 75 72 65 01 00 54 02 08 52   // ...culture..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Culture (string 'value') 
-	}
-	.property instance valuetype NAnt.DotNet.Types.DelaySign 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 01 00 54 02   // ...delaysign..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+		.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 valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.AssemblyLinkerTask::get_DelaySign () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign '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 string Description ()
+	.property instance bool NoStdLib ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 64 65 73 63 72 69 70 74 69 6F 6E 01 00   // ...description..
-		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Description () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Description (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo EvidenceFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 65 76 69 64 65 6E 63 65 01 00 54 02 08   // ...evidence..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
+		.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..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EvidenceFile () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_EvidenceFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string FileVersion ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 66 69 6C 65 76 65 72 73 69 6F 6E 01 00   // ...fileversion..
-		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 string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_FileVersion () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_FileVersion (string '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 Flags ()
+	.property instance bool NoConfig ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 66 6C 61 67 73 01 00 54 02 08 52 65 71   // ...flags..T..Req
-		75 69 72 65 64 00                               ) // uired.
+		.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.Int32ValidatorAttribute::'.ctor'() =  (01 00 01 00 54 08 04 42 61 73 65 10 00 00 00 ) // ....T..Base....
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Flags () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Flags (string '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                                              ) // .
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyContainer (string 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_NoConfig () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_NoConfig (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
+	.property instance bool Checked ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 6B 65 79 66 69 6C 65 01 00 54 02 08 52   // ...keyfile..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+		.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..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_KeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string MainMethod ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6E 00 00 ) // ...main..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_MainMethod () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_MainMethod (string '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 class NAnt.DotNet.Types.ModuleSet ModuleSet ()
+	.property instance bool Unsafe ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 6D 6F 64 75 6C 65 73 00 00 ) // ...modules..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 73 61 66 65 00 00 ) // ...unsafe..
 
-		.get instance default class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ModuleSet () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value') 
+		.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 class [mscorlib]System.IO.FileInfo OutputFile ()
+	.property instance string LangVersion ()
 	{
 		.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 6C 61 6E 67 76 65 72 73 69 6F 6E 00 00 ) // ...langversion..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputFile () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_LangVersion () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_LangVersion (string 'value') 
 	}
-	.property instance string OutputTarget ()
+	.property instance bool Optimize ()
 	{
-		.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.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.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]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_OutputTarget () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputTarget (string '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 Product ()
+	.property instance string Platform ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 70 72 6F 64 75 63 74 01 00 54 02 08 52   // ...product..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+		.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.AssemblyLinkerTask::get_Product () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Product (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 string ProductVersion ()
+	.property instance string WarningLevel ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 70 72 6F 64 75 63 74 76 65 72 73 69 6F   // ...productversio
-		6E 01 00 54 02 08 52 65 71 75 69 72 65 64 00    ) // n..T..Required.
-
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProductVersion () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_ProductVersion (string 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Resources ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 73 6F 75 72 63 65 73 00 00 ) // ...sources..
+		01 00 0C 77 61 72 6E 69 6E 67 6C 65 76 65 6C 00   // ...warninglevel.
+		00                                              ) // .
 
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Resources () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Resources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.EmbeddedResourceCollection EmbeddedResources ()
-	{
-		.get instance default class NAnt.DotNet.Types.EmbeddedResourceCollection NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_EmbeddedResources (class NAnt.DotNet.Types.EmbeddedResourceCollection 'value') 
-	}
-	.property instance bool SupportsTemplate ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 10 73 75 70 70 6F 72 74 73 74 65 6D 70 6C   // ...supportstempl
-		61 74 65 00 00                                  ) // ate..
+		.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.AssemblyLinkerTask::get_SupportsTemplate () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_SupportsTemplate (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 class [mscorlib]System.IO.FileInfo TemplateFile ()
+	.property instance string Codepage ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 74 65 6D 70 6C 61 74 65 01 00 54 02 08   // ...template..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
+		.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 class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_TemplateFile () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_TemplateFile (class [mscorlib]System.IO.FileInfo '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 string Title ()
+	.property instance bool SupportsDocGeneration ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 74 69 74 6C 65 01 00 54 02 08 52 65 71   // ...title..T..Req
-		75 69 72 65 64 00                               ) // uired.
+		.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 string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Title () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Title (string '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 string Trademark ()
+	.property instance bool SupportsPlatform ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 74 72 61 64 65 6D 61 72 6B 01 00 54 02   // ...trademark..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+		.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 string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Trademark () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Trademark (string '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 string Version ()
+	.property instance bool SupportsLangVersion ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 76 65 72 73 69 6F 6E 01 00 54 02 08 52   // ...version..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+		.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..
 
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Version () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Version (string '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 class [mscorlib]System.IO.FileInfo Win32Icon ()
+	.property instance string Extension ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 77 69 6E 33 32 69 63 6F 6E 01 00 54 02   // ...win32icon..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Icon () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Extension () 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo Win32Res ()
+	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 77 69 6E 33 32 72 65 73 01 00 54 02 08   // ...win32res..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Win32Res () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Win32Res (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_ClassNameRegex () 
 	}
-	.property instance string ProgramArguments ()
+	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.AssemblyLinkerTask::get_ProgramArguments () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_NamespaceRegex () 
 	}
-  } // end of class NAnt.DotNet.Tasks.AssemblyLinkerTask
+  } // end of class NAnt.DotNet.Tasks.CscTask
 }
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi abstract CompilerBase
+  .class public auto ansi beforefieldinit DelaySignTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
-    .field  private  string _responseFileName
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  string _target
-    .field  private  bool _debug
-    .field  private  string _define
-    .field  private  class [mscorlib]System.IO.FileInfo _win32icon
-    .field  private  class [mscorlib]System.IO.FileInfo _win32res
-    .field  private  bool _warnAsError
-    .field  private  class NAnt.DotNet.Types.WarningAsError _warningAsError
-    .field  private  string _noWarn
-    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _suppressWarnings
-    .field  private  bool _forceRebuild
-    .field  private  string _mainType
-    .field  private  string _keyContainer
-    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
-    .field  private  valuetype NAnt.DotNet.Types.DelaySign _delaySign
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _lib
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _modules
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _sources
-    .field  private  class NAnt.DotNet.Types.ResourceFileSetCollection _resourcesList
-    .field  private  class NAnt.DotNet.Types.PackageCollection _packages
-    .field  private  bool _supportsPackageReferences
-    .field  private  bool _supportsWarnAsErrorList
-    .field  private  bool _supportsNoWarnList
-    .field  private  bool _supportsKeyContainer
-    .field  private  bool _supportsKeyFile
-    .field  private  bool _supportsDelaySign
-    .field  family static  string[] CodebehindExtensions
-    .field  family static initonly  class [mscorlib]System.Collections.Hashtable CultureNames
-
-    // method line 383
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22e0
-	// Code size 111 (0x6f)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Globalization.CultureInfo[]	V_0,
-		class [mscorlib]System.Globalization.CultureInfo	V_1,
-		class [mscorlib]System.Globalization.CultureInfo[]	V_2,
-		int32	V_3)
-	IL_0000:  ldc.i4.4 
-	IL_0001:  newarr [mscorlib]System.String
-	IL_0006:  dup 
-	IL_0007:  ldc.i4.0 
-	IL_0008:  ldstr ".aspx"
-	IL_000d:  stelem.ref 
-	IL_000e:  dup 
-	IL_000f:  ldc.i4.1 
-	IL_0010:  ldstr ".asax"
-	IL_0015:  stelem.ref 
-	IL_0016:  dup 
-	IL_0017:  ldc.i4.2 
-	IL_0018:  ldstr ".ascx"
-	IL_001d:  stelem.ref 
-	IL_001e:  dup 
-	IL_001f:  ldc.i4.3 
-	IL_0020:  ldstr ".asmx"
-	IL_0025:  stelem.ref 
-	IL_0026:  stsfld string[] NAnt.DotNet.Tasks.CompilerBase::CodebehindExtensions
-	IL_002b:  nop 
-	IL_002c:  ldc.i4.7 
-	IL_002d:  call class [mscorlib]System.Globalization.CultureInfo[] class [mscorlib]System.Globalization.CultureInfo::GetCultures(valuetype [mscorlib]System.Globalization.CultureTypes)
-	IL_0032:  stloc.0 
-	IL_0033:  ldloc.0 
-	IL_0034:  ldlen 
-	IL_0035:  conv.i4 
-	IL_0036:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable(int32)
-	IL_003b:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.DotNet.Tasks.CompilerBase::CultureNames
-	IL_0040:  nop 
-	IL_0041:  ldloc.0 
-	IL_0042:  stloc.2 
-	IL_0043:  ldc.i4.0 
-	IL_0044:  stloc.3 
-	IL_0045:  br IL_0065
+    .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..
 
-	IL_004a:  ldloc.2 
-	IL_004b:  ldloc.3 
-	IL_004c:  ldelem.ref 
-	IL_004d:  stloc.1 
-	IL_004e:  nop 
-	IL_004f:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.DotNet.Tasks.CompilerBase::CultureNames
-	IL_0054:  ldloc.1 
-	IL_0055:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_005a:  ldnull 
-	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0060:  nop 
-	IL_0061:  ldloc.3 
-	IL_0062:  ldc.i4.1 
-	IL_0063:  add 
-	IL_0064:  stloc.3 
-	IL_0065:  ldloc.3 
-	IL_0066:  ldloc.2 
-	IL_0067:  ldlen 
-	IL_0068:  conv.i4 
-	IL_0069:  blt IL_004a
+    .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 ) // ........
 
-	IL_006e:  ret 
-    } // end of method CompilerBase::.cctor
+    .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 384
-    .method family hidebysig specialname rtspecialname 
+    // method line 445
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x235c
-	// Code size 102 (0x66)
-	.maxstack 2
+        // Method begins at RVA 0xa956
+	// Code size 18 (0x12)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.DotNet.Types.WarningAsError::'.ctor'()
-	IL_0006:  stfld class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.CompilerBase::_warningAsError
+	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:  newobj instance void class NAnt.DotNet.Types.CompilerWarningCollection::'.ctor'()
-	IL_0011:  stfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.CompilerBase::_suppressWarnings
-	IL_0016:  ldarg.0 
-	IL_0017:  ldc.i4.0 
-	IL_0018:  stfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::_delaySign
-	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.CompilerBase::_references
-	IL_0028:  ldarg.0 
-	IL_0029:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_002e:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_lib
-	IL_0033:  ldarg.0 
-	IL_0034:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_0039:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_modules
-	IL_003e:  ldarg.0 
-	IL_003f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0044:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_sources
-	IL_0049:  ldarg.0 
-	IL_004a:  newobj instance void class NAnt.DotNet.Types.ResourceFileSetCollection::'.ctor'()
-	IL_004f:  stfld class NAnt.DotNet.Types.ResourceFileSetCollection NAnt.DotNet.Tasks.CompilerBase::_resourcesList
-	IL_0054:  ldarg.0 
-	IL_0055:  newobj instance void class NAnt.DotNet.Types.PackageCollection::'.ctor'()
-	IL_005a:  stfld class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::_packages
-	IL_005f:  ldarg.0 
-	IL_0060:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0065:  ret 
-    } // end of method CompilerBase::.ctor
+	IL_000c:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0011:  ret 
+    } // end of method DelaySignTask::.ctor
 
-    // method line 385
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Debug ()  cil managed 
+    // method line 446
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Targets ()  cil managed 
     {
-        // Method begins at RVA 0x23d0
+        // Method begins at RVA 0xa96c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_debug
+	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 CompilerBase::get_Debug
+    } // end of method DelaySignTask::get_Targets
 
-    // method line 386
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+    // method line 447
+    .method public hidebysig specialname 
+           instance default void set_Targets (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x23eb
+        // Method begins at RVA 0xa987
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_debug
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_Debug
+    } // end of method DelaySignTask::set_Targets
 
-    // method line 387
+    // method line 448
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x23f8
+        // Method begins at RVA 0xa994
 	// 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.CompilerBase::_outputFile
+	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 CompilerBase::get_OutputFile
+    } // end of method DelaySignTask::get_KeyFile
 
-    // method line 388
+    // method line 449
     .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2413
+        // Method begins at RVA 0xa9af
 	// 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.CompilerBase::_outputFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::_keyFile
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_OutputFile
+    } // end of method DelaySignTask::set_KeyFile
 
-    // method line 389
+    // method line 450
     .method public hidebysig specialname 
-           instance default string get_OutputTarget ()  cil managed 
+           instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x2420
+        // Method begins at RVA 0xa9bc
 	// 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.CompilerBase::_target
+	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 CompilerBase::get_OutputTarget
+    } // end of method DelaySignTask::get_KeyContainer
 
-    // method line 390
+    // method line 451
     .method public hidebysig specialname 
-           instance default void set_OutputTarget (string 'value')  cil managed 
+           instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x243b
+        // Method begins at RVA 0xa9d7
 	// 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.CompilerBase::_target
+	IL_0008:  stfld string NAnt.DotNet.Tasks.DelaySignTask::_keyContainer
 	IL_000d:  ret 
-    } // end of method CompilerBase::set_OutputTarget
+    } // end of method DelaySignTask::set_KeyContainer
 
-    // method line 391
-    .method public hidebysig specialname 
-           instance default string get_Define ()  cil managed 
+    // method line 452
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x244c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xa9e8
+	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_define
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	IL_0007:  brfalse IL_001e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_Define
+	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
 
-    // method line 392
-    .method public hidebysig specialname 
-           instance default void set_Define (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2467
-	// 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.CompilerBase::_define
-	IL_000d:  ret 
-    } // end of method CompilerBase::set_Define
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-    // method line 393
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Win32Icon ()  cil managed 
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method DelaySignTask::get_ProgramArguments
+
+    // method line 453
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2478
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xaa1c
+	// Code size 429 (0x1ad)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		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:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::_win32icon
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_Win32Icon
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance string class NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer()
+	IL_0027:  br IL_0037
 
-    // method line 394
-    .method public hidebysig specialname 
-           instance default void set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2493
-	// 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.CompilerBase::_win32icon
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_Win32Icon
+	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 395
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Win32Res ()  cil managed 
-    {
-        // Method begins at RVA 0x24a0
-	// 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.CompilerBase::_win32res
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_Win32Res
+	IL_006b:  ldloc.1 
+	IL_006c:  brtrue IL_007d
 
-    // method line 396
-    .method public hidebysig specialname 
-           instance default void set_Win32Res (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x24bb
-	// 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.CompilerBase::_win32res
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_Win32Res
+	IL_0071:  ldloc.0 
+	IL_0072:  brtrue IL_0094
 
-    // method line 397
-    .method public hidebysig specialname 
-           instance default bool get_WarnAsError ()  cil managed 
-    {
-        // Method begins at RVA 0x24c8
-	// 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.CompilerBase::_warnAsError
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0077:  ldloc.1 
+	IL_0078:  brtrue IL_0094
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_WarnAsError
+	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
 
-    // method line 398
-    .method public hidebysig specialname 
-           instance default void set_WarnAsError (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x24e3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_warnAsError
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_WarnAsError
+	  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
 
-    // method line 399
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
-    {
-        // Method begins at RVA 0x24f0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.WarningAsError	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.CompilerBase::_warningAsError
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_WarningAsError
+	  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 400
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_NoWarn ()  cil managed 
-    {
-        // Method begins at RVA 0x250c
-	// 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.CompilerBase::_noWarn
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0190:  leave IL_01ac
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_NoWarn
+	} // 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
 
-    // method line 401
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_NoWarn (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2527
-	// 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.CompilerBase::_noWarn
-	IL_000d:  ret 
-    } // end of method CompilerBase::set_NoWarn
+	  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
 
-    // method line 402
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
-    {
-        // Method begins at RVA 0x2538
-	// 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.Tasks.CompilerBase::_suppressWarnings
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SuppressWarnings
+		.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 403
+		.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 ResGenTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 72 65 73 67 65 6E 00 00 ) // ...resgen..
+
+    .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.Text.StringBuilder _arguments
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _assemblies
+    .field  private  class [mscorlib]System.IO.FileInfo _inputFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _programFileName
+    .field  private  class NAnt.DotNet.Types.ResourceFileSet _resources
+    .field  private  string _targetExt
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDir
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _workingDirectory
+    .field  private  bool _useSourcePath
+    .field  private  class [mscorlib]System.Collections.ArrayList _qualifiedResources
+    .field  private  bool _supportsAssemblyReferences
+    .field  private  bool _supportsExternalFileReferences
+    .field private static literal  int32 _maxCmdLineLength = int32(0x00007530)
+
+    // method line 454
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xabe8
+	// Code size 62 (0x3e)
+	.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.DotNet.Tasks.ResGenTask::_arguments
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_0011:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::_assemblies
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
+	IL_001c:  stfld class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::_resources
+	IL_0021:  ldarg.0 
+	IL_0022:  ldstr "resources"
+	IL_0027:  stfld string NAnt.DotNet.Tasks.ResGenTask::_targetExt
+	IL_002c:  ldarg.0 
+	IL_002d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0032:  stfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Tasks.ResGenTask::_qualifiedResources
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_003d:  ret 
+    } // end of method ResGenTask::.ctor
+
+    // method line 455
     .method public hidebysig specialname 
-           instance default bool get_ForceRebuild ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
     {
-        // Method begins at RVA 0x2554
+        // Method begins at RVA 0xac28
 	// 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.CompilerBase::_forceRebuild
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::_inputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_ForceRebuild
+    } // end of method ResGenTask::get_InputFile
 
-    // method line 404
+    // method line 456
     .method public hidebysig specialname 
-           instance default void set_ForceRebuild (bool 'value')  cil managed 
+           instance default void set_InputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x256f
+        // Method begins at RVA 0xac43
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_forceRebuild
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::_inputFile
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_ForceRebuild
+    } // end of method ResGenTask::set_InputFile
 
-    // method line 405
+    // method line 457
     .method public hidebysig specialname 
-           instance default string get_MainType ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x257c
+        // Method begins at RVA 0xac50
 	// 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.DotNet.Tasks.CompilerBase::_mainType
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::_outputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_MainType
+    } // end of method ResGenTask::get_OutputFile
 
-    // method line 406
+    // method line 458
     .method public hidebysig specialname 
-           instance default void set_MainType (string 'value')  cil managed 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2597
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xac6b
+	// 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.CompilerBase::_mainType
-	IL_000d:  ret 
-    } // end of method CompilerBase::set_MainType
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::_outputFile
+	IL_0008:  ret 
+    } // end of method ResGenTask::set_OutputFile
 
-    // method line 407
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_KeyContainer ()  cil managed 
+    // method line 459
+    .method public hidebysig specialname 
+           instance default string get_TargetExt ()  cil managed 
     {
-        // Method begins at RVA 0x25a8
+        // Method begins at RVA 0xac78
 	// 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.CompilerBase::_keyContainer
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.ResGenTask::_targetExt
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_KeyContainer
+    } // end of method ResGenTask::get_TargetExt
 
-    // method line 408
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
+    // method line 460
+    .method public hidebysig specialname 
+           instance default void set_TargetExt (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x25c3
+        // Method begins at RVA 0xac93
 	// 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.CompilerBase::_keyContainer
+	IL_0008:  stfld string NAnt.DotNet.Tasks.ResGenTask::_targetExt
 	IL_000d:  ret 
-    } // end of method CompilerBase::set_KeyContainer
+    } // end of method ResGenTask::set_TargetExt
 
-    // method line 409
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    // method line 461
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x25d4
+        // Method begins at RVA 0xaca4
 	// 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.DotNet.Tasks.CompilerBase::_keyFile
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_toDir
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_KeyFile
+    } // end of method ResGenTask::get_ToDirectory
 
-    // method line 410
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 462
+    .method public hidebysig specialname 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x25ef
+        // Method begins at RVA 0xacbf
 	// 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.CompilerBase::_keyFile
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_toDir
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_KeyFile
+    } // end of method ResGenTask::set_ToDirectory
 
-    // method line 411
-    .method public virtual hidebysig newslot specialname 
-           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
+    // method line 463
+    .method public hidebysig specialname 
+           instance default bool get_UseSourcePath ()  cil managed 
     {
-        // Method begins at RVA 0x25fc
+        // Method begins at RVA 0xaccc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Types.DelaySign	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::_delaySign
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.ResGenTask::_useSourcePath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_DelaySign
+    } // end of method ResGenTask::get_UseSourcePath
 
-    // method line 412
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
+    // method line 464
+    .method public hidebysig specialname 
+           instance default void set_UseSourcePath (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2617
+        // Method begins at RVA 0xace7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::_delaySign
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.ResGenTask::_useSourcePath
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_DelaySign
+    } // end of method ResGenTask::set_UseSourcePath
 
-    // method line 413
+    // method line 465
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Lib ()  cil managed 
+           instance default class NAnt.DotNet.Types.ResourceFileSet get_Resources ()  cil managed 
     {
-        // Method begins at RVA 0x2624
+        // Method begins at RVA 0xacf4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		class NAnt.DotNet.Types.ResourceFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_lib
+	IL_0002:  ldfld class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::_resources
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_Lib
+    } // end of method ResGenTask::get_Resources
 
-    // method line 414
+    // method line 466
     .method public hidebysig specialname 
-           instance default void set_Lib (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Resources (class NAnt.DotNet.Types.ResourceFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x263f
+        // Method begins at RVA 0xad0f
 	// 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.CompilerBase::_lib
+	IL_0003:  stfld class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::_resources
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_Lib
+    } // end of method ResGenTask::set_Resources
 
-    // method line 415
+    // method line 467
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x264c
+        // Method begins at RVA 0xad1c
 	// 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.CompilerBase::_references
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::_assemblies
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_References
+    } // end of method ResGenTask::get_Assemblies
 
-    // method line 416
+    // method line 468
     .method public hidebysig specialname 
-           instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2667
+        // Method begins at RVA 0xad37
 	// 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.CompilerBase::_references
+	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::_assemblies
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_References
+    } // end of method ResGenTask::set_Assemblies
 
-    // method line 417
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.DotNet.Types.PackageCollection get_Packages ()  cil managed 
+    // method line 469
+    .method public hidebysig specialname 
+           instance default bool get_SupportsAssemblyReferences ()  cil managed 
     {
-        // Method begins at RVA 0x2674
+        // Method begins at RVA 0xad44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.PackageCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::_packages
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsAssemblyReferences
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_Packages
+    } // end of method ResGenTask::get_SupportsAssemblyReferences
 
-    // method line 418
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Packages (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
+    // method line 470
+    .method public hidebysig specialname 
+           instance default void set_SupportsAssemblyReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x268f
+        // Method begins at RVA 0xad5f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::_packages
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsAssemblyReferences
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_Packages
+    } // end of method ResGenTask::set_SupportsAssemblyReferences
 
-    // method line 419
+    // method line 471
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ResourceFileSetCollection get_ResourcesList ()  cil managed 
-    {
-        // Method begins at RVA 0x269c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSetCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ResourceFileSetCollection NAnt.DotNet.Tasks.CompilerBase::_resourcesList
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_ResourcesList
-
-    // method line 420
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
+           instance default bool get_SupportsExternalFileReferences ()  cil managed 
     {
-        // Method begins at RVA 0x26b8
+        // Method begins at RVA 0xad6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::_modules
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsExternalFileReferences
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_Modules
+    } // end of method ResGenTask::get_SupportsExternalFileReferences
 
-    // method line 421
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    // method line 472
+    .method public hidebysig specialname 
+           instance default void set_SupportsExternalFileReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x26d3
+        // Method begins at RVA 0xad87
 	// 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.CompilerBase::_modules
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.ResGenTask::_supportsExternalFileReferences
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_Modules
+    } // end of method ResGenTask::set_SupportsExternalFileReferences
 
-    // method line 422
+    // method line 473
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
+           instance default class [mscorlib]System.Collections.ArrayList get_QualifiedResources ()  cil managed 
     {
-        // Method begins at RVA 0x26e0
+        // Method begins at RVA 0xad94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]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]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::_sources
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Tasks.ResGenTask::_qualifiedResources
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CompilerBase::get_Sources
-
-    // method line 423
-    .method public hidebysig specialname 
-           instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x26fb
-	// 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.CompilerBase::_sources
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_Sources
+    } // end of method ResGenTask::get_QualifiedResources
 
-    // method line 424
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_SupportsPackageReferences ()  cil managed 
+    // method line 474
+    .method private hidebysig specialname 
+           instance default bool get_RequiresAssemblyReferences ()  cil managed 
     {
-        // Method begins at RVA 0x2708
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xadb0
+	// Code size 285 (0x11d)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		bool	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.DotNet.Tasks.QualifiedResource	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsPackageReferences
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	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:  bgt IL_0028
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SupportsPackageReferences
+	IL_0017:  ldarg.0 
+	IL_0018:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
+	IL_001d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0022:  ldc.i4.0 
+	IL_0023:  ble IL_00f1
 
-    // method line 425
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SupportsPackageReferences (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2723
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsPackageReferences
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_SupportsPackageReferences
+	IL_0028:  nop 
+	IL_0029:  nop 
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_0030:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0035:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_003a:  stloc.1 
+	.try { // 0
+	  IL_003b:  br IL_005d
 
-    // method line 426
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_SupportsWarnAsErrorList ()  cil managed 
-    {
-        // Method begins at RVA 0x2730
-	// 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.CompilerBase::_supportsWarnAsErrorList
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0040:  ldloc.1 
+	  IL_0041:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0046:  stloc.0 
+	  IL_0047:  nop 
+	  IL_0048:  ldarg.0 
+	  IL_0049:  ldloc.0 
+	  IL_004a:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::ReferencesThirdPartyAssemblies(string)
+	  IL_004f:  brfalse IL_005c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SupportsWarnAsErrorList
+	  IL_0054:  nop 
+	  IL_0055:  ldc.i4.1 
+	  IL_0056:  stloc.2 
+	  IL_0057:  leave IL_011b
 
-    // method line 427
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SupportsWarnAsErrorList (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x274b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsWarnAsErrorList
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_SupportsWarnAsErrorList
+	  IL_005c:  nop 
+	  IL_005d:  ldloc.1 
+	  IL_005e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0063:  brtrue IL_0040
 
-    // method line 428
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_SupportsNoWarnList ()  cil managed 
-    {
-        // Method begins at RVA 0x2758
-	// 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.CompilerBase::_supportsNoWarnList
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0068:  leave IL_0081
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SupportsNoWarnList
+	} // end .try 0
+	finally  { // 0
+	  IL_006d:  ldloc.1 
+	  IL_006e:  isinst [mscorlib]System.IDisposable
+	  IL_0073:  dup 
+	  IL_0074:  stloc.3 
+	  IL_0075:  brfalse IL_0080
 
-    // method line 429
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SupportsNoWarnList (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2773
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsNoWarnList
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_SupportsNoWarnList
+	  IL_007a:  ldloc.3 
+	  IL_007b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0080:  endfinally 
+	} // end handler 0
+	IL_0081:  nop 
+	IL_0082:  ldarg.0 
+	IL_0083:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
+	IL_0088:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_008d:  stloc.s 5
+	.try { // 1
+	  IL_008f:  br IL_00c3
 
-    // method line 430
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_SupportsKeyContainer ()  cil managed 
-    {
-        // Method begins at RVA 0x2780
-	// 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.CompilerBase::_supportsKeyContainer
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0094:  ldloc.s 5
+	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_009b:  castclass NAnt.DotNet.Tasks.QualifiedResource
+	  IL_00a0:  stloc.s 4
+	  IL_00a2:  nop 
+	  IL_00a3:  ldarg.0 
+	  IL_00a4:  ldloc.s 4
+	  IL_00a6:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Input()
+	  IL_00ab:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00b0:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::ReferencesThirdPartyAssemblies(string)
+	  IL_00b5:  brfalse IL_00c2
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SupportsKeyContainer
+	  IL_00ba:  nop 
+	  IL_00bb:  ldc.i4.1 
+	  IL_00bc:  stloc.2 
+	  IL_00bd:  leave IL_011b
 
-    // method line 431
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x279b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsKeyContainer
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_SupportsKeyContainer
+	  IL_00c2:  nop 
+	  IL_00c3:  ldloc.s 5
+	  IL_00c5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00ca:  brtrue IL_0094
 
-    // method line 432
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_SupportsKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x27a8
-	// 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.CompilerBase::_supportsKeyFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_00cf:  leave IL_00eb
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SupportsKeyFile
+	} // end .try 1
+	finally  { // 1
+	  IL_00d4:  ldloc.s 5
+	  IL_00d6:  isinst [mscorlib]System.IDisposable
+	  IL_00db:  dup 
+	  IL_00dc:  stloc.s 6
+	  IL_00de:  brfalse IL_00ea
 
-    // method line 433
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SupportsKeyFile (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x27c3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsKeyFile
-	IL_0008:  ret 
-    } // end of method CompilerBase::set_SupportsKeyFile
+	  IL_00e3:  ldloc.s 6
+	  IL_00e5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00ea:  endfinally 
+	} // end handler 1
+	IL_00eb:  nop 
+	IL_00ec:  br IL_0114
 
-    // method line 434
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_SupportsDelaySign ()  cil managed 
+	IL_00f1:  ldarg.0 
+	IL_00f2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_00f7:  brfalse IL_0114
+
+	IL_00fc:  nop 
+	IL_00fd:  ldarg.0 
+	IL_00fe:  ldarg.0 
+	IL_00ff:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_0104:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0109:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::ReferencesThirdPartyAssemblies(string)
+	IL_010e:  stloc.2 
+	IL_010f:  br IL_011b
+
+	IL_0114:  ldc.i4.0 
+	IL_0115:  stloc.2 
+	IL_0116:  br IL_011b
+
+	IL_011b:  ldloc.2 
+	IL_011c:  ret 
+    } // end of method ResGenTask::get_RequiresAssemblyReferences
+
+    // method line 475
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x27d0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xaef8
+	// 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 bool NAnt.DotNet.Tasks.CompilerBase::_supportsDelaySign
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
+	IL_0007:  brtrue IL_0019
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerBase::get_SupportsDelaySign
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0025
 
-    // method line 435
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_SupportsDelaySign (bool 'value')  cil managed 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
+
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method ResGenTask::get_BaseDirectory
+
+    // method line 476
+    .method public virtual hidebysig specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x27eb
+        // Method begins at RVA 0xaf2b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CompilerBase::_supportsDelaySign
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
 	IL_0008:  ret 
-    } // end of method CompilerBase::set_SupportsDelaySign
-
-    // method line 436
-    .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 437
-    .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 438
-    .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
+    } // end of method ResGenTask::set_BaseDirectory
 
-    // method line 439
+    // method line 477
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x27f8
-	// Code size 30 (0x1e)
-	.maxstack 3
+        // Method begins at RVA 0xaf38
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "@\""
-	IL_0006:  ldarg.0 
-	IL_0007:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	IL_000c:  ldstr "\""
-	IL_0011:  call string string::Concat(string, string, string)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0007:  callvirt instance string object::ToString()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method CompilerBase::get_ProgramArguments
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ResGenTask::get_ProgramArguments
 
-    // method line 440
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 478
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x2824
-	// Code size 2158 (0x86e)
-	.maxstack 7
+        // Method begins at RVA 0xaf58
+	// Code size 40 (0x28)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.StreamWriter	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		valuetype NAnt.DotNet.Types.DelaySign	V_6,
-		string	V_7,
-		class [System]System.Collections.Specialized.StringEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class NAnt.DotNet.Types.ResourceFileSet	V_10,
-		class NAnt.DotNet.Types.ResourceFileSetEnumerator	V_11,
-		string	V_12,
-		class [System]System.Collections.Specialized.StringEnumerator	V_13,
-		string	V_14,
-		string	V_15,
-		class [mscorlib]System.Globalization.CultureInfo	V_16,
-		string	V_17,
-		class [mscorlib]System.IDisposable	V_18,
-		string	V_19,
-		class [System]System.Collections.Specialized.StringEnumerator	V_20,
-		string	V_21,
-		class [mscorlib]System.Globalization.CultureInfo	V_22,
-		string	V_23,
-		class [mscorlib]System.IDisposable	V_24,
-		class [mscorlib]System.IDisposable	V_25,
-		string	V_26,
-		class [System]System.Collections.Specialized.StringEnumerator	V_27,
-		class [mscorlib]System.IDisposable	V_28,
-		class [mscorlib]System.IO.StreamReader	V_29,
-		string	V_30,
-		class [mscorlib]System.Collections.IEnumerator	V_31,
-		string	V_32,
-		class [mscorlib]System.IO.FileInfo	V_33,
-		class [mscorlib]System.IDisposable	V_34,
-		string	V_35,
-		class [System]System.Collections.Specialized.StringEnumerator	V_36,
-		class [mscorlib]System.IDisposable	V_37)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
-	IL_0007:  brfalse IL_086d
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
+	IL_0007:  brtrue IL_001a
 
 	IL_000c:  nop 
 	IL_000d:  ldarg.0 
-	IL_000e:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	IL_0013:  stfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	IL_001e:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
-	IL_0023:  stloc.0 
-	IL_0024:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0029:  stloc.1 
-	IL_002a:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002f:  stloc.2 
-	.try { // 8
-	  IL_0030:  nop 
-	  IL_0031:  ldarg.0 
-	  IL_0032:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	  IL_0037:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_003c:  brtrue IL_005e
-
-	  IL_0041:  nop 
-	  IL_0042:  ldarg.0 
-	  IL_0043:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	  IL_0048:  ldarg.0 
-	  IL_0049:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_004e:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	  IL_0053:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0058:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_005d:  nop 
-	  IL_005e:  ldarg.0 
-	  IL_005f:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Lib()
-	  IL_0064:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_0069:  brtrue IL_008b
-
-	  IL_006e:  nop 
-	  IL_006f:  ldarg.0 
-	  IL_0070:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Lib()
-	  IL_0075:  ldarg.0 
-	  IL_0076:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_007b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	  IL_0080:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0085:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_008a:  nop 
-	  IL_008b:  ldarg.0 
-	  IL_008c:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
-	  IL_0091:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_0096:  brtrue IL_00b8
-
-	  IL_009b:  nop 
-	  IL_009c:  ldarg.0 
-	  IL_009d:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
-	  IL_00a2:  ldarg.0 
-	  IL_00a3:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00a8:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	  IL_00ad:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_00b2:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_00b7:  nop 
-	  IL_00b8:  ldarg.0 
-	  IL_00b9:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
-	  IL_00be:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_00c3:  brtrue IL_00e5
-
-	  IL_00c8:  nop 
-	  IL_00c9:  ldarg.0 
-	  IL_00ca:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
-	  IL_00cf:  ldarg.0 
-	  IL_00d0:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00d5:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	  IL_00da:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_00df:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_00e4:  nop 
-	  IL_00e5:  nop 
-	  IL_00e6:  ldarg.0 
-	  IL_00e7:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Lib()
-	  IL_00ec:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
-	  IL_00f1:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_00f6:  stloc.s 4
-	  .try { // 0
-	    IL_00f8:  br IL_0135
-
-	    IL_00fd:  ldloc.s 4
-	    IL_00ff:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0104:  stloc.3 
-	    IL_0105:  nop 
-	    IL_0106:  ldarg.0 
-	    IL_0107:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	    IL_010c:  callvirt instance class NAnt.DotNet.Types.LibDirectorySet class NAnt.DotNet.Types.AssemblyFileSet::get_Lib()
-	    IL_0111:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
-	    IL_0116:  ldloc.3 
-	    IL_0117:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_011c:  pop 
-	    IL_011d:  ldarg.0 
-	    IL_011e:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
-	    IL_0123:  callvirt instance class NAnt.DotNet.Types.LibDirectorySet class NAnt.DotNet.Types.AssemblyFileSet::get_Lib()
-	    IL_0128:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
-	    IL_012d:  ldloc.3 
-	    IL_012e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0133:  pop 
-	    IL_0134:  nop 
-	    IL_0135:  ldloc.s 4
-	    IL_0137:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_013c:  brtrue IL_00fd
-
-	    IL_0141:  leave IL_015d
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0146:  ldloc.s 4
-	    IL_0148:  isinst [mscorlib]System.IDisposable
-	    IL_014d:  dup 
-	    IL_014e:  stloc.s 5
-	    IL_0150:  brfalse IL_015c
-
-	    IL_0155:  ldloc.s 5
-	    IL_0157:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_015c:  endfinally 
-	  } // end handler 0
-	  IL_015d:  ldarg.0 
-	  IL_015e:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	  IL_0163:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
-	  IL_0168:  ldarg.0 
-	  IL_0169:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
-	  IL_016e:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
-	  IL_0173:  ldarg.0 
-	  IL_0174:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	  IL_0179:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	  IL_017e:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0183:  brtrue IL_019b
-
-	  IL_0188:  nop 
-	  IL_0189:  ldarg.0 
-	  IL_018a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	  IL_018f:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	  IL_0194:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_0199:  pop 
-	  IL_019a:  nop 
-	  IL_019b:  ldarg.0 
-	  IL_019c:  ldc.i4 3000
-	  IL_01a1:  ldstr "String_CompilingFiles"
-	  IL_01a6:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_01ab:  ldc.i4.2 
-	  IL_01ac:  newarr [mscorlib]System.Object
-	  IL_01b1:  dup 
-	  IL_01b2:  ldc.i4.0 
-	  IL_01b3:  ldarg.0 
-	  IL_01b4:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
-	  IL_01b9:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_01be:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	  IL_01c3:  box [mscorlib]System.Int32
-	  IL_01c8:  stelem.ref 
-	  IL_01c9:  dup 
-	  IL_01ca:  ldc.i4.1 
-	  IL_01cb:  ldarg.0 
-	  IL_01cc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	  IL_01d1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01d6:  stelem.ref 
-	  IL_01d7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_01dc:  ldarg.0 
-	  IL_01dd:  ldloc.0 
-	  IL_01de:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOptions(class [mscorlib]System.IO.TextWriter)
-	  IL_01e3:  ldarg.0 
-	  IL_01e4:  ldloc.0 
-	  IL_01e5:  ldstr "nologo"
-	  IL_01ea:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	  IL_01ef:  ldarg.0 
-	  IL_01f0:  ldloc.0 
-	  IL_01f1:  ldstr "target"
-	  IL_01f6:  ldarg.0 
-	  IL_01f7:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_OutputTarget()
-	  IL_01fc:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_0201:  ldarg.0 
-	  IL_0202:  ldloc.0 
-	  IL_0203:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteConditionalCompilationConstants(class [mscorlib]System.IO.TextWriter)
-	  IL_0208:  ldarg.0 
-	  IL_0209:  ldloc.0 
-	  IL_020a:  ldstr "out"
-	  IL_020f:  ldarg.0 
-	  IL_0210:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	  IL_0215:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_021a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_021f:  ldarg.0 
-	  IL_0220:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
-	  IL_0225:  brfalse IL_0243
-
-	  IL_022a:  nop 
-	  IL_022b:  ldarg.0 
-	  IL_022c:  ldloc.0 
-	  IL_022d:  ldstr "win32icon"
-	  IL_0232:  ldarg.0 
-	  IL_0233:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
-	  IL_0238:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_023d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_0242:  nop 
-	  IL_0243:  ldarg.0 
-	  IL_0244:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_MainType()
-	  IL_0249:  brfalse IL_0262
-
-	  IL_024e:  nop 
-	  IL_024f:  ldarg.0 
-	  IL_0250:  ldloc.0 
-	  IL_0251:  ldstr "main"
-	  IL_0256:  ldarg.0 
-	  IL_0257:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_MainType()
-	  IL_025c:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_0261:  nop 
-	  IL_0262:  ldarg.0 
-	  IL_0263:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
-	  IL_0268:  brfalse IL_02c3
-
-	  IL_026d:  nop 
-	  IL_026e:  ldarg.0 
-	  IL_026f:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyContainer()
-	  IL_0274:  brfalse IL_0292
-
-	  IL_0279:  nop 
-	  IL_027a:  ldarg.0 
-	  IL_027b:  ldloc.0 
-	  IL_027c:  ldstr "keycontainer"
-	  IL_0281:  ldarg.0 
-	  IL_0282:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
-	  IL_0287:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_028c:  nop 
-	  IL_028d:  br IL_02c2
-
-	  IL_0292:  nop 
-	  IL_0293:  ldarg.0 
-	  IL_0294:  ldc.i4 4000
-	  IL_0299:  ldstr "String_CompilerDoesNotSupportKeyContainer"
-	  IL_029e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_02a3:  ldc.i4.1 
-	  IL_02a4:  newarr [mscorlib]System.Object
-	  IL_02a9:  dup 
-	  IL_02aa:  ldc.i4.0 
-	  IL_02ab:  ldarg.0 
-	  IL_02ac:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_02b1:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	  IL_02b6:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	  IL_02bb:  stelem.ref 
-	  IL_02bc:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_02c1:  nop 
-	  IL_02c2:  nop 
-	  IL_02c3:  ldarg.0 
-	  IL_02c4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
-	  IL_02c9:  brfalse IL_0329
-
-	  IL_02ce:  nop 
-	  IL_02cf:  ldarg.0 
-	  IL_02d0:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyFile()
-	  IL_02d5:  brfalse IL_02f8
-
-	  IL_02da:  nop 
-	  IL_02db:  ldarg.0 
-	  IL_02dc:  ldloc.0 
-	  IL_02dd:  ldstr "keyfile"
-	  IL_02e2:  ldarg.0 
-	  IL_02e3:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
-	  IL_02e8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_02ed:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_02f2:  nop 
-	  IL_02f3:  br IL_0328
-
-	  IL_02f8:  nop 
-	  IL_02f9:  ldarg.0 
-	  IL_02fa:  ldc.i4 4000
-	  IL_02ff:  ldstr "String_CompilerDoesNotSupportKeyFile"
-	  IL_0304:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0309:  ldc.i4.1 
-	  IL_030a:  newarr [mscorlib]System.Object
-	  IL_030f:  dup 
-	  IL_0310:  ldc.i4.0 
-	  IL_0311:  ldarg.0 
-	  IL_0312:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0317:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	  IL_031c:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	  IL_0321:  stelem.ref 
-	  IL_0322:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0327:  nop 
-	  IL_0328:  nop 
-	  IL_0329:  ldarg.0 
-	  IL_032a:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
-	  IL_032f:  brfalse IL_03d7
-
-	  IL_0334:  nop 
-	  IL_0335:  ldarg.0 
-	  IL_0336:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsDelaySign()
-	  IL_033b:  brfalse IL_03a6
-
-	  IL_0340:  nop 
-	  IL_0341:  ldarg.0 
-	  IL_0342:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
-	  IL_0347:  stloc.s 6
-	  IL_0349:  ldloc.s 6
-	  IL_034b:  ldc.i4.2 
-	  IL_034c:  beq IL_035e
-
-	  IL_0351:  ldloc.s 6
-	  IL_0353:  ldc.i4.1 
-	  IL_0354:  beq IL_036f
-
-	  IL_0359:  br IL_0380
-
-	  IL_035e:  ldarg.0 
-	  IL_035f:  ldloc.0 
-	  IL_0360:  ldstr "delaysign+"
-	  IL_0365:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	  IL_036a:  leave IL_03a0
-
-	  IL_036f:  ldarg.0 
-	  IL_0370:  ldloc.0 
-	  IL_0371:  ldstr "delaysign-"
-	  IL_0376:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	  IL_037b:  leave IL_03a0
-
-	  IL_0380:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0385:  ldstr "The {0}value for \"delaysign\" is not supported."
-	  IL_038a:  ldarg.0 
-	  IL_038b:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
-	  IL_0390:  box NAnt.DotNet.Types.DelaySign
-	  IL_0395:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_039a:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	  IL_039f:  throw 
-	  IL_03a0:  nop 
-	  IL_03a1:  br IL_03d6
-
-	  IL_03a6:  nop 
-	  IL_03a7:  ldarg.0 
-	  IL_03a8:  ldc.i4 4000
-	  IL_03ad:  ldstr "String_CompilerDoesNotSupportDelaySign"
-	  IL_03b2:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_03b7:  ldc.i4.1 
-	  IL_03b8:  newarr [mscorlib]System.Object
-	  IL_03bd:  dup 
-	  IL_03be:  ldc.i4.0 
-	  IL_03bf:  ldarg.0 
-	  IL_03c0:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_03c5:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	  IL_03ca:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	  IL_03cf:  stelem.ref 
-	  IL_03d0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_03d5:  nop 
-	  IL_03d6:  nop 
-	  IL_03d7:  ldarg.0 
-	  IL_03d8:  ldloc.0 
-	  IL_03d9:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WritePackageReferences(class [mscorlib]System.IO.TextWriter)
-	  IL_03de:  ldarg.0 
-	  IL_03df:  ldloc.0 
-	  IL_03e0:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteWarningsAsError(class [mscorlib]System.IO.TextWriter)
-	  IL_03e5:  ldarg.0 
-	  IL_03e6:  ldloc.0 
-	  IL_03e7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteNoWarnList(class [mscorlib]System.IO.TextWriter)
-	  IL_03ec:  nop 
-	  IL_03ed:  ldarg.0 
-	  IL_03ee:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	  IL_03f3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_03f8:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_03fd:  stloc.s 8
-	  .try { // 1
-	    IL_03ff:  br IL_041d
-
-	    IL_0404:  ldloc.s 8
-	    IL_0406:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_040b:  stloc.s 7
-	    IL_040d:  nop 
-	    IL_040e:  ldarg.0 
-	    IL_040f:  ldloc.0 
-	    IL_0410:  ldstr "reference"
-	    IL_0415:  ldloc.s 7
-	    IL_0417:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	    IL_041c:  nop 
-	    IL_041d:  ldloc.s 8
-	    IL_041f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0424:  brtrue IL_0404
-
-	    IL_0429:  leave IL_0445
-
-	  } // end .try 1
-	  finally  { // 1
-	    IL_042e:  ldloc.s 8
-	    IL_0430:  isinst [mscorlib]System.IDisposable
-	    IL_0435:  dup 
-	    IL_0436:  stloc.s 9
-	    IL_0438:  brfalse IL_0444
-
-	    IL_043d:  ldloc.s 9
-	    IL_043f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0444:  endfinally 
-	  } // end handler 1
-	  IL_0445:  ldarg.0 
-	  IL_0446:  ldloc.0 
-	  IL_0447:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteModuleReferences(class [mscorlib]System.IO.TextWriter)
-	  IL_044c:  nop 
-	  IL_044d:  ldarg.0 
-	  IL_044e:  call instance class NAnt.DotNet.Types.ResourceFileSetCollection class NAnt.DotNet.Tasks.CompilerBase::get_ResourcesList()
-	  IL_0453:  callvirt instance class NAnt.DotNet.Types.ResourceFileSetEnumerator class NAnt.DotNet.Types.ResourceFileSetCollection::GetEnumerator()
-	  IL_0458:  stloc.s 11
-	  .try { // 4
-	    IL_045a:  br IL_0670
-
-	    IL_045f:  ldloc.s 11
-	    IL_0461:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Types.ResourceFileSetEnumerator::get_Current()
-	    IL_0466:  stloc.s 10
-	    IL_0468:  nop 
-	    IL_0469:  ldloc.s 10
-	    IL_046b:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles()
-	    IL_0470:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_0475:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	    IL_047a:  ldc.i4.0 
-	    IL_047b:  ble IL_058d
-
-	    IL_0480:  nop 
-	    IL_0481:  ldarg.0 
-	    IL_0482:  ldloc.s 10
-	    IL_0484:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles()
-	    IL_0489:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_048e:  call instance void class NAnt.DotNet.Tasks.CompilerBase::CompileResxResources(class [System]System.Collections.Specialized.StringCollection)
-	    IL_0493:  nop 
-	    IL_0494:  ldloc.s 10
-	    IL_0496:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles()
-	    IL_049b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_04a0:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	    IL_04a5:  stloc.s 13
-	    .try { // 2
-	      IL_04a7:  br IL_0564
-
-	      IL_04ac:  ldloc.s 13
-	      IL_04ae:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	      IL_04b3:  stloc.s 12
-	      IL_04b5:  nop 
-	      IL_04b6:  ldarg.0 
-	      IL_04b7:  ldloc.s 10
-	      IL_04b9:  ldloc.s 12
-	      IL_04bb:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string)
-	      IL_04c0:  stloc.s 14
-	      IL_04c2:  ldloc.s 12
-	      IL_04c4:  ldstr ".resources"
-	      IL_04c9:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	      IL_04ce:  stloc.s 15
-	      IL_04d0:  ldloc.2 
-	      IL_04d1:  ldloc.s 15
-	      IL_04d3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	      IL_04d8:  pop 
-	      IL_04d9:  ldloc.s 12
-	      IL_04db:  ldloc.s 12
-	      IL_04dd:  ldarg.0 
-	      IL_04de:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_Extension()
-	      IL_04e3:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	      IL_04e8:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
-	      IL_04ed:  stloc.s 16
-	      IL_04ef:  ldloc.s 16
-	      IL_04f1:  brfalse IL_053e
-
-	      IL_04f6:  nop 
-	      IL_04f7:  ldloc.1 
-	      IL_04f8:  ldloc.s 16
-	      IL_04fa:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	      IL_04ff:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	      IL_0504:  brtrue IL_051d
-
-	      IL_0509:  nop 
-	      IL_050a:  ldloc.1 
-	      IL_050b:  ldloc.s 16
-	      IL_050d:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	      IL_0512:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	      IL_0517:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	      IL_051c:  nop 
-	      IL_051d:  ldloc.1 
-	      IL_051e:  ldloc.s 16
-	      IL_0520:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	      IL_0525:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	      IL_052a:  castclass [mscorlib]System.Collections.Hashtable
-	      IL_052f:  ldloc.s 14
-	      IL_0531:  ldloc.s 15
-	      IL_0533:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	      IL_0538:  nop 
-	      IL_0539:  br IL_0563
-
-	      IL_053e:  nop 
-	      IL_053f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	      IL_0544:  ldstr "{0},{1}"
-	      IL_0549:  ldloc.s 15
-	      IL_054b:  ldloc.s 14
-	      IL_054d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	      IL_0552:  stloc.s 17
-	      IL_0554:  ldarg.0 
-	      IL_0555:  ldloc.0 
-	      IL_0556:  ldstr "resource"
-	      IL_055b:  ldloc.s 17
-	      IL_055d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	      IL_0562:  nop 
-	      IL_0563:  nop 
-	      IL_0564:  ldloc.s 13
-	      IL_0566:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	      IL_056b:  brtrue IL_04ac
-
-	      IL_0570:  leave IL_058c
-
-	    } // end .try 2
-	    finally  { // 2
-	      IL_0575:  ldloc.s 13
-	      IL_0577:  isinst [mscorlib]System.IDisposable
-	      IL_057c:  dup 
-	      IL_057d:  stloc.s 18
-	      IL_057f:  brfalse IL_058b
-
-	      IL_0584:  ldloc.s 18
-	      IL_0586:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_058b:  endfinally 
-	    } // end handler 2
-	    IL_058c:  nop 
-	    IL_058d:  nop 
-	    IL_058e:  ldloc.s 10
-	    IL_0590:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Types.ResourceFileSet::get_NonResxFiles()
-	    IL_0595:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_059a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	    IL_059f:  stloc.s 20
-	    .try { // 3
-	      IL_05a1:  br IL_0647
-
-	      IL_05a6:  ldloc.s 20
-	      IL_05a8:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	      IL_05ad:  stloc.s 19
-	      IL_05af:  nop 
-	      IL_05b0:  ldarg.0 
-	      IL_05b1:  ldloc.s 10
-	      IL_05b3:  ldloc.s 19
-	      IL_05b5:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string)
-	      IL_05ba:  stloc.s 21
-	      IL_05bc:  ldloc.s 19
-	      IL_05be:  ldloc.s 19
-	      IL_05c0:  ldarg.0 
-	      IL_05c1:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_Extension()
-	      IL_05c6:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	      IL_05cb:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
-	      IL_05d0:  stloc.s 22
-	      IL_05d2:  ldloc.s 22
-	      IL_05d4:  brfalse IL_0621
-
-	      IL_05d9:  nop 
-	      IL_05da:  ldloc.1 
-	      IL_05db:  ldloc.s 22
-	      IL_05dd:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	      IL_05e2:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	      IL_05e7:  brtrue IL_0600
-
-	      IL_05ec:  nop 
-	      IL_05ed:  ldloc.1 
-	      IL_05ee:  ldloc.s 22
-	      IL_05f0:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	      IL_05f5:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	      IL_05fa:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	      IL_05ff:  nop 
-	      IL_0600:  ldloc.1 
-	      IL_0601:  ldloc.s 22
-	      IL_0603:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	      IL_0608:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	      IL_060d:  castclass [mscorlib]System.Collections.Hashtable
-	      IL_0612:  ldloc.s 21
-	      IL_0614:  ldloc.s 19
-	      IL_0616:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	      IL_061b:  nop 
-	      IL_061c:  br IL_0646
-
-	      IL_0621:  nop 
-	      IL_0622:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	      IL_0627:  ldstr "{0},{1}"
-	      IL_062c:  ldloc.s 19
-	      IL_062e:  ldloc.s 21
-	      IL_0630:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	      IL_0635:  stloc.s 23
-	      IL_0637:  ldarg.0 
-	      IL_0638:  ldloc.0 
-	      IL_0639:  ldstr "resource"
-	      IL_063e:  ldloc.s 23
-	      IL_0640:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	      IL_0645:  nop 
-	      IL_0646:  nop 
-	      IL_0647:  ldloc.s 20
-	      IL_0649:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	      IL_064e:  brtrue IL_05a6
-
-	      IL_0653:  leave IL_066f
-
-	    } // end .try 3
-	    finally  { // 3
-	      IL_0658:  ldloc.s 20
-	      IL_065a:  isinst [mscorlib]System.IDisposable
-	      IL_065f:  dup 
-	      IL_0660:  stloc.s 24
-	      IL_0662:  brfalse IL_066e
-
-	      IL_0667:  ldloc.s 24
-	      IL_0669:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_066e:  endfinally 
-	    } // end handler 3
-	    IL_066f:  nop 
-	    IL_0670:  ldloc.s 11
-	    IL_0672:  callvirt instance bool class NAnt.DotNet.Types.ResourceFileSetEnumerator::MoveNext()
-	    IL_0677:  brtrue IL_045f
-
-	    IL_067c:  leave IL_0698
-
-	  } // end .try 4
-	  finally  { // 4
-	    IL_0681:  ldloc.s 11
-	    IL_0683:  isinst [mscorlib]System.IDisposable
-	    IL_0688:  dup 
-	    IL_0689:  stloc.s 25
-	    IL_068b:  brfalse IL_0697
-
-	    IL_0690:  ldloc.s 25
-	    IL_0692:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0697:  endfinally 
-	  } // end handler 4
-	  IL_0698:  nop 
-	  IL_0699:  ldarg.0 
-	  IL_069a:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::get_Sources()
-	  IL_069f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_06a4:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_06a9:  stloc.s 27
-	  .try { // 5
-	    IL_06ab:  br IL_06d2
-
-	    IL_06b0:  ldloc.s 27
-	    IL_06b2:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_06b7:  stloc.s 26
-	    IL_06b9:  nop 
-	    IL_06ba:  ldloc.0 
-	    IL_06bb:  ldstr "\""
-	    IL_06c0:  ldloc.s 26
-	    IL_06c2:  ldstr "\""
-	    IL_06c7:  call string string::Concat(string, string, string)
-	    IL_06cc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_06d1:  nop 
-	    IL_06d2:  ldloc.s 27
-	    IL_06d4:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_06d9:  brtrue IL_06b0
-
-	    IL_06de:  leave IL_06fa
-
-	  } // end .try 5
-	  finally  { // 5
-	    IL_06e3:  ldloc.s 27
-	    IL_06e5:  isinst [mscorlib]System.IDisposable
-	    IL_06ea:  dup 
-	    IL_06eb:  stloc.s 28
-	    IL_06ed:  brfalse IL_06f9
-
-	    IL_06f2:  ldloc.s 28
-	    IL_06f4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_06f9:  endfinally 
-	  } // end handler 5
-	  IL_06fa:  ldloc.0 
-	  IL_06fb:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_0700:  ldarg.0 
-	  IL_0701:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_0706:  brfalse IL_0757
-
-	  IL_070b:  nop 
-	  IL_070c:  ldarg.0 
-	  IL_070d:  ldc.i4 3000
-	  IL_0712:  ldstr "String_ContentsOf"
-	  IL_0717:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_071c:  ldc.i4.1 
-	  IL_071d:  newarr [mscorlib]System.Object
-	  IL_0722:  dup 
-	  IL_0723:  ldc.i4.0 
-	  IL_0724:  ldarg.0 
-	  IL_0725:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	  IL_072a:  stelem.ref 
-	  IL_072b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0730:  ldarg.0 
-	  IL_0731:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	  IL_0736:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
-	  IL_073b:  stloc.s 29
-	  IL_073d:  ldarg.0 
-	  IL_073e:  ldc.i4 3000
-	  IL_0743:  ldloc.s 29
-	  IL_0745:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_074a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_074f:  ldloc.s 29
-	  IL_0751:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_0756:  nop 
-	  IL_0757:  ldarg.0 
-	  IL_0758:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_075d:  nop 
-	  IL_075e:  ldloc.1 
-	  IL_075f:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	  IL_0764:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	  IL_0769:  stloc.s 31
-	  .try { // 6
-	    IL_076b:  br IL_07db
-
-	    IL_0770:  ldloc.s 31
-	    IL_0772:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0777:  castclass [mscorlib]System.String
-	    IL_077c:  stloc.s 30
-	    IL_077e:  nop 
-	    IL_077f:  ldarg.0 
-	    IL_0780:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	    IL_0785:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	    IL_078a:  ldloc.s 30
-	    IL_078c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	    IL_0791:  stloc.s 32
-	    IL_0793:  ldloc.s 32
-	    IL_0795:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	    IL_079a:  pop 
-	    IL_079b:  ldloc.s 32
-	    IL_079d:  ldarg.0 
-	    IL_079e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	    IL_07a3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	    IL_07a8:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	    IL_07ad:  ldstr ".resources.dll"
-	    IL_07b2:  call string string::Concat(string, string)
-	    IL_07b7:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	    IL_07bc:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	    IL_07c1:  stloc.s 33
-	    IL_07c3:  ldarg.0 
-	    IL_07c4:  ldloc.1 
-	    IL_07c5:  ldloc.s 30
-	    IL_07c7:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	    IL_07cc:  castclass [mscorlib]System.Collections.Hashtable
-	    IL_07d1:  ldloc.s 33
-	    IL_07d3:  ldloc.s 30
-	    IL_07d5:  call instance void class NAnt.DotNet.Tasks.CompilerBase::LinkResourceAssembly(class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.IO.FileInfo, string)
-	    IL_07da:  nop 
-	    IL_07db:  ldloc.s 31
-	    IL_07dd:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_07e2:  brtrue IL_0770
-
-	    IL_07e7:  leave IL_0803
-
-	  } // end .try 6
-	  finally  { // 6
-	    IL_07ec:  ldloc.s 31
-	    IL_07ee:  isinst [mscorlib]System.IDisposable
-	    IL_07f3:  dup 
-	    IL_07f4:  stloc.s 34
-	    IL_07f6:  brfalse IL_0802
-
-	    IL_07fb:  ldloc.s 34
-	    IL_07fd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0802:  endfinally 
-	  } // end handler 6
-	  IL_0803:  nop 
-	  IL_0804:  leave IL_086c
-
-	} // end .try 8
-	finally  { // 8
-	  IL_0809:  nop 
-	  IL_080a:  nop 
-	  IL_080b:  ldloc.2 
-	  IL_080c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0811:  stloc.s 36
-	  .try { // 7
-	    IL_0813:  br IL_082a
-
-	    IL_0818:  ldloc.s 36
-	    IL_081a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_081f:  stloc.s 35
-	    IL_0821:  nop 
-	    IL_0822:  ldloc.s 35
-	    IL_0824:  call void class [mscorlib]System.IO.File::Delete(string)
-	    IL_0829:  nop 
-	    IL_082a:  ldloc.s 36
-	    IL_082c:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0831:  brtrue IL_0818
-
-	    IL_0836:  leave IL_0852
-
-	  } // end .try 7
-	  finally  { // 7
-	    IL_083b:  ldloc.s 36
-	    IL_083d:  isinst [mscorlib]System.IDisposable
-	    IL_0842:  dup 
-	    IL_0843:  stloc.s 37
-	    IL_0845:  brfalse IL_0851
-
-	    IL_084a:  ldloc.s 37
-	    IL_084c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0851:  endfinally 
-	  } // end handler 7
-	  IL_0852:  ldloc.0 
-	  IL_0853:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_0858:  ldarg.0 
-	  IL_0859:  ldfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	  IL_085e:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_0863:  ldarg.0 
-	  IL_0864:  ldnull 
-	  IL_0865:  stfld string NAnt.DotNet.Tasks.CompilerBase::_responseFileName
-	  IL_086a:  nop 
-	  IL_086b:  endfinally 
-	} // end handler 8
-	IL_086c:  nop 
-	IL_086d:  ret 
-    } // end of method CompilerBase::ExecuteTask
-
-    // method line 441
-    .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 0x317c
-	// Code size 636 (0x27c)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Globalization.CultureInfo	V_1,
-		string	V_2,
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_3,
-		string	V_4,
-		string	V_5,
-		string	V_6,
-		string[]	V_7,
-		int32	V_8,
-		int32	V_9,
-		string	V_10)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "resources"
-	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 "resourcePhysicalFile"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.3 
-	IL_0026:  brtrue IL_0037
-
-	IL_002b:  nop 
-	IL_002c:  ldstr "resourceLogicalFile"
-	IL_0031:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0036:  throw 
-	IL_0037:  ldarg.2 
-	IL_0038:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_003d:  brtrue IL_0064
-
-	IL_0042:  nop 
-	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0048:  ldstr "NA2009"
-	IL_004d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0052:  ldarg.2 
-	IL_0053:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0058:  ldarg.0 
-	IL_0059:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_005e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0063:  throw 
-	IL_0064:  ldnull 
-	IL_0065:  stloc.0 
-	IL_0066:  ldarg.3 
-	IL_0067:  ldarg.s 4
-	IL_0069:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
-	IL_006e:  stloc.1 
-	IL_006f:  ldarg.2 
-	IL_0070:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_0075:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_007a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_007f:  stloc.2 
-	IL_0080:  ldloc.2 
-	IL_0081:  brfalse IL_01c9
-
-	IL_0086:  ldloc.2 
-	IL_0087:  ldstr ".resx"
-	IL_008c:  call bool string::op_Equality(string, string)
-	IL_0091:  brtrue IL_00ab
-
-	IL_0096:  ldloc.2 
-	IL_0097:  ldstr ".resources"
-	IL_009c:  call bool string::op_Equality(string, string)
-	IL_00a1:  brtrue IL_01bb
-
-	IL_00a6:  br IL_01c9
-
-	IL_00ab:  ldarg.0 
-	IL_00ac:  ldarg.s 4
-	IL_00ae:  ldloc.1 
-	IL_00af:  callvirt instance class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage class NAnt.DotNet.Tasks.CompilerBase::GetResourceLinkage(string, class [mscorlib]System.Globalization.CultureInfo)
-	IL_00b4:  stloc.3 
-	IL_00b5:  ldloc.3 
-	IL_00b6:  brfalse IL_00c6
-
-	IL_00bb:  ldloc.3 
-	IL_00bc:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
-	IL_00c1:  brtrue IL_00e0
-
-	IL_00c6:  nop 
-	IL_00c7:  ldarg.1 
-	IL_00c8:  ldarg.2 
-	IL_00c9:  ldarg.3 
-	IL_00ca:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
-	IL_00cf:  ldstr "resources"
-	IL_00d4:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_00d9:  stloc.0 
-	IL_00da:  nop 
-	IL_00db:  br IL_01b6
-
-	IL_00e0:  nop 
-	IL_00e1:  ldloc.3 
-	IL_00e2:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasClassName()
-	IL_00e7:  brtrue IL_0170
-
-	IL_00ec:  nop 
-	IL_00ed:  ldarg.2 
-	IL_00ee:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_00f3:  stloc.s 4
-	IL_00f5:  ldloc.s 4
-	IL_00f7:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_00fc:  ldsfld string [mscorlib]System.String::Empty
-	IL_0101:  call bool string::op_Inequality(string, string)
-	IL_0106:  brfalse IL_0167
-
-	IL_010b:  nop 
-	IL_010c:  ldloc.s 4
-	IL_010e:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_0113:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0118:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_011d:  stloc.s 5
-	IL_011f:  nop 
-	IL_0120:  ldsfld string[] NAnt.DotNet.Tasks.CompilerBase::CodebehindExtensions
-	IL_0125:  stloc.s 7
-	IL_0127:  ldc.i4.0 
-	IL_0128:  stloc.s 8
-	IL_012a:  br IL_015b
-
-	IL_012f:  ldloc.s 7
-	IL_0131:  ldloc.s 8
-	IL_0133:  ldelem.ref 
-	IL_0134:  stloc.s 6
-	IL_0136:  nop 
-	IL_0137:  ldloc.s 6
-	IL_0139:  ldloc.s 5
-	IL_013b:  call bool string::op_Equality(string, string)
-	IL_0140:  brfalse IL_0154
-
-	IL_0145:  nop 
-	IL_0146:  ldloc.s 4
-	IL_0148:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_014d:  stloc.s 4
-	IL_014f:  br IL_0166
-
-	IL_0154:  nop 
-	IL_0155:  ldloc.s 8
-	IL_0157:  ldc.i4.1 
-	IL_0158:  add 
-	IL_0159:  stloc.s 8
-	IL_015b:  ldloc.s 8
-	IL_015d:  ldloc.s 7
-	IL_015f:  ldlen 
-	IL_0160:  conv.i4 
-	IL_0161:  blt IL_012f
-
-	IL_0166:  nop 
-	IL_0167:  ldloc.3 
-	IL_0168:  ldloc.s 4
-	IL_016a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_ClassName(string)
-	IL_016f:  nop 
-	IL_0170:  ldloc.3 
-	IL_0171:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
-	IL_0176:  brfalse IL_0193
-
-	IL_017b:  nop 
-	IL_017c:  ldloc.3 
-	IL_017d:  callvirt instance string object::ToString()
-	IL_0182:  ldstr ".resources"
-	IL_0187:  call string string::Concat(string, string)
-	IL_018c:  stloc.0 
-	IL_018d:  nop 
-	IL_018e:  br IL_01b5
-
-	IL_0193:  nop 
-	IL_0194:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0199:  ldstr "NA2010"
-	IL_019e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01a3:  ldarg.2 
-	IL_01a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01a9:  ldarg.0 
-	IL_01aa:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_01af:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_01b4:  throw 
-	IL_01b5:  nop 
-	IL_01b6:  br IL_0271
-
-	IL_01bb:  ldarg.1 
-	IL_01bc:  ldarg.2 
-	IL_01bd:  ldarg.3 
-	IL_01be:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
-	IL_01c3:  stloc.0 
-	IL_01c4:  br IL_0271
-
-	IL_01c9:  ldarg.2 
-	IL_01ca:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_01cf:  ldstr "licenses.licx"
-	IL_01d4:  call bool string::op_Equality(string, string)
-	IL_01d9:  brfalse IL_0200
-
-	IL_01de:  nop 
-	IL_01df:  ldarg.0 
-	IL_01e0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_01e5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01ea:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_01ef:  ldstr ".licenses"
-	IL_01f4:  call string string::Concat(string, string)
-	IL_01f9:  stloc.0 
-	IL_01fa:  nop 
-	IL_01fb:  br IL_026c
-
-	IL_0200:  nop 
-	IL_0201:  ldloc.1 
-	IL_0202:  brfalse IL_0260
-
-	IL_0207:  nop 
-	IL_0208:  ldarg.1 
-	IL_0209:  ldarg.2 
-	IL_020a:  ldarg.3 
-	IL_020b:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
-	IL_0210:  stloc.0 
-	IL_0211:  ldloc.0 
-	IL_0212:  ldstr "."
-	IL_0217:  ldloc.1 
-	IL_0218:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_021d:  call string string::Concat(string, string)
-	IL_0222:  callvirt instance int32 string::LastIndexOf(string)
-	IL_0227:  stloc.s 9
-	IL_0229:  ldloc.0 
-	IL_022a:  ldc.i4.0 
-	IL_022b:  ldloc.s 9
-	IL_022d:  callvirt instance string string::Substring(int32, int32)
-	IL_0232:  ldloc.0 
-	IL_0233:  ldloc.s 9
-	IL_0235:  callvirt instance string string::Substring(int32)
-	IL_023a:  ldstr "."
-	IL_023f:  ldloc.1 
-	IL_0240:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_0245:  call string string::Concat(string, string)
-	IL_024a:  ldsfld string [mscorlib]System.String::Empty
-	IL_024f:  callvirt instance string string::Replace(string, string)
-	IL_0254:  call string string::Concat(string, string)
-	IL_0259:  stloc.0 
-	IL_025a:  nop 
-	IL_025b:  br IL_026b
-
-	IL_0260:  nop 
-	IL_0261:  ldarg.1 
-	IL_0262:  ldarg.2 
-	IL_0263:  ldarg.3 
-	IL_0264:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
-	IL_0269:  stloc.0 
-	IL_026a:  nop 
-	IL_026b:  nop 
-	IL_026c:  br IL_0271
-
-	IL_0271:  ldloc.0 
-	IL_0272:  stloc.s 10
-	IL_0274:  br IL_0279
-
-	IL_0279:  ldloc.s 10
-	IL_027b:  ret 
-    } // end of method CompilerBase::GetManifestResourceName
-
-    // method line 442
-    .method public hidebysig 
-           instance default string GetManifestResourceName (class NAnt.DotNet.Types.ResourceFileSet resources, string resourceFile)  cil managed 
-    {
-        // Method begins at RVA 0x3404
-	// Code size 303 (0x12f)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.Globalization.CultureInfo	V_2,
-		int32	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "resources"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.2 
-	IL_0014:  brtrue IL_0025
-
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_0014:  stfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
 	IL_0019:  nop 
-	IL_001a:  ldstr "resourceFile"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.2 
-	IL_0026:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_002b:  brtrue IL_0052
-
-	IL_0030:  nop 
-	IL_0031:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0036:  ldstr "NA2009"
-	IL_003b:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0040:  ldarg.2 
-	IL_0041:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0046:  ldarg.0 
-	IL_0047:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_004c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0051:  throw 
-	IL_0052:  ldarg.2 
-	IL_0053:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_0058:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005d:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0062:  stloc.0 
-	IL_0063:  ldloc.0 
-	IL_0064:  brfalse IL_011b
-
-	IL_0069:  ldloc.0 
-	IL_006a:  ldstr ".resx"
-	IL_006f:  call bool string::op_Equality(string, string)
-	IL_0074:  brtrue IL_007e
-
-	IL_0079:  br IL_011b
-
-	IL_007e:  ldarg.2 
-	IL_007f:  ldarg.0 
-	IL_0080:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_Extension()
-	IL_0085:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_008a:  stloc.1 
-	IL_008b:  ldarg.2 
-	IL_008c:  ldloc.1 
-	IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
-	IL_0092:  stloc.2 
-	IL_0093:  ldloc.2 
-	IL_0094:  brfalse IL_010a
-
-	IL_0099:  nop 
-	IL_009a:  ldloc.1 
-	IL_009b:  ldstr "."
-	IL_00a0:  ldloc.2 
-	IL_00a1:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_00a6:  call string string::Concat(string, string)
-	IL_00ab:  callvirt instance int32 string::LastIndexOf(string)
-	IL_00b0:  stloc.3 
-	IL_00b1:  ldloc.3 
-	IL_00b2:  ldc.i4.0 
-	IL_00b3:  blt IL_0109
-
-	IL_00b8:  nop 
-	IL_00b9:  ldloc.3 
-	IL_00ba:  ldloc.2 
-	IL_00bb:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_00c0:  callvirt instance int32 string::get_Length()
-	IL_00c5:  add 
-	IL_00c6:  ldc.i4.1 
-	IL_00c7:  add 
-	IL_00c8:  ldloc.1 
-	IL_00c9:  callvirt instance int32 string::get_Length()
-	IL_00ce:  bge IL_00fd
-
-	IL_00d3:  nop 
-	IL_00d4:  ldloc.1 
-	IL_00d5:  ldc.i4.0 
-	IL_00d6:  ldloc.3 
-	IL_00d7:  callvirt instance string string::Substring(int32, int32)
-	IL_00dc:  ldloc.1 
-	IL_00dd:  ldloc.3 
-	IL_00de:  ldloc.2 
-	IL_00df:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_00e4:  callvirt instance int32 string::get_Length()
-	IL_00e9:  add 
-	IL_00ea:  ldc.i4.1 
-	IL_00eb:  add 
-	IL_00ec:  callvirt instance string string::Substring(int32)
-	IL_00f1:  call string string::Concat(string, string)
-	IL_00f6:  stloc.1 
-	IL_00f7:  nop 
-	IL_00f8:  br IL_0108
-
-	IL_00fd:  nop 
-	IL_00fe:  ldloc.1 
-	IL_00ff:  ldc.i4.0 
-	IL_0100:  ldloc.3 
-	IL_0101:  callvirt instance string string::Substring(int32, int32)
-	IL_0106:  stloc.1 
-	IL_0107:  nop 
-	IL_0108:  nop 
-	IL_0109:  nop 
-	IL_010a:  ldarg.0 
-	IL_010b:  ldarg.1 
-	IL_010c:  ldarg.2 
-	IL_010d:  ldarg.2 
-	IL_010e:  ldloc.1 
-	IL_010f:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string, string, string)
-	IL_0114:  stloc.s 4
-	IL_0116:  br IL_012c
-
-	IL_011b:  ldarg.0 
-	IL_011c:  ldarg.1 
-	IL_011d:  ldarg.2 
-	IL_011e:  ldarg.2 
-	IL_011f:  ldnull 
-	IL_0120:  call instance string class NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class NAnt.DotNet.Types.ResourceFileSet, string, string, string)
-	IL_0125:  stloc.s 4
-	IL_0127:  br IL_012c
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-	IL_012c:  ldloc.s 4
-	IL_012e:  ret 
-    } // end of method CompilerBase::GetManifestResourceName
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method ResGenTask::get_ProgramFileName
 
-    // method line 443
-    .method public virtual hidebysig newslot 
-           instance default class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage PerformSearchForResourceLinkage (class [mscorlib]System.IO.TextReader sr)  cil managed 
+    // method line 479
+    .method family virtual hidebysig 
+           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x3540
-	// Code size 314 (0x13a)
+        // Method begins at RVA 0xaf8c
+	// Code size 434 (0x1b2)
 	.maxstack 3
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		class [System]System.Text.RegularExpressions.Regex	V_1,
-		string	V_2,
-		string	V_3,
-		string	V_4,
-		class [System]System.Text.RegularExpressions.Match	V_5,
-		class [System]System.Text.RegularExpressions.Group	V_6,
-		class [System]System.Text.RegularExpressions.Capture	V_7,
-		class [mscorlib]System.Collections.IEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class [System]System.Text.RegularExpressions.Match	V_10,
-		class [System]System.Text.RegularExpressions.Group	V_11,
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_12)
+		class [NAnt.Core]NAnt.Core.Tasks.CopyTask	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:  callvirt instance class [System]System.Text.RegularExpressions.Regex class NAnt.DotNet.Tasks.CompilerBase::get_NamespaceRegex()
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [System]System.Text.RegularExpressions.Regex class NAnt.DotNet.Tasks.CompilerBase::get_ClassNameRegex()
-	IL_000e:  stloc.1 
-	IL_000f:  ldstr ""
-	IL_0014:  stloc.2 
-	IL_0015:  ldstr ""
-	IL_001a:  stloc.3 
-	IL_001b:  br IL_011d
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsAssemblyReferences()
+	IL_0007:  brtrue IL_01aa
 
-	IL_0020:  nop 
-	IL_0021:  ldarg.1 
-	IL_0022:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	IL_0027:  stloc.s 4
-	IL_0029:  ldloc.0 
-	IL_002a:  ldloc.s 4
-	IL_002c:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_0031:  stloc.s 5
-	IL_0033:  ldloc.s 5
-	IL_0035:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_003a:  brfalse IL_00d7
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_0013:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0018:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_001d:  brfalse IL_002d
 
-	IL_003f:  nop 
-	IL_0040:  ldloc.s 5
-	IL_0042:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_0047:  ldstr "namespace"
-	IL_004c:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_0051:  stloc.s 6
-	IL_0053:  ldloc.s 6
-	IL_0055:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_005a:  brfalse IL_00d6
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_RequiresAssemblyReferences()
+	IL_0028:  brtrue IL_003a
 
-	IL_005f:  nop 
-	IL_0060:  nop 
-	IL_0061:  ldloc.s 6
-	IL_0063:  callvirt instance class [System]System.Text.RegularExpressions.CaptureCollection class [System]System.Text.RegularExpressions.Group::get_Captures()
-	IL_0068:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.CaptureCollection::GetEnumerator()
-	IL_006d:  stloc.s 8
-	.try { // 0
-	  IL_006f:  br IL_00ad
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldarg.1 
+	IL_0030:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
+	IL_0035:  br IL_01b1
 
-	  IL_0074:  ldloc.s 8
-	  IL_0076:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_007b:  castclass [System]System.Text.RegularExpressions.Capture
-	  IL_0080:  stloc.s 7
-	  IL_0082:  nop 
-	  IL_0083:  ldloc.2 
-	  IL_0084:  ldloc.2 
-	  IL_0085:  callvirt instance int32 string::get_Length()
-	  IL_008a:  ldc.i4.0 
-	  IL_008b:  ble IL_009a
+	IL_003a:  ldarg.0 
+	IL_003b:  call class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Util.FileUtils::GetTempDirectory()
+	IL_0040:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0045:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::'.ctor'()
+	IL_004a:  stloc.0 
+	IL_004b:  ldloc.0 
+	IL_004c:  ldarg.0 
+	IL_004d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0052:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0057:  ldloc.0 
+	IL_0058:  ldarg.0 
+	IL_0059:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_005e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0063:  ldloc.0 
+	IL_0064:  ldarg.0 
+	IL_0065:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_006a:  ldloc.0 
+	IL_006b:  ldarg.0 
+	IL_006c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0071:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0076:  ldloc.0 
+	IL_0077:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_007c:  brtrue IL_008e
 
-	  IL_0090:  ldstr "."
-	  IL_0095:  br IL_009f
+	IL_0081:  nop 
+	IL_0082:  ldloc.0 
+	IL_0083:  ldc.i4 4000
+	IL_0088:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	IL_008d:  nop 
+	IL_008e:  ldloc.0 
+	IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0094:  ldloc.0 
+	IL_0095:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_009a:  ldloc.0 
+	IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_00a0:  ldloc.0 
+	IL_00a1:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_00a6:  ldloc.0 
+	IL_00a7:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_00b1:  ldloc.0 
+	IL_00b2:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	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.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_00c8:  ldarg.0 
+	IL_00c9:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_00ce:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_00d3:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_00d8:  ldloc.0 
+	IL_00d9:  ldc.i4.1 
+	IL_00da:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_Flatten(bool)
+	IL_00df:  nop 
+	IL_00e0:  ldarg.0 
+	IL_00e1:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_00e6:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00eb:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00f0:  stloc.2 
+	.try { // 0
+	  IL_00f1:  br IL_0111
 
-	  IL_009a:  ldstr ""
-	  IL_009f:  ldloc.s 7
-	  IL_00a1:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_00a6:  call string string::Concat(string, string, string)
-	  IL_00ab:  stloc.2 
-	  IL_00ac:  nop 
-	  IL_00ad:  ldloc.s 8
-	  IL_00af:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00b4:  brtrue IL_0074
+	  IL_00f6:  ldloc.2 
+	  IL_00f7:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00fc:  stloc.1 
+	  IL_00fd:  nop 
+	  IL_00fe:  ldloc.0 
+	  IL_00ff:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	  IL_0104:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_0109:  ldloc.1 
+	  IL_010a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_010f:  pop 
+	  IL_0110:  nop 
+	  IL_0111:  ldloc.2 
+	  IL_0112:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0117:  brtrue IL_00f6
 
-	  IL_00b9:  leave IL_00d5
+	  IL_011c:  leave IL_0135
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00be:  ldloc.s 8
-	  IL_00c0:  isinst [mscorlib]System.IDisposable
-	  IL_00c5:  dup 
-	  IL_00c6:  stloc.s 9
-	  IL_00c8:  brfalse IL_00d4
+	  IL_0121:  ldloc.2 
+	  IL_0122:  isinst [mscorlib]System.IDisposable
+	  IL_0127:  dup 
+	  IL_0128:  stloc.3 
+	  IL_0129:  brfalse IL_0134
 
-	  IL_00cd:  ldloc.s 9
-	  IL_00cf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d4:  endfinally 
+	  IL_012e:  ldloc.3 
+	  IL_012f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0134:  endfinally 
 	} // end handler 0
-	IL_00d5:  nop 
-	IL_00d6:  nop 
-	IL_00d7:  ldloc.1 
-	IL_00d8:  ldloc.s 4
-	IL_00da:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_00df:  stloc.s 10
-	IL_00e1:  ldloc.s 10
-	IL_00e3:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_00e8:  brfalse IL_011c
-
-	IL_00ed:  nop 
-	IL_00ee:  ldloc.s 10
-	IL_00f0:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_00f5:  ldstr "class"
-	IL_00fa:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_00ff:  stloc.s 11
-	IL_0101:  ldloc.s 11
-	IL_0103:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_0108:  brfalse IL_011b
-
-	IL_010d:  nop 
-	IL_010e:  ldloc.s 11
-	IL_0110:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_0115:  stloc.3 
-	IL_0116:  br IL_0129
-
-	IL_011b:  nop 
-	IL_011c:  nop 
-	IL_011d:  ldarg.1 
-	IL_011e:  callvirt instance int32 class [mscorlib]System.IO.TextReader::Peek()
-	IL_0123:  ldc.i4.m1 
-	IL_0124:  bgt IL_0020
-
-	IL_0129:  ldloc.2 
-	IL_012a:  ldloc.3 
-	IL_012b:  newobj instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::'.ctor'(string, string)
-	IL_0130:  stloc.s 12
-	IL_0132:  br IL_0137
+	IL_0135:  ldloc.0 
+	IL_0136:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_013b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	IL_0140:  ldarg.0 
+	IL_0141:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_0146:  ldstr "*"
+	IL_014b:  call string string::Concat(string, string)
+	IL_0150:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0155:  pop 
+	IL_0156:  ldloc.0 
+	IL_0157:  ldarg.0 
+	IL_0158:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_015d:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_ToDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0162:  ldloc.0 
+	IL_0163:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0168:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 1
+	  IL_016d:  nop 
+	  IL_016e:  ldloc.0 
+	  IL_016f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0174:  nop 
+	  IL_0175:  leave IL_0188
 
-	IL_0137:  ldloc.s 12
-	IL_0139:  ret 
-    } // end of method CompilerBase::PerformSearchForResourceLinkage
+	} // end .try 1
+	finally  { // 1
+	  IL_017a:  nop 
+	  IL_017b:  ldloc.0 
+	  IL_017c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0181:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0186:  nop 
+	  IL_0187:  endfinally 
+	} // end handler 1
+	IL_0188:  ldarg.0 
+	IL_0189:  ldarg.0 
+	IL_018a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_018f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0194:  ldarg.0 
+	IL_0195:  call instance string class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_019a:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_019f:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_01a4:  stfld string NAnt.DotNet.Tasks.ResGenTask::_programFileName
+	IL_01a9:  nop 
+	IL_01aa:  ldarg.0 
+	IL_01ab:  ldarg.1 
+	IL_01ac:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
+	IL_01b1:  ret 
+    } // end of method ResGenTask::PrepareProcess
 
-    // method line 444
-    .method family virtual hidebysig newslot 
-           instance default void WritePackageReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 480
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3698
-	// Code size 221 (0xdd)
+        // Method begins at RVA 0xb168
+	// Code size 756 (0x2f4)
 	.maxstack 7
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class NAnt.DotNet.Types.Package	V_1,
-		class NAnt.DotNet.Types.PackageEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		class [mscorlib]System.IO.FileInfo	V_2,
+		class [mscorlib]System.IO.FileInfo	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class NAnt.DotNet.Tasks.QualifiedResource	V_5,
+		class [mscorlib]System.Collections.IEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [mscorlib]System.IO.FileInfo	V_8,
+		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_9)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class NAnt.DotNet.Types.PackageCollection class NAnt.DotNet.Tasks.CompilerBase::get_Packages()
-	IL_000e:  callvirt instance class NAnt.DotNet.Types.PackageEnumerator class NAnt.DotNet.Types.PackageCollection::GetEnumerator()
-	IL_0013:  stloc.2 
-	.try { // 0
-	  IL_0014:  br IL_004e
-
-	  IL_0019:  ldloc.2 
-	  IL_001a:  callvirt instance class NAnt.DotNet.Types.Package class NAnt.DotNet.Types.PackageEnumerator::get_Current()
-	  IL_001f:  stloc.1 
-	  IL_0020:  nop 
-	  IL_0021:  ldloc.1 
-	  IL_0022:  callvirt instance bool class NAnt.DotNet.Types.Package::get_IfDefined()
-	  IL_0027:  brfalse IL_004d
-
-	  IL_002c:  ldloc.1 
-	  IL_002d:  callvirt instance bool class NAnt.DotNet.Types.Package::get_UnlessDefined()
-	  IL_0032:  brtrue IL_004d
-
-	  IL_0037:  nop 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  ldloc.1 
-	  IL_003a:  callvirt instance string class NAnt.DotNet.Types.Package::get_PackageName()
-	  IL_003f:  ldc.i4.s 0x3b
-	  IL_0041:  ldc.i4.0 
-	  IL_0042:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_0047:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	  IL_004c:  nop 
-	  IL_004d:  nop 
-	  IL_004e:  ldloc.2 
-	  IL_004f:  callvirt instance bool class NAnt.DotNet.Types.PackageEnumerator::MoveNext()
-	  IL_0054:  brtrue IL_0019
-
-	  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_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
 
-	  IL_006b:  ldloc.3 
-	  IL_006c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0071:  endfinally 
-	} // end handler 0
-	IL_0072:  ldloc.0 
-	IL_0073:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0078:  brtrue IL_0083
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	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 class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_0034:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0039:  brtrue IL_005b
 
-	IL_007d:  nop 
-	IL_007e:  br IL_00dc
+	IL_003e:  nop 
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_004b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0050:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0055:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_005a:  nop 
+	IL_005b:  ldarg.0 
+	IL_005c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0061:  ldc.i4.0 
+	IL_0062:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
+	IL_0067:  ldarg.0 
+	IL_0068:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_006d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0072:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0077:  ldc.i4.0 
+	IL_0078:  bgt IL_008e
 
-	IL_0083:  ldarg.0 
-	IL_0084:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsPackageReferences()
-	IL_0089:  brfalse IL_00ac
+	IL_007d:  ldarg.0 
+	IL_007e:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
+	IL_0083:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0088:  ldc.i4.0 
+	IL_0089:  ble IL_018e
 
 	IL_008e:  nop 
 	IL_008f:  ldarg.0 
-	IL_0090:  ldarg.1 
-	IL_0091:  ldstr "pkg"
-	IL_0096:  ldstr ","
-	IL_009b:  ldloc.0 
-	IL_009c:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
-	IL_00a1:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_00a6:  nop 
-	IL_00a7:  br IL_00dc
-
-	IL_00ac:  nop 
-	IL_00ad:  ldarg.0 
-	IL_00ae:  ldc.i4 4000
-	IL_00b3:  ldstr "String_CompilerDoesNotSupportPackageReferences"
-	IL_00b8:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00bd:  ldc.i4.1 
-	IL_00be:  newarr [mscorlib]System.Object
-	IL_00c3:  dup 
-	IL_00c4:  ldc.i4.0 
-	IL_00c5:  ldarg.0 
-	IL_00c6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00cb:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_00d0:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_00d5:  stelem.ref 
-	IL_00d6:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00db:  nop 
-	IL_00dc:  ret 
-    } // end of method CompilerBase::WritePackageReferences
-
-    // method line 445
-    .method family virtual hidebysig newslot 
-           instance default void WriteWarningsAsError (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x3794
-	// Code size 516 (0x204)
-	.maxstack 7
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class NAnt.DotNet.Types.CompilerWarning	V_1,
-		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.DotNet.Types.CompilerWarning	V_4,
-		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::get_WarnAsError()
-	IL_0007:  brfalse IL_0031
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
-	IL_0013:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Types.WarningAsError::get_Includes()
-	IL_0018:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_001d:  brtrue IL_0030
+	IL_0090:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_OutputFile()
+	IL_0095:  brfalse IL_00b1
 
-	IL_0022:  nop 
-	IL_0023:  ldarg.0 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldstr "warnaserror"
-	IL_002a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_002f:  nop 
-	IL_0030:  nop 
-	IL_0031:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0036:  stloc.0 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
-	IL_003e:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Types.WarningAsError::get_Includes()
-	IL_0043:  callvirt instance class NAnt.DotNet.Types.CompilerWarningEnumerator class NAnt.DotNet.Types.CompilerWarningCollection::GetEnumerator()
-	IL_0048:  stloc.2 
+	IL_009a:  nop 
+	IL_009b:  ldstr "NA2026"
+	IL_00a0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00a5:  ldarg.0 
+	IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_00ab:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00b0:  throw 
+	IL_00b1:  nop 
+	IL_00b2:  ldarg.0 
+	IL_00b3:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_00b8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00bd:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00c2:  stloc.1 
 	.try { // 0
-	  IL_0049:  br IL_0083
-
-	  IL_004e:  ldloc.2 
-	  IL_004f:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current()
-	  IL_0054:  stloc.1 
-	  IL_0055:  nop 
-	  IL_0056:  ldloc.1 
-	  IL_0057:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_IfDefined()
-	  IL_005c:  brfalse IL_0082
-
-	  IL_0061:  ldloc.1 
-	  IL_0062:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined()
-	  IL_0067:  brtrue IL_0082
+	  IL_00c3:  br IL_0103
 
-	  IL_006c:  nop 
-	  IL_006d:  ldloc.0 
-	  IL_006e:  ldloc.1 
-	  IL_006f:  callvirt instance string class NAnt.DotNet.Types.CompilerWarning::get_Number()
-	  IL_0074:  ldc.i4.s 0x2c
-	  IL_0076:  ldc.i4.0 
-	  IL_0077:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_007c:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	  IL_0081:  nop 
-	  IL_0082:  nop 
-	  IL_0083:  ldloc.2 
-	  IL_0084:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarningEnumerator::MoveNext()
-	  IL_0089:  brtrue IL_004e
+	  IL_00c8:  ldloc.1 
+	  IL_00c9:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00ce:  stloc.0 
+	  IL_00cf:  nop 
+	  IL_00d0:  ldloc.0 
+	  IL_00d1:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_00d6:  stloc.2 
+	  IL_00d7:  ldarg.0 
+	  IL_00d8:  ldloc.2 
+	  IL_00d9:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	  IL_00de:  ldarg.0 
+	  IL_00df:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	  IL_00e4:  ldloc.0 
+	  IL_00e5:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string)
+	  IL_00ea:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_00ef:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_00f4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
+	  IL_00f9:  stloc.3 
+	  IL_00fa:  ldarg.0 
+	  IL_00fb:  ldloc.2 
+	  IL_00fc:  ldloc.3 
+	  IL_00fd:  call instance void class NAnt.DotNet.Tasks.ResGenTask::WriteCommandLineOptions(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
+	  IL_0102:  nop 
+	  IL_0103:  ldloc.1 
+	  IL_0104:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0109:  brtrue IL_00c8
 
-	  IL_008e:  leave IL_00a7
+	  IL_010e:  leave IL_0129
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0093:  ldloc.2 
-	  IL_0094:  isinst [mscorlib]System.IDisposable
-	  IL_0099:  dup 
-	  IL_009a:  stloc.3 
-	  IL_009b:  brfalse IL_00a6
+	  IL_0113:  ldloc.1 
+	  IL_0114:  isinst [mscorlib]System.IDisposable
+	  IL_0119:  dup 
+	  IL_011a:  stloc.s 4
+	  IL_011c:  brfalse IL_0128
 
-	  IL_00a0:  ldloc.3 
-	  IL_00a1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00a6:  endfinally 
+	  IL_0121:  ldloc.s 4
+	  IL_0123:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0128:  endfinally 
 	} // end handler 0
-	IL_00a7:  ldloc.0 
-	IL_00a8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00ad:  ldc.i4.0 
-	IL_00ae:  ble IL_0112
-
-	IL_00b3:  nop 
-	IL_00b4:  ldarg.0 
-	IL_00b5:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsWarnAsErrorList()
-	IL_00ba:  brfalse IL_00e1
-
-	IL_00bf:  nop 
-	IL_00c0:  ldarg.1 
-	IL_00c1:  ldstr "/warnaserror+:"
-	IL_00c6:  ldstr ","
-	IL_00cb:  ldloc.0 
-	IL_00cc:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
-	IL_00d1:  call string string::Concat(string, string)
-	IL_00d6:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(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_CompilerDoesNotSupportWarningsAsErrors"
-	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:  ldloc.0 
-	IL_0113:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0118:  nop 
-	IL_0119:  ldarg.0 
-	IL_011a:  callvirt instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
-	IL_011f:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Types.WarningAsError::get_Excludes()
-	IL_0124:  callvirt instance class NAnt.DotNet.Types.CompilerWarningEnumerator class NAnt.DotNet.Types.CompilerWarningCollection::GetEnumerator()
-	IL_0129:  stloc.s 5
+	IL_0129:  nop 
+	IL_012a:  ldarg.0 
+	IL_012b:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
+	IL_0130:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0135:  stloc.s 6
 	.try { // 1
-	  IL_012b:  br IL_016a
-
-	  IL_0130:  ldloc.s 5
-	  IL_0132:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current()
-	  IL_0137:  stloc.s 4
-	  IL_0139:  nop 
-	  IL_013a:  ldloc.s 4
-	  IL_013c:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_IfDefined()
-	  IL_0141:  brfalse IL_0169
-
-	  IL_0146:  ldloc.s 4
-	  IL_0148:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined()
-	  IL_014d:  brtrue IL_0169
+	  IL_0137:  br IL_0160
 
-	  IL_0152:  nop 
-	  IL_0153:  ldloc.0 
-	  IL_0154:  ldloc.s 4
-	  IL_0156:  callvirt instance string class NAnt.DotNet.Types.CompilerWarning::get_Number()
-	  IL_015b:  ldc.i4.s 0x2c
-	  IL_015d:  ldc.i4.0 
-	  IL_015e:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_0163:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	  IL_0168:  nop 
-	  IL_0169:  nop 
-	  IL_016a:  ldloc.s 5
-	  IL_016c:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarningEnumerator::MoveNext()
-	  IL_0171:  brtrue IL_0130
+	  IL_013c:  ldloc.s 6
+	  IL_013e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0143:  castclass NAnt.DotNet.Tasks.QualifiedResource
+	  IL_0148:  stloc.s 5
+	  IL_014a:  nop 
+	  IL_014b:  ldarg.0 
+	  IL_014c:  ldloc.s 5
+	  IL_014e:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Input()
+	  IL_0153:  ldloc.s 5
+	  IL_0155:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Output()
+	  IL_015a:  call instance void class NAnt.DotNet.Tasks.ResGenTask::WriteCommandLineOptions(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
+	  IL_015f:  nop 
+	  IL_0160:  ldloc.s 6
+	  IL_0162:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0167:  brtrue IL_013c
 
-	  IL_0176:  leave IL_0192
+	  IL_016c:  leave IL_0188
 
 	} // end .try 1
 	finally  { // 1
-	  IL_017b:  ldloc.s 5
-	  IL_017d:  isinst [mscorlib]System.IDisposable
-	  IL_0182:  dup 
-	  IL_0183:  stloc.s 6
-	  IL_0185:  brfalse IL_0191
+	  IL_0171:  ldloc.s 6
+	  IL_0173:  isinst [mscorlib]System.IDisposable
+	  IL_0178:  dup 
+	  IL_0179:  stloc.s 7
+	  IL_017b:  brfalse IL_0187
 
-	  IL_018a:  ldloc.s 6
-	  IL_018c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0191:  endfinally 
+	  IL_0180:  ldloc.s 7
+	  IL_0182:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0187:  endfinally 
 	} // end handler 1
-	IL_0192:  ldloc.0 
-	IL_0193:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0198:  ldc.i4.0 
-	IL_0199:  ble IL_01fd
-
-	IL_019e:  nop 
-	IL_019f:  ldarg.0 
-	IL_01a0:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsWarnAsErrorList()
-	IL_01a5:  brfalse IL_01cc
-
-	IL_01aa:  nop 
-	IL_01ab:  ldarg.1 
-	IL_01ac:  ldstr "/warnaserror-:"
-	IL_01b1:  ldstr ","
-	IL_01b6:  ldloc.0 
-	IL_01b7:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
-	IL_01bc:  call string string::Concat(string, string)
-	IL_01c1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_01c6:  nop 
-	IL_01c7:  br IL_01fc
-
-	IL_01cc:  nop 
-	IL_01cd:  ldarg.0 
-	IL_01ce:  ldc.i4 4000
-	IL_01d3:  ldstr "String_CompilerDoesNotSupportWarningsAsErrors"
-	IL_01d8:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01dd:  ldc.i4.1 
-	IL_01de:  newarr [mscorlib]System.Object
-	IL_01e3:  dup 
-	IL_01e4:  ldc.i4.0 
-	IL_01e5:  ldarg.0 
-	IL_01e6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_01eb:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_01f0:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_01f5:  stelem.ref 
-	IL_01f6:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_01fb:  nop 
-	IL_01fc:  nop 
-	IL_01fd:  ldloc.0 
-	IL_01fe:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0203:  ret 
-    } // end of method CompilerBase::WriteWarningsAsError
-
-    // method line 446
-    .method family virtual hidebysig newslot 
-           instance default void WriteNoWarnList (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x39c0
-	// Code size 255 (0xff)
-	.maxstack 7
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class NAnt.DotNet.Types.CompilerWarning	V_1,
-		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Tasks.CompilerBase::get_SuppressWarnings()
-	IL_000e:  callvirt instance class NAnt.DotNet.Types.CompilerWarningEnumerator class NAnt.DotNet.Types.CompilerWarningCollection::GetEnumerator()
-	IL_0013:  stloc.2 
-	.try { // 0
-	  IL_0014:  br IL_004e
-
-	  IL_0019:  ldloc.2 
-	  IL_001a:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current()
-	  IL_001f:  stloc.1 
-	  IL_0020:  nop 
-	  IL_0021:  ldloc.1 
-	  IL_0022:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_IfDefined()
-	  IL_0027:  brfalse IL_004d
-
-	  IL_002c:  ldloc.1 
-	  IL_002d:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined()
-	  IL_0032:  brtrue IL_004d
+	IL_0188:  nop 
+	IL_0189:  br IL_0281
 
-	  IL_0037:  nop 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  ldloc.1 
-	  IL_003a:  callvirt instance string class NAnt.DotNet.Types.CompilerWarning::get_Number()
-	  IL_003f:  ldc.i4.s 0x2c
-	  IL_0041:  ldc.i4.0 
-	  IL_0042:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_0047:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	  IL_004c:  nop 
-	  IL_004d:  nop 
-	  IL_004e:  ldloc.2 
-	  IL_004f:  callvirt instance bool class NAnt.DotNet.Types.CompilerWarningEnumerator::MoveNext()
-	  IL_0054:  brtrue IL_0019
+	IL_018e:  nop 
+	IL_018f:  ldarg.0 
+	IL_0190:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_0195:  brtrue IL_01b1
 
-	  IL_0059:  leave IL_0072
+	IL_019a:  nop 
+	IL_019b:  ldstr "NA2027"
+	IL_01a0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01a5:  ldarg.0 
+	IL_01a6:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_01ab:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_01b0:  throw 
+	IL_01b1:  ldarg.0 
+	IL_01b2:  ldarg.0 
+	IL_01b3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_01b8:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_01bd:  stloc.s 8
+	IL_01bf:  ldarg.0 
+	IL_01c0:  ldarg.0 
+	IL_01c1:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_01c6:  ldloc.s 8
+	IL_01c8:  callvirt instance bool class NAnt.DotNet.Tasks.ResGenTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
+	IL_01cd:  brfalse IL_0280
 
-	} // 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_01d2:  nop 
+	IL_01d3:  ldloc.s 8
+	IL_01d5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_01da:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_01df:  brtrue IL_01f2
 
-	  IL_006b:  ldloc.3 
-	  IL_006c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0071:  endfinally 
-	} // end handler 0
-	IL_0072:  ldarg.0 
-	IL_0073:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
-	IL_0078:  brfalse IL_0093
+	IL_01e4:  nop 
+	IL_01e5:  ldloc.s 8
+	IL_01e7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_01ec:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_01f1:  nop 
+	IL_01f2:  ldarg.0 
+	IL_01f3:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath()
+	IL_01f8:  brfalse IL_0252
 
-	IL_007d:  nop 
-	IL_007e:  ldloc.0 
-	IL_007f:  ldarg.0 
-	IL_0080:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
-	IL_0085:  ldc.i4.s 0x2c
-	IL_0087:  ldc.i4.0 
-	IL_0088:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_008d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0092:  nop 
-	IL_0093:  ldloc.0 
-	IL_0094:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0099:  ldc.i4.0 
-	IL_009a:  ble IL_00fe
+	IL_01fd:  nop 
+	IL_01fe:  ldarg.0 
+	IL_01ff:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences()
+	IL_0204:  brfalse IL_0221
 
-	IL_009f:  nop 
-	IL_00a0:  ldarg.0 
-	IL_00a1:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_SupportsNoWarnList()
-	IL_00a6:  brfalse IL_00cd
+	IL_0209:  nop 
+	IL_020a:  ldarg.0 
+	IL_020b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0210:  ldstr "/useSourcePath"
+	IL_0215:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_021a:  pop 
+	IL_021b:  nop 
+	IL_021c:  br IL_0251
 
-	IL_00ab:  nop 
-	IL_00ac:  ldarg.1 
-	IL_00ad:  ldstr "/nowarn:"
-	IL_00b2:  ldstr ","
-	IL_00b7:  ldloc.0 
-	IL_00b8:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::Join(string, class [System]System.Collections.Specialized.StringCollection)
-	IL_00bd:  call string string::Concat(string, string)
-	IL_00c2:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_00c7:  nop 
-	IL_00c8:  br IL_00fd
+	IL_0221:  nop 
+	IL_0222:  ldarg.0 
+	IL_0223:  ldc.i4 4000
+	IL_0228:  ldstr "String_ResourceCompilerDoesNotSupportExternalReferences"
+	IL_022d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0232:  ldc.i4.1 
+	IL_0233:  newarr [mscorlib]System.Object
+	IL_0238:  dup 
+	IL_0239:  ldc.i4.0 
+	IL_023a:  ldarg.0 
+	IL_023b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0240:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0245:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_024a:  stelem.ref 
+	IL_024b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0250:  nop 
+	IL_0251:  nop 
+	IL_0252:  ldarg.0 
+	IL_0253:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0258:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_025d:  ldstr " \"{0}\" \"{1}\""
+	IL_0262:  ldarg.0 
+	IL_0263:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_0268:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_026d:  ldloc.s 8
+	IL_026f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0274:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0279:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_027e:  pop 
+	IL_027f:  nop 
+	IL_0280:  nop 
+	IL_0281:  ldarg.0 
+	IL_0282:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0287:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_028c:  brfalse IL_02f3
 
-	IL_00cd:  nop 
-	IL_00ce:  ldarg.0 
-	IL_00cf:  ldc.i4 4000
-	IL_00d4:  ldstr "String_CompilerDoesNotSupportWarningsToSuppress"
-	IL_00d9:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00de:  ldc.i4.1 
-	IL_00df:  newarr [mscorlib]System.Object
-	IL_00e4:  dup 
-	IL_00e5:  ldc.i4.0 
-	IL_00e6:  ldarg.0 
-	IL_00e7:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00ec:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_00f1:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_00f6:  stelem.ref 
-	IL_00f7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00fc:  nop 
-	IL_00fd:  nop 
-	IL_00fe:  ret 
-    } // end of method CompilerBase::WriteNoWarnList
+	IL_0291:  nop 
+	.try { // 2
+	  IL_0292:  nop 
+	  IL_0293:  ldarg.0 
+	  IL_0294:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_0299:  nop 
+	  IL_029a:  leave IL_02f2
 
-    // method line 447
-    .method family virtual hidebysig newslot 
-           instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x3adc
-	// Code size 33 (0x21)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
-	IL_0007:  brfalse IL_0020
+	} // end .try 2
+	finally  { // 2
+	  IL_029f:  nop 
+	  IL_02a0:  ldarg.0 
+	  IL_02a1:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
+	  IL_02a6:  brfalse IL_02f0
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldstr "define"
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
-	IL_001a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_001f:  nop 
-	IL_0020:  ret 
-    } // end of method CompilerBase::WriteConditionalCompilationConstants
+	  IL_02ab:  nop 
+	  IL_02ac:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
+	  IL_02b1:  stloc.s 9
+	  IL_02b3:  ldloc.s 9
+	  IL_02b5:  ldarg.0 
+	  IL_02b6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_02bb:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	  IL_02c0:  ldloc.s 9
+	  IL_02c2:  ldarg.0 
+	  IL_02c3:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	  IL_02c8:  ldloc.s 9
+	  IL_02ca:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	  IL_02cf:  ldloc.s 9
+	  IL_02d1:  ldarg.0 
+	  IL_02d2:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
+	  IL_02d7:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_Directory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_02dc:  ldloc.s 9
+	  IL_02de:  ldc.i4 9999
+	  IL_02e3:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	  IL_02e8:  ldloc.s 9
+	  IL_02ea:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_02ef:  nop 
+	  IL_02f0:  nop 
+	  IL_02f1:  endfinally 
+	} // end handler 2
+	IL_02f2:  nop 
+	IL_02f3:  ret 
+    } // end of method ResGenTask::ExecuteTask
 
-    // method line 448
-    .method family virtual hidebysig newslot 
-           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 481
+    .method public hidebysig 
+           instance default void RemoveOutputs ()  cil managed 
     {
-        // Method begins at RVA 0x3b00
-	// Code size 83 (0x53)
+        // Method begins at RVA 0xb490
+	// Code size 281 (0x119)
 	.maxstack 4
 	.locals init (
 		string	V_0,
 		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class [mscorlib]System.IO.FileInfo	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.DotNet.Tasks.QualifiedResource	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [mscorlib]System.IO.FileInfo	V_7)
 	IL_0000:  nop 
 	IL_0001:  nop 
 	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	IL_0003:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
 	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
 	IL_000d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
 	IL_0012:  stloc.1 
 	.try { // 0
-	  IL_0013:  br IL_002e
+	  IL_0013:  br IL_005d
 
 	  IL_0018:  ldloc.1 
 	  IL_0019:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
 	  IL_001e:  stloc.0 
 	  IL_001f:  nop 
 	  IL_0020:  ldarg.0 
-	  IL_0021:  ldarg.1 
-	  IL_0022:  ldstr "addmodule"
-	  IL_0027:  ldloc.0 
-	  IL_0028:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	  IL_002d:  nop 
-	  IL_002e:  ldloc.1 
-	  IL_002f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0034:  brtrue IL_0018
-
-	  IL_0039:  leave IL_0052
-
-	} // end .try 0
-	finally  { // 0
-	  IL_003e:  ldloc.1 
-	  IL_003f:  isinst [mscorlib]System.IDisposable
-	  IL_0044:  dup 
-	  IL_0045:  stloc.2 
-	  IL_0046:  brfalse IL_0051
-
-	  IL_004b:  ldloc.2 
-	  IL_004c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0051:  endfinally 
-	} // end handler 0
-	IL_0052:  ret 
-    } // end of method CompilerBase::WriteModuleReferences
-
-    // method line 449
-    .method family virtual hidebysig newslot 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x3b70
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method CompilerBase::WriteOptions
-
-    // method line 450
-    .method family virtual hidebysig newslot 
-           instance default void WriteOption (class [mscorlib]System.IO.TextWriter writer, string name)  cil managed 
-    {
-        // Method begins at RVA 0x3b73
-	// 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::WriteLine(string, object)
-	IL_000d:  ret 
-    } // end of method CompilerBase::WriteOption
-
-    // method line 451
-    .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 0x3b84
-	// Code size 69 (0x45)
-	.maxstack 4
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  ldstr "\""
-	IL_0007:  callvirt instance bool string::StartsWith(string)
-	IL_000c:  brfalse IL_0021
-
-	IL_0011:  ldarg.3 
-	IL_0012:  ldstr "\""
-	IL_0017:  callvirt instance bool string::EndsWith(string)
-	IL_001c:  brtrue IL_0035
-
-	IL_0021:  nop 
-	IL_0022:  ldarg.1 
-	IL_0023:  ldstr "\"/{0}:{1}\""
-	IL_0028:  ldarg.2 
-	IL_0029:  ldarg.3 
-	IL_002a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
-	IL_002f:  nop 
-	IL_0030:  br IL_0044
-
-	IL_0035:  nop 
-	IL_0036:  ldarg.1 
-	IL_0037:  ldstr "/{0}:{1}"
-	IL_003c:  ldarg.2 
-	IL_003d:  ldarg.3 
-	IL_003e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
-	IL_0043:  nop 
-	IL_0044:  ret 
-    } // end of method CompilerBase::WriteOption
-
-    // method line 452
-    .method family virtual hidebysig newslot 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x3bd8
-	// Code size 1022 (0x3fe)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		string	V_1,
-		class NAnt.DotNet.Types.ResourceFileSet	V_2,
-		class NAnt.DotNet.Types.ResourceFileSetEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class [System]System.Collections.Specialized.StringCollection	V_5,
-		class [NAnt.Core]NAnt.Core.Types.Argument	V_6,
-		class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator	V_7,
-		string	V_8,
-		string	V_9,
-		int32	V_10,
-		class [mscorlib]System.IDisposable	V_11)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::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_03fc
-
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::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.CompilerBase::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_03fc
-
-	IL_006a:  ldarg.0 
-	IL_006b:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.CompilerBase::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.CompilerBase::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_03fc
-
-	IL_00b3:  ldarg.0 
-	IL_00b4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
-	IL_00b9:  brfalse IL_0109
-
-	IL_00be:  nop 
-	IL_00bf:  ldarg.0 
-	IL_00c0:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
-	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.CompilerBase::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_03fc
-
-	IL_0108:  nop 
-	IL_0109:  ldarg.0 
-	IL_010a:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	IL_010f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0114:  ldarg.0 
-	IL_0115:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_011a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_011f:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_0124:  stloc.1 
-	IL_0125:  ldloc.1 
-	IL_0126:  brfalse IL_0152
-
-	IL_012b:  nop 
-	IL_012c:  ldarg.0 
-	IL_012d:  ldc.i4 2000
-	IL_0132:  ldstr "String_FileHasBeenUpdated"
-	IL_0137:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_013c:  ldc.i4.1 
-	IL_013d:  newarr [mscorlib]System.Object
-	IL_0142:  dup 
-	IL_0143:  ldc.i4.0 
-	IL_0144:  ldloc.1 
-	IL_0145:  stelem.ref 
-	IL_0146:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_014b:  ldc.i4.1 
-	IL_014c:  stloc.0 
-	IL_014d:  br IL_03fc
-
-	IL_0152:  ldarg.0 
-	IL_0153:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
-	IL_0158:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_015d:  ldarg.0 
-	IL_015e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_0163:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0168:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_016d:  stloc.1 
-	IL_016e:  ldloc.1 
-	IL_016f:  brfalse IL_019b
-
-	IL_0174:  nop 
-	IL_0175:  ldarg.0 
-	IL_0176:  ldc.i4 2000
-	IL_017b:  ldstr "String_FileHasBeenUpdated"
-	IL_0180:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0185:  ldc.i4.1 
-	IL_0186:  newarr [mscorlib]System.Object
-	IL_018b:  dup 
-	IL_018c:  ldc.i4.0 
-	IL_018d:  ldloc.1 
-	IL_018e:  stelem.ref 
-	IL_018f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0194:  ldc.i4.1 
-	IL_0195:  stloc.0 
-	IL_0196:  br IL_03fc
-
-	IL_019b:  nop 
-	IL_019c:  ldarg.0 
-	IL_019d:  call instance class NAnt.DotNet.Types.ResourceFileSetCollection class NAnt.DotNet.Tasks.CompilerBase::get_ResourcesList()
-	IL_01a2:  callvirt instance class NAnt.DotNet.Types.ResourceFileSetEnumerator class NAnt.DotNet.Types.ResourceFileSetCollection::GetEnumerator()
-	IL_01a7:  stloc.3 
-	.try { // 0
-	  IL_01a8:  br IL_01fa
-
-	  IL_01ad:  ldloc.3 
-	  IL_01ae:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Types.ResourceFileSetEnumerator::get_Current()
-	  IL_01b3:  stloc.2 
-	  IL_01b4:  nop 
-	  IL_01b5:  ldloc.2 
-	  IL_01b6:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_01bb:  ldarg.0 
-	  IL_01bc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	  IL_01c1:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_01c6:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	  IL_01cb:  stloc.1 
-	  IL_01cc:  ldloc.1 
-	  IL_01cd:  brfalse IL_01f9
-
-	  IL_01d2:  nop 
-	  IL_01d3:  ldarg.0 
-	  IL_01d4:  ldc.i4 2000
-	  IL_01d9:  ldstr "String_FileHasBeenUpdated"
-	  IL_01de:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_01e3:  ldc.i4.1 
-	  IL_01e4:  newarr [mscorlib]System.Object
-	  IL_01e9:  dup 
-	  IL_01ea:  ldc.i4.0 
-	  IL_01eb:  ldloc.1 
-	  IL_01ec:  stelem.ref 
-	  IL_01ed:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_01f2:  ldc.i4.1 
-	  IL_01f3:  stloc.0 
-	  IL_01f4:  leave IL_03fc
-
-	  IL_01f9:  nop 
-	  IL_01fa:  ldloc.3 
-	  IL_01fb:  callvirt instance bool class NAnt.DotNet.Types.ResourceFileSetEnumerator::MoveNext()
-	  IL_0200:  brtrue IL_01ad
-
-	  IL_0205:  leave IL_0220
-
-	} // end .try 0
-	finally  { // 0
-	  IL_020a:  ldloc.3 
-	  IL_020b:  isinst [mscorlib]System.IDisposable
-	  IL_0210:  dup 
-	  IL_0211:  stloc.s 4
-	  IL_0213:  brfalse IL_021f
-
-	  IL_0218:  ldloc.s 4
-	  IL_021a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_021f:  endfinally 
-	} // end handler 0
-	IL_0220:  ldarg.0 
-	IL_0221:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
-	IL_0226:  brfalse IL_0276
-
-	IL_022b:  nop 
-	IL_022c:  ldarg.0 
-	IL_022d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon()
-	IL_0232:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0237:  ldarg.0 
-	IL_0238:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_023d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0242:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0247:  stloc.1 
-	IL_0248:  ldloc.1 
-	IL_0249:  brfalse IL_0275
-
-	IL_024e:  nop 
-	IL_024f:  ldarg.0 
-	IL_0250:  ldc.i4 2000
-	IL_0255:  ldstr "String_FileHasBeenUpdated"
-	IL_025a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_025f:  ldc.i4.1 
-	IL_0260:  newarr [mscorlib]System.Object
-	IL_0265:  dup 
-	IL_0266:  ldc.i4.0 
-	IL_0267:  ldloc.1 
-	IL_0268:  stelem.ref 
-	IL_0269:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_026e:  ldc.i4.1 
-	IL_026f:  stloc.0 
-	IL_0270:  br IL_03fc
-
-	IL_0275:  nop 
-	IL_0276:  ldarg.0 
-	IL_0277:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_027c:  brfalse IL_02cc
-
-	IL_0281:  nop 
-	IL_0282:  ldarg.0 
-	IL_0283:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_0288:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_028d:  ldarg.0 
-	IL_028e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_0293:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0298:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_029d:  stloc.1 
-	IL_029e:  ldloc.1 
-	IL_029f:  brfalse IL_02cb
-
-	IL_02a4:  nop 
-	IL_02a5:  ldarg.0 
-	IL_02a6:  ldc.i4 2000
-	IL_02ab:  ldstr "String_FileHasBeenUpdated"
-	IL_02b0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02b5:  ldc.i4.1 
-	IL_02b6:  newarr [mscorlib]System.Object
-	IL_02bb:  dup 
-	IL_02bc:  ldc.i4.0 
-	IL_02bd:  ldloc.1 
-	IL_02be:  stelem.ref 
-	IL_02bf:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_02c4:  ldc.i4.1 
-	IL_02c5:  stloc.0 
-	IL_02c6:  br IL_03fc
-
-	IL_02cb:  nop 
-	IL_02cc:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_02d1:  stloc.s 5
-	IL_02d3:  nop 
-	IL_02d4:  ldarg.0 
-	IL_02d5:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_02da:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::GetEnumerator()
-	IL_02df:  stloc.s 7
-	.try { // 1
-	  IL_02e1:  br IL_038d
-
-	  IL_02e6:  ldloc.s 7
-	  IL_02e8:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Argument class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::get_Current()
-	  IL_02ed:  stloc.s 6
-	  IL_02ef:  nop 
-	  IL_02f0:  ldloc.s 6
-	  IL_02f2:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_IfDefined()
-	  IL_02f7:  brfalse IL_038c
-
-	  IL_02fc:  ldloc.s 6
-	  IL_02fe:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Argument::get_UnlessDefined()
-	  IL_0303:  brtrue IL_038c
-
-	  IL_0308:  nop 
-	  IL_0309:  ldloc.s 6
-	  IL_030b:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Argument::get_Value()
-	  IL_0310:  stloc.s 8
-	  IL_0312:  ldloc.s 8
-	  IL_0314:  brfalse IL_038b
-
-	  IL_0319:  ldloc.s 8
-	  IL_031b:  ldstr "/res:"
-	  IL_0320:  callvirt instance bool string::StartsWith(string)
-	  IL_0325:  brtrue IL_033b
-
-	  IL_032a:  ldloc.s 8
-	  IL_032c:  ldstr "/resource:"
-	  IL_0331:  callvirt instance bool string::StartsWith(string)
-	  IL_0336:  brfalse IL_038b
-
-	  IL_033b:  nop 
-	  IL_033c:  ldloc.s 8
-	  IL_033e:  ldloc.s 8
-	  IL_0340:  ldc.i4.s 0x3a
-	  IL_0342:  callvirt instance int32 string::IndexOf(char)
-	  IL_0347:  ldc.i4.1 
-	  IL_0348:  add 
-	  IL_0349:  callvirt instance string string::Substring(int32)
-	  IL_034e:  stloc.s 9
-	  IL_0350:  ldloc.s 9
-	  IL_0352:  ldc.i4.s 0x2c
-	  IL_0354:  callvirt instance int32 string::IndexOf(char)
-	  IL_0359:  stloc.s 10
-	  IL_035b:  ldloc.s 10
-	  IL_035d:  ldc.i4.m1 
-	  IL_035e:  beq IL_0371
-
-	  IL_0363:  nop 
-	  IL_0364:  ldloc.s 9
-	  IL_0366:  ldc.i4.0 
-	  IL_0367:  ldloc.s 10
-	  IL_0369:  callvirt instance string string::Substring(int32, int32)
-	  IL_036e:  stloc.s 9
-	  IL_0370:  nop 
-	  IL_0371:  ldarg.0 
-	  IL_0372:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0377:  ldloc.s 9
-	  IL_0379:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
-	  IL_037e:  stloc.s 9
-	  IL_0380:  ldloc.s 5
-	  IL_0382:  ldloc.s 9
-	  IL_0384:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0389:  pop 
-	  IL_038a:  nop 
-	  IL_038b:  nop 
-	  IL_038c:  nop 
-	  IL_038d:  ldloc.s 7
-	  IL_038f:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.ArgumentEnumerator::MoveNext()
-	  IL_0394:  brtrue IL_02e6
-
-	  IL_0399:  leave IL_03b5
-
-	} // end .try 1
-	finally  { // 1
-	  IL_039e:  ldloc.s 7
-	  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 1
-	IL_03b5:  ldloc.s 5
-	IL_03b7:  ldarg.0 
-	IL_03b8:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_03bd:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_03c2:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_03c7:  stloc.1 
-	IL_03c8:  ldloc.1 
-	IL_03c9:  brfalse IL_03f5
-
-	IL_03ce:  nop 
-	IL_03cf:  ldarg.0 
-	IL_03d0:  ldc.i4 2000
-	IL_03d5:  ldstr "String_FileHasBeenUpdated"
-	IL_03da:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_03df:  ldc.i4.1 
-	IL_03e0:  newarr [mscorlib]System.Object
-	IL_03e5:  dup 
-	IL_03e6:  ldc.i4.0 
-	IL_03e7:  ldloc.1 
-	IL_03e8:  stelem.ref 
-	IL_03e9:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_03ee:  ldc.i4.1 
-	IL_03ef:  stloc.0 
-	IL_03f0:  br IL_03fc
-
-	IL_03f5:  ldc.i4.0 
-	IL_03f6:  stloc.0 
-	IL_03f7:  br IL_03fc
-
-	IL_03fc:  ldloc.0 
-	IL_03fd:  ret 
-    } // end of method CompilerBase::NeedsCompiling
-
-    // method line 453
-    .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 0x4000
-	// Code size 211 (0xd3)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_1,
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	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:  brtrue IL_0013
-
-	IL_000b:  nop 
-	IL_000c:  ldnull 
-	IL_000d:  stloc.2 
-	IL_000e:  br IL_00d1
-
-	.try { // 1
-	  .try { // 0
-	    IL_0013:  nop 
-	    IL_0014:  ldarg.1 
-	    IL_0015:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	    IL_001a:  ldc.i4.1 
-	    IL_001b:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	    IL_0020:  stloc.0 
-	    IL_0021:  ldarg.0 
-	    IL_0022:  ldloc.0 
-	    IL_0023:  callvirt instance class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage class NAnt.DotNet.Tasks.CompilerBase::PerformSearchForResourceLinkage(class [mscorlib]System.IO.TextReader)
-	    IL_0028:  stloc.1 
-	    IL_0029:  ldloc.1 
-	    IL_002a:  ldarg.2 
-	    IL_002b:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_Culture(class [mscorlib]System.Globalization.CultureInfo)
-	    IL_0030:  nop 
-	    IL_0031:  leave IL_006f
-
-	  } // end .try 0
-	  catch class [mscorlib]System.IO.FileNotFoundException { // 0
-	    IL_0036:  pop 
-	    IL_0037:  nop 
-	    IL_0038:  ldarg.0 
-	    IL_0039:  ldc.i4 1000
-	    IL_003e:  ldstr "String_DependentFileNotFound"
-	    IL_0043:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_0048:  ldc.i4.1 
-	    IL_0049:  newarr [mscorlib]System.Object
-	    IL_004e:  dup 
-	    IL_004f:  ldc.i4.0 
-	    IL_0050:  ldarg.1 
-	    IL_0051:  stelem.ref 
-	    IL_0052:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_0057:  ldnull 
-	    IL_0058:  stloc.2 
-	    IL_0059:  leave IL_00d1
-
-	  } // end handler 0
-	} // end .try 1
-	finally  { // 1
-	  IL_005e:  nop 
-	  IL_005f:  ldloc.0 
-	  IL_0060:  brfalse IL_006d
-
-	  IL_0065:  nop 
-	  IL_0066:  ldloc.0 
-	  IL_0067:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_006c:  nop 
-	  IL_006d:  nop 
-	  IL_006e:  endfinally 
-	} // end handler 1
-	IL_006f:  ldloc.1 
-	IL_0070:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
-	IL_0075:  brfalse IL_00a9
-
-	IL_007a:  nop 
-	IL_007b:  ldarg.0 
-	IL_007c:  ldc.i4 1000
-	IL_0081:  ldstr "String_FoundResourceLinkageInDependentFile"
-	IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_008b:  ldc.i4.2 
-	IL_008c:  newarr [mscorlib]System.Object
-	IL_0091:  dup 
-	IL_0092:  ldc.i4.0 
-	IL_0093:  ldloc.1 
-	IL_0094:  callvirt instance string object::ToString()
-	IL_0099:  stelem.ref 
-	IL_009a:  dup 
-	IL_009b:  ldc.i4.1 
-	IL_009c:  ldarg.1 
-	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:  nop 
-	IL_00a4:  br IL_00ca
-
-	IL_00a9:  nop 
-	IL_00aa:  ldarg.0 
-	IL_00ab:  ldc.i4 1000
-	IL_00b0:  ldstr "String_ResourceLinkageInDependentFileNotFound"
-	IL_00b5:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00ba:  ldc.i4.1 
-	IL_00bb:  newarr [mscorlib]System.Object
-	IL_00c0:  dup 
-	IL_00c1:  ldc.i4.0 
-	IL_00c2:  ldarg.1 
-	IL_00c3:  stelem.ref 
-	IL_00c4:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00c9:  nop 
-	IL_00ca:  ldloc.1 
-	IL_00cb:  stloc.2 
-	IL_00cc:  br IL_00d1
-
-	IL_00d1:  ldloc.2 
-	IL_00d2:  ret 
-    } // end of method CompilerBase::GetResourceLinkage
-
-    // method line 454
-    .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 0x40fc
-	// Code size 262 (0x106)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Tasks.AssemblyLinkerTask	V_0,
-		string	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		string	V_3,
-		class NAnt.DotNet.Types.EmbeddedResource	V_4,
-		class [mscorlib]System.IDisposable	V_5)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_001a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_001f:  ldloc.0 
-	IL_0020:  ldarg.0 
-	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0026:  ldloc.0 
-	IL_0027:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_002c:  ldloc.0 
-	IL_002d:  ldarg.2 
-	IL_002e:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_0033:  ldloc.0 
-	IL_0034:  ldarg.3 
-	IL_0035:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Culture(string)
-	IL_003a:  ldloc.0 
-	IL_003b:  ldstr "lib"
-	IL_0040:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputTarget(string)
-	IL_0045:  ldloc.0 
-	IL_0046:  ldarg.0 
-	IL_0047:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_OutputFile()
-	IL_004c:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_TemplateFile(class [mscorlib]System.IO.FileInfo)
-	IL_0051:  ldloc.0 
-	IL_0052:  ldarg.0 
-	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
-	IL_0058:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyFile(class [mscorlib]System.IO.FileInfo)
-	IL_005d:  ldloc.0 
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
-	IL_0064:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_KeyContainer(string)
-	IL_0069:  ldloc.0 
-	IL_006a:  ldarg.0 
-	IL_006b:  callvirt instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
-	IL_0070:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyLinkerTask::set_DelaySign(valuetype NAnt.DotNet.Types.DelaySign)
-	IL_0075:  nop 
-	IL_0076:  ldarg.1 
-	IL_0077:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_007c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0081:  stloc.2 
-	.try { // 0
-	  IL_0082:  br IL_00b9
+	  IL_0021:  ldloc.0 
+	  IL_0022:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	  IL_0027:  ldarg.0 
+	  IL_0028:  call instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	  IL_002d:  ldloc.0 
+	  IL_002e:  callvirt instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string)
+	  IL_0033:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0038:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_003d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
+	  IL_0042:  stloc.2 
+	  IL_0043:  ldloc.0 
+	  IL_0044:  ldloc.2 
+	  IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_004a:  call bool string::op_Inequality(string, string)
+	  IL_004f:  brfalse IL_005c
 
-	  IL_0087:  ldloc.2 
-	  IL_0088:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_008d:  castclass [mscorlib]System.String
-	  IL_0092:  stloc.1 
-	  IL_0093:  nop 
-	  IL_0094:  ldarg.1 
-	  IL_0095:  ldloc.1 
-	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_009b:  castclass [mscorlib]System.String
-	  IL_00a0:  stloc.3 
-	  IL_00a1:  ldloc.3 
-	  IL_00a2:  ldloc.1 
-	  IL_00a3:  newobj instance void class NAnt.DotNet.Types.EmbeddedResource::'.ctor'(string, string)
-	  IL_00a8:  stloc.s 4
-	  IL_00aa:  ldloc.0 
-	  IL_00ab:  callvirt instance class NAnt.DotNet.Types.EmbeddedResourceCollection class NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
-	  IL_00b0:  ldloc.s 4
-	  IL_00b2:  callvirt instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class NAnt.DotNet.Types.EmbeddedResource)
-	  IL_00b7:  pop 
-	  IL_00b8:  nop 
-	  IL_00b9:  ldloc.2 
-	  IL_00ba:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00bf:  brtrue IL_0087
+	  IL_0054:  nop 
+	  IL_0055:  ldloc.2 
+	  IL_0056:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Delete()
+	  IL_005b:  nop 
+	  IL_005c:  nop 
+	  IL_005d:  ldloc.1 
+	  IL_005e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0063:  brtrue IL_0018
 
-	  IL_00c4:  leave IL_00df
+	  IL_0068:  leave IL_0081
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00c9:  ldloc.2 
-	  IL_00ca:  isinst [mscorlib]System.IDisposable
-	  IL_00cf:  dup 
-	  IL_00d0:  stloc.s 5
-	  IL_00d2:  brfalse IL_00de
+	  IL_006d:  ldloc.1 
+	  IL_006e:  isinst [mscorlib]System.IDisposable
+	  IL_0073:  dup 
+	  IL_0074:  stloc.3 
+	  IL_0075:  brfalse IL_0080
 
-	  IL_00d7:  ldloc.s 5
-	  IL_00d9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00de:  endfinally 
+	  IL_007a:  ldloc.3 
+	  IL_007b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0080:  endfinally 
 	} // end handler 0
-	IL_00df:  ldarg.0 
-	IL_00e0:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00e5:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 1
-	  IL_00ea:  nop 
-	  IL_00eb:  ldloc.0 
-	  IL_00ec:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_00f1:  nop 
-	  IL_00f2:  leave IL_0105
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00f7:  nop 
-	  IL_00f8:  ldarg.0 
-	  IL_00f9:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00fe:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0103:  nop 
-	  IL_0104:  endfinally 
-	} // end handler 1
-	IL_0105:  ret 
-    } // end of method CompilerBase::LinkResourceAssembly
-
-    // method line 455
-    .method family hidebysig 
-           instance default void CompileResxResources (class [System]System.Collections.Specialized.StringCollection resxFiles)  cil managed 
-    {
-        // Method begins at RVA 0x422c
-	// Code size 375 (0x177)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Tasks.ResGenTask	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:  newobj instance void class NAnt.DotNet.Tasks.ResGenTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_001a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_001f:  ldloc.0 
-	IL_0020:  ldarg.0 
-	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0026:  ldloc.0 
-	IL_0027:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_002c:  ldloc.0 
-	IL_002d:  ldarg.0 
-	IL_002e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0033:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0038:  ldloc.0 
-	IL_0039:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_003e:  ldloc.0 
-	IL_003f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0044:  ldloc.0 
-	IL_0045:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_004a:  ldloc.0 
-	IL_004b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0055:  ldloc.0 
-	IL_0056:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_005b:  ldloc.0 
-	IL_005c:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0061:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0066:  ldloc.0 
-	IL_0067:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_006c:  ldarg.0 
-	IL_006d:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	IL_0072:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0077:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_007c:  ldloc.0 
-	IL_007d:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
+	IL_0081:  nop 
 	IL_0082:  ldarg.0 
-	IL_0083:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	IL_0088:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_008d:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0092:  ldloc.0 
-	IL_0093:  callvirt instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences()
-	IL_0098:  brfalse IL_00a6
-
-	IL_009d:  nop 
-	IL_009e:  ldloc.0 
-	IL_009f:  ldc.i4.1 
-	IL_00a0:  callvirt instance void class NAnt.DotNet.Tasks.ResGenTask::set_UseSourcePath(bool)
-	IL_00a5:  nop 
-	IL_00a6:  nop 
-	IL_00a7:  ldarg.0 
-	IL_00a8:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_References()
-	IL_00ad:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00b2:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00b7:  stloc.2 
-	.try { // 0
-	  IL_00b8:  br IL_00d8
-
-	  IL_00bd:  ldloc.2 
-	  IL_00be:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00c3:  stloc.1 
-	  IL_00c4:  nop 
-	  IL_00c5:  ldloc.0 
-	  IL_00c6:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	  IL_00cb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_00d0:  ldloc.1 
-	  IL_00d1:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00d6:  pop 
-	  IL_00d7:  nop 
-	  IL_00d8:  ldloc.2 
-	  IL_00d9:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00de:  brtrue IL_00bd
-
-	  IL_00e3:  leave IL_00fc
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00e8:  ldloc.2 
-	  IL_00e9:  isinst [mscorlib]System.IDisposable
-	  IL_00ee:  dup 
-	  IL_00ef:  stloc.3 
-	  IL_00f0:  brfalse IL_00fb
-
-	  IL_00f5:  ldloc.3 
-	  IL_00f6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00fb:  endfinally 
-	} // end handler 0
-	IL_00fc:  nop 
-	IL_00fd:  ldarg.1 
-	IL_00fe:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0103:  stloc.s 5
+	IL_0083:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
+	IL_0088:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_008d:  stloc.s 5
 	.try { // 1
-	  IL_0105:  br IL_0128
+	  IL_008f:  br IL_00b0
 
-	  IL_010a:  ldloc.s 5
-	  IL_010c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0111:  stloc.s 4
-	  IL_0113:  nop 
-	  IL_0114:  ldloc.0 
-	  IL_0115:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Resources()
-	  IL_011a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_011f:  ldloc.s 4
-	  IL_0121:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0126:  pop 
-	  IL_0127:  nop 
-	  IL_0128:  ldloc.s 5
-	  IL_012a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_012f:  brtrue IL_010a
+	  IL_0094:  ldloc.s 5
+	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_009b:  castclass NAnt.DotNet.Tasks.QualifiedResource
+	  IL_00a0:  stloc.s 4
+	  IL_00a2:  nop 
+	  IL_00a3:  ldloc.s 4
+	  IL_00a5:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.QualifiedResource::get_Output()
+	  IL_00aa:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Delete()
+	  IL_00af:  nop 
+	  IL_00b0:  ldloc.s 5
+	  IL_00b2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00b7:  brtrue IL_0094
 
-	  IL_0134:  leave IL_0150
+	  IL_00bc:  leave IL_00d8
 
 	} // end .try 1
 	finally  { // 1
-	  IL_0139:  ldloc.s 5
-	  IL_013b:  isinst [mscorlib]System.IDisposable
-	  IL_0140:  dup 
-	  IL_0141:  stloc.s 6
-	  IL_0143:  brfalse IL_014f
+	  IL_00c1:  ldloc.s 5
+	  IL_00c3:  isinst [mscorlib]System.IDisposable
+	  IL_00c8:  dup 
+	  IL_00c9:  stloc.s 6
+	  IL_00cb:  brfalse IL_00d7
 
-	  IL_0148:  ldloc.s 6
-	  IL_014a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_014f:  endfinally 
+	  IL_00d0:  ldloc.s 6
+	  IL_00d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d7:  endfinally 
 	} // end handler 1
-	IL_0150:  ldarg.0 
-	IL_0151:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0156:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 2
-	  IL_015b:  nop 
-	  IL_015c:  ldloc.0 
-	  IL_015d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0162:  nop 
-	  IL_0163:  leave IL_0176
-
-	} // end .try 2
-	finally  { // 2
-	  IL_0168:  nop 
-	  IL_0169:  ldarg.0 
-	  IL_016a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_016f:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0174:  nop 
-	  IL_0175:  endfinally 
-	} // end handler 2
-	IL_0176:  ret 
-    } // end of method CompilerBase::CompileResxResources
-
-    // method line 456
-    .method public static hidebysig 
-           default class [mscorlib]System.Globalization.CultureInfo GetResourceCulture (string resourceFile, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x43d8
-	// Code size 140 (0x8c)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Globalization.CultureInfo	V_1,
-		int32	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  brfalse IL_0034
-
-	IL_000e:  ldarg.1 
-	IL_000f:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0014:  brfalse IL_0034
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.1 
-	IL_001b:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0020:  ldloc.0 
-	IL_0021:  call bool string::op_Equality(string, string)
-	IL_0026:  brfalse IL_0033
-
-	IL_002b:  nop 
-	IL_002c:  ldnull 
-	IL_002d:  stloc.1 
-	IL_002e:  br IL_008a
-
-	IL_0033:  nop 
-	IL_0034:  ldloc.0 
-	IL_0035:  ldc.i4.s 0x2e
-	IL_0037:  callvirt instance int32 string::LastIndexOf(char)
-	IL_003c:  stloc.2 
-	IL_003d:  ldloc.2 
-	IL_003e:  ldc.i4.0 
-	IL_003f:  blt IL_0083
-
-	IL_0044:  ldloc.2 
-	IL_0045:  ldloc.0 
-	IL_0046:  callvirt instance int32 string::get_Length()
-	IL_004b:  bgt IL_0083
-
-	IL_0050:  nop 
-	IL_0051:  ldloc.0 
-	IL_0052:  ldloc.2 
-	IL_0053:  ldc.i4.1 
-	IL_0054:  add 
-	IL_0055:  ldloc.0 
-	IL_0056:  callvirt instance int32 string::get_Length()
-	IL_005b:  ldloc.2 
-	IL_005c:  ldc.i4.1 
-	IL_005d:  add 
-	IL_005e:  sub 
-	IL_005f:  callvirt instance string string::Substring(int32, int32)
-	IL_0064:  stloc.3 
-	IL_0065:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.DotNet.Tasks.CompilerBase::CultureNames
-	IL_006a:  ldloc.3 
-	IL_006b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_0070:  brfalse IL_0082
-
-	IL_0075:  nop 
-	IL_0076:  ldloc.3 
-	IL_0077:  newobj instance void class [mscorlib]System.Globalization.CultureInfo::'.ctor'(string)
-	IL_007c:  stloc.1 
-	IL_007d:  br IL_008a
-
-	IL_0082:  nop 
-	IL_0083:  ldnull 
-	IL_0084:  stloc.1 
-	IL_0085:  br IL_008a
-
-	IL_008a:  ldloc.1 
-	IL_008b:  ret 
-    } // end of method CompilerBase::GetResourceCulture
-
-	.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.CompilerBase::get_Debug () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Debug (bool '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.CompilerBase::get_OutputFile () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string OutputTarget ()
-	{
-		.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.CompilerBase::get_OutputTarget () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_OutputTarget (string 'value') 
-	}
-	.property instance string Define ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 64 65 66 69 6E 65 00 00 ) // ...define..
-
-		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_Define () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Define (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Win32Icon ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 77 69 6E 33 32 69 63 6F 6E 00 00 ) // ...win32icon..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::get_Win32Icon () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Win32Res ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 77 69 6E 33 32 72 65 73 00 00 ) // ...win32res..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CompilerBase::get_Win32Res () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Win32Res (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool WarnAsError ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 77 61 72 6E 61 73 65 72 72 6F 72 00 00 ) // ...warnaserror..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_WarnAsError () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_WarnAsError (bool 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 77 61 72 6E 61 73 65 72 72 6F 72 00 00 ) // ...warnaserror..
-
-		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError () 
-	}
-	.property instance string NoWarn ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6E 6F 77 61 72 6E 00 00 ) // ...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.CompilerBase::get_NoWarn () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_NoWarn (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.CompilerWarningCollection SuppressWarnings ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 06 6E 6F 77 61 72 6E 07 77 61 72 6E 69 6E   // ...nowarn.warnin
-		67 00 00                                        ) // g..
-
-		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.CompilerBase::get_SuppressWarnings () 
-	}
-	.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.CompilerBase::get_ForceRebuild () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_ForceRebuild (bool 'value') 
-	}
-	.property instance string MainType ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6E 00 00 ) // ...main..
-
-		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_MainType () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_MainType (string '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.CompilerBase::get_KeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_KeyContainer (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.CompilerBase::get_KeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance valuetype NAnt.DotNet.Types.DelaySign 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..
-
-		.get instance default valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.CompilerBase::get_DelaySign () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Lib ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 03 6C 69 62 00 00 ) // ...lib..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 3C 55 73 65 20 74 68 65 20 3C 6C 69 62 3E   // ..<Use the <lib>
-		20 65 6C 65 6D 65 6E 74 20 69 6E 20 3C 72 65 66   //  element in <ref
-		65 72 65 6E 63 65 73 3E 20 61 6E 64 20 3C 6D 6F   // erences> and <mo
-		64 75 6C 65 73 3E 20 69 6E 73 74 65 61 64 2E 00   // dules> instead..
-		00 00                                           ) // ..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.CompilerBase::get_Lib () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Lib (class [NAnt.Core]NAnt.Core.Types.FileSet '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.CompilerBase::get_References () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.PackageCollection Packages ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 0E 70 6B 67 2D 72 65 66 65 72 65 6E 63 65   // ...pkg-reference
-		73 07 70 61 63 6B 61 67 65 00 00                ) // s.package..
-
-		.get instance default class NAnt.DotNet.Types.PackageCollection NAnt.DotNet.Tasks.CompilerBase::get_Packages () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Packages (class NAnt.DotNet.Types.PackageCollection 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.ResourceFileSetCollection ResourcesList ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 09 72 65 73 6F 75 72 63 65 73 00 00 ) // ...resources..
-
-		.get instance default class NAnt.DotNet.Types.ResourceFileSetCollection NAnt.DotNet.Tasks.CompilerBase::get_ResourcesList () 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet Modules ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 6D 6F 64 75 6C 65 73 00 00 ) // ...modules..
-
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.CompilerBase::get_Modules () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Modules (class NAnt.DotNet.Types.AssemblyFileSet '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.CompilerBase::get_Sources () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance bool SupportsPackageReferences ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 19 73 75 70 70 6F 72 74 73 70 61 63 6B 61   // ...supportspacka
-		67 65 72 65 66 65 72 65 6E 63 65 73 00 00       ) // gereferences..
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsPackageReferences () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsPackageReferences (bool 'value') 
-	}
-	.property instance bool SupportsWarnAsErrorList ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 17 73 75 70 70 6F 72 74 73 77 61 72 6E 61   // ...supportswarna
-		73 65 72 72 6F 72 6C 69 73 74 00 00             ) // serrorlist..
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsWarnAsErrorList () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsWarnAsErrorList (bool 'value') 
-	}
-	.property instance bool SupportsNoWarnList ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 12 73 75 70 70 6F 72 74 73 6E 6F 77 61 72   // ...supportsnowar
-		6E 6C 69 73 74 00 00                            ) // nlist..
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsNoWarnList () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsNoWarnList (bool 'value') 
-	}
-	.property instance bool SupportsKeyContainer ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 14 73 75 70 70 6F 72 74 73 6B 65 79 63 6F   // ...supportskeyco
-		6E 74 61 69 6E 65 72 00 00                      ) // ntainer..
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsKeyContainer (bool 'value') 
-	}
-	.property instance bool SupportsKeyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 0F 73 75 70 70 6F 72 74 73 6B 65 79 66 69   // ...supportskeyfi
-		6C 65 00 00                                     ) // le..
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsKeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsKeyFile (bool 'value') 
-	}
-	.property instance bool SupportsDelaySign ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 11 73 75 70 70 6F 72 74 73 64 65 6C 61 79   // ...supportsdelay
-		73 69 67 6E 00 00                               ) // sign..
-
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase::get_SupportsDelaySign () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase::set_SupportsDelaySign (bool 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_Extension () 
-	}
-	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
-	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CompilerBase::get_ClassNameRegex () 
-	}
-	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
-	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CompilerBase::get_NamespaceRegex () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.CompilerBase::get_ProgramArguments () 
-	}
-  .class nested public auto ansi beforefieldinit ResourceLinkage
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _namespaceName
-    .field  private  string _className
-    .field  private  class [mscorlib]System.Globalization.CultureInfo _culture
-
-    // method line 457
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string namespaceName, string className)  cil managed 
-    {
-        // Method begins at RVA 0x4470
-	// 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 string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
-	IL_0015:  ret 
-    } // end of method ResourceLinkage::.ctor
-
-    // method line 458
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x4488
-	// Code size 146 (0x92)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid()
-	IL_0007:  brtrue IL_0018
-
-	IL_000c:  nop 
-	IL_000d:  ldsfld string [mscorlib]System.String::Empty
-	IL_0012:  stloc.1 
-	IL_0013:  br IL_0090
-
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasNamespaceName()
-	IL_001e:  brfalse IL_005c
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasClassName()
-	IL_002a:  brfalse IL_004d
-
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName()
-	IL_0036:  ldstr "."
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_ClassName()
-	IL_0041:  call string string::Concat(string, string, string)
-	IL_0046:  stloc.0 
-	IL_0047:  nop 
-	IL_0048:  br IL_0056
-
-	IL_004d:  nop 
-	IL_004e:  ldarg.0 
-	IL_004f:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName()
-	IL_0054:  stloc.0 
-	IL_0055:  nop 
-	IL_0056:  nop 
-	IL_0057:  br IL_0065
-
-	IL_005c:  nop 
-	IL_005d:  ldarg.0 
-	IL_005e:  call instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_ClassName()
-	IL_0063:  stloc.0 
-	IL_0064:  nop 
-	IL_0065:  ldarg.0 
-	IL_0066:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_Culture()
-	IL_006b:  brfalse IL_0089
-
-	IL_0070:  nop 
-	IL_0071:  ldstr "{0}.{1}"
-	IL_0076:  ldloc.0 
-	IL_0077:  ldarg.0 
-	IL_0078:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_Culture()
-	IL_007d:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_0082:  call string string::Format(string, object, object)
-	IL_0087:  stloc.0 
-	IL_0088:  nop 
-	IL_0089:  ldloc.0 
-	IL_008a:  stloc.1 
-	IL_008b:  br IL_0090
-
-	IL_0090:  ldloc.1 
-	IL_0091:  ret 
-    } // end of method ResourceLinkage::ToString
-
-    // method line 459
-    .method public hidebysig specialname 
-           instance default bool get_IsValid ()  cil managed 
-    {
-        // Method begins at RVA 0x4528
-	// Code size 42 (0x2a)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	IL_000c:  brfalse IL_0021
-
-	IL_0011:  ldarg.0 
-	IL_0012:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
-	IL_0017:  call bool string::IsNullOrEmpty(string)
-	IL_001c:  ldc.i4.0 
-	IL_001d:  ceq 
-	IL_001f:  br.s IL_0022
-
-	IL_0021:  ldc.i4.1 
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_0028
-
-	IL_0028:  ldloc.0 
-	IL_0029:  ret 
-    } // end of method ResourceLinkage::get_IsValid
-
-    // method line 460
-    .method public hidebysig specialname 
-           instance default bool get_HasNamespaceName ()  cil managed 
-    {
-        // Method begins at RVA 0x4560
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	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 ResourceLinkage::get_HasNamespaceName
-
-    // method line 461
-    .method public hidebysig specialname 
-           instance default bool get_HasClassName ()  cil managed 
-    {
-        // Method begins at RVA 0x4584
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	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 ResourceLinkage::get_HasClassName
-
-    // method line 462
-    .method public hidebysig specialname 
-           instance default string get_NamespaceName ()  cil managed 
-    {
-        // Method begins at RVA 0x45a8
-	// 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.CompilerBase/ResourceLinkage::_namespaceName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ResourceLinkage::get_NamespaceName
-
-    // method line 463
-    .method public hidebysig specialname 
-           instance default void set_NamespaceName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x45c3
-	// Code size 26 (0x1a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  brfalse IL_0013
-
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance string string::Trim()
-	IL_000e:  br IL_0014
-
-	IL_0013:  ldnull 
-	IL_0014:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_namespaceName
-	IL_0019:  ret 
-    } // end of method ResourceLinkage::set_NamespaceName
-
-    // method line 464
-    .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
-    {
-        // Method begins at RVA 0x45e0
-	// 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.CompilerBase/ResourceLinkage::_className
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ResourceLinkage::get_ClassName
-
-    // method line 465
-    .method public hidebysig specialname 
-           instance default void set_ClassName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x45fb
-	// Code size 26 (0x1a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  brfalse IL_0013
-
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance string string::Trim()
-	IL_000e:  br IL_0014
-
-	IL_0013:  ldnull 
-	IL_0014:  stfld string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_className
-	IL_0019:  ret 
-    } // end of method ResourceLinkage::set_ClassName
-
-    // method line 466
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
-    {
-        // Method begins at RVA 0x4618
-	// 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.DotNet.Tasks.CompilerBase/ResourceLinkage::_culture
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ResourceLinkage::get_Culture
-
-    // method line 467
-    .method public hidebysig specialname 
-           instance default void set_Culture (class [mscorlib]System.Globalization.CultureInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4633
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Globalization.CultureInfo NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::_culture
-	IL_0008:  ret 
-    } // end of method ResourceLinkage::set_Culture
-
-	.property instance bool IsValid ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_IsValid () 
-	}
-	.property instance bool HasNamespaceName ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasNamespaceName () 
-	}
-	.property instance bool HasClassName ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasClassName () 
-	}
-	.property instance string NamespaceName ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_NamespaceName (string 'value') 
-	}
-	.property instance string ClassName ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_ClassName () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_ClassName (string 'value') 
-	}
-	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
-	{
-		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_Culture () 
-		.set instance default void NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_Culture (class [mscorlib]System.Globalization.CultureInfo 'value') 
-	}
-  } // end of class ResourceLinkage
-
-  } // end of class NAnt.DotNet.Tasks.CompilerBase
-}
-
-.namespace NAnt.DotNet.Tasks
-{
-  .class public auto ansi beforefieldinit ScriptTask
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 73 63 72 69 70 74 00 00 ) // ...script..
-
-    .field  private  string _language
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
-    .field  private  string _mainClass
-    .field  private  string _rootClassName
-    .field  private  string _prefix
-    .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
-    .field  private  class [NAnt.Core]NAnt.Core.Types.RawXml _code
-    .field  private static initonly  string[] _defaultNamespaces
-    .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 468
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xb078
-	// Code size 58 (0x3a)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld string NAnt.DotNet.Tasks.ScriptTask::_language
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_000d:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::_references
-	IL_0012:  ldarg.0 
-	IL_0013:  ldstr ""
-	IL_0018:  stfld string NAnt.DotNet.Tasks.ScriptTask::_mainClass
-	IL_001d:  ldarg.0 
-	IL_001e:  ldstr "script"
-	IL_0023:  stfld string NAnt.DotNet.Tasks.ScriptTask::_prefix
-	IL_0028:  ldarg.0 
-	IL_0029:  newobj instance void class NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
-	IL_002e:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.ScriptTask::_imports
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0039:  ret 
-    } // end of method ScriptTask::.ctor
-
-    // method line 469
-    .method public hidebysig specialname 
-           instance default string get_Language ()  cil managed 
-    {
-        // Method begins at RVA 0xb0b4
-	// 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.ScriptTask::_language
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_00d8:  ldarg.0 
+	IL_00d9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_00de:  brfalse IL_0118
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ScriptTask::get_Language
+	IL_00e3:  nop 
+	IL_00e4:  ldarg.0 
+	IL_00e5:  ldarg.0 
+	IL_00e6:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_00eb:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::GetOutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_00f0:  stloc.s 7
+	IL_00f2:  ldarg.0 
+	IL_00f3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_InputFile()
+	IL_00f8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00fd:  ldloc.s 7
+	IL_00ff:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0104:  call bool string::op_Inequality(string, string)
+	IL_0109:  brfalse IL_0117
 
-    // method line 470
-    .method public hidebysig specialname 
-           instance default void set_Language (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb0cf
-	// 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.ScriptTask::_language
-	IL_000d:  ret 
-    } // end of method ScriptTask::set_Language
+	IL_010e:  nop 
+	IL_010f:  ldloc.s 7
+	IL_0111:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Delete()
+	IL_0116:  nop 
+	IL_0117:  nop 
+	IL_0118:  ret 
+    } // end of method ResGenTask::RemoveOutputs
 
-    // method line 471
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
+    // method line 482
+    .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 0xb0e0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xb5d4
+	// Code size 299 (0x12b)
+	.maxstack 7
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		bool	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::_references
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0007:  brtrue IL_0038
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ScriptTask::get_References
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldc.i4 2000
+	IL_0013:  ldstr "String_OutputFileDoesNotExist"
+	IL_0018:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  ldc.i4.1 
+	IL_001e:  newarr [mscorlib]System.Object
+	IL_0023:  dup 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  ldarg.2 
+	IL_0026:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002b:  stelem.ref 
+	IL_002c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0031:  ldc.i4.1 
+	IL_0032:  stloc.0 
+	IL_0033:  br IL_0129
 
-    // method line 472
-    .method public hidebysig specialname 
-           instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb0fb
-	// 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.ScriptTask::_references
-	IL_0008:  ret 
-    } // end of method ScriptTask::set_References
+	IL_0038:  ldarg.1 
+	IL_0039:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_003e:  ldarg.2 
+	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_0077
 
-    // method line 473
-    .method public hidebysig specialname 
-           instance default string get_MainClass ()  cil managed 
-    {
-        // Method begins at RVA 0xb108
-	// 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.ScriptTask::_mainClass
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  ldc.i4 2000
+	IL_0057:  ldstr "String_FileHasBeenUpdated"
+	IL_005c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0061:  ldc.i4.1 
+	IL_0062:  newarr [mscorlib]System.Object
+	IL_0067:  dup 
+	IL_0068:  ldc.i4.0 
+	IL_0069:  ldloc.1 
+	IL_006a:  stelem.ref 
+	IL_006b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0070:  ldc.i4.1 
+	IL_0071:  stloc.0 
+	IL_0072:  br IL_0129
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ScriptTask::get_MainClass
+	IL_0077:  ldarg.0 
+	IL_0078:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_007d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0082:  ldarg.2 
+	IL_0083:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0088:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_008d:  stloc.1 
+	IL_008e:  ldloc.1 
+	IL_008f:  brfalse IL_00bb
 
-    // method line 474
-    .method public hidebysig specialname 
-           instance default void set_MainClass (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb123
-	// 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.ScriptTask::_mainClass
-	IL_000d:  ret 
-    } // end of method ScriptTask::set_MainClass
+	IL_0094:  nop 
+	IL_0095:  ldarg.0 
+	IL_0096:  ldc.i4 2000
+	IL_009b:  ldstr "String_FileHasBeenUpdated"
+	IL_00a0:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00a5:  ldc.i4.1 
+	IL_00a6:  newarr [mscorlib]System.Object
+	IL_00ab:  dup 
+	IL_00ac:  ldc.i4.0 
+	IL_00ad:  ldloc.1 
+	IL_00ae:  stelem.ref 
+	IL_00af:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00b4:  ldc.i4.1 
+	IL_00b5:  stloc.0 
+	IL_00b6:  br IL_0129
 
-    // method line 475
-    .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
-    {
-        // Method begins at RVA 0xb134
-	// 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.ScriptTask::_prefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_00bb:  ldarg.1 
+	IL_00bc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
+	IL_00c1:  ldstr ".resx"
+	IL_00c6:  ldc.i4.1 
+	IL_00c7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00cc:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_00d1:  brtrue IL_0122
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ScriptTask::get_Prefix
+	IL_00d6:  nop 
+	IL_00d7:  ldarg.0 
+	IL_00d8:  ldarg.1 
+	IL_00d9:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.DotNet.Tasks.ResGenTask::GetExternalFileReferences(class [mscorlib]System.IO.FileInfo)
+	IL_00de:  stloc.2 
+	IL_00df:  ldloc.2 
+	IL_00e0:  brfalse IL_0121
 
-    // method line 476
-    .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb14f
-	// 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.ScriptTask::_prefix
-	IL_000d:  ret 
-    } // end of method ScriptTask::set_Prefix
+	IL_00e5:  nop 
+	IL_00e6:  ldloc.2 
+	IL_00e7:  ldarg.2 
+	IL_00e8:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_00f2:  stloc.1 
+	IL_00f3:  ldloc.1 
+	IL_00f4:  brfalse IL_0120
 
-    // method line 477
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
-    {
-        // Method begins at RVA 0xb160
-	// 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.ScriptTask::_imports
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_00f9:  nop 
+	IL_00fa:  ldarg.0 
+	IL_00fb:  ldc.i4 2000
+	IL_0100:  ldstr "String_FileHasBeenUpdated"
+	IL_0105:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_010a:  ldc.i4.1 
+	IL_010b:  newarr [mscorlib]System.Object
+	IL_0110:  dup 
+	IL_0111:  ldc.i4.0 
+	IL_0112:  ldloc.1 
+	IL_0113:  stelem.ref 
+	IL_0114:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0119:  ldc.i4.1 
+	IL_011a:  stloc.0 
+	IL_011b:  br IL_0129
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ScriptTask::get_Imports
+	IL_0120:  nop 
+	IL_0121:  nop 
+	IL_0122:  ldc.i4.0 
+	IL_0123:  stloc.0 
+	IL_0124:  br IL_0129
 
-    // method line 478
-    .method public hidebysig specialname 
-           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb17b
-	// 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.ScriptTask::_imports
-	IL_0008:  ret 
-    } // end of method ScriptTask::set_Imports
+	IL_0129:  ldloc.0 
+	IL_012a:  ret 
+    } // end of method ResGenTask::NeedsCompiling
 
-    // method line 479
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Code ()  cil managed 
+    // method line 483
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo GetOutputFile (class [mscorlib]System.IO.FileInfo file)  cil managed 
     {
-        // Method begins at RVA 0xb188
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xb70c
+	// Code size 110 (0x6e)
+	.maxstack 2
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.RawXml	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.ScriptTask::_code
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_OutputFile()
+	IL_0007:  brtrue IL_005c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ScriptTask::get_Code
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Tasks.ResGenTask::get_ToDirectory()
+	IL_0013:  brtrue IL_0021
 
-    // method line 480
-    .method public hidebysig specialname 
-           instance default void set_Code (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb1a3
-	// 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.ScriptTask::_code
-	IL_0008:  ret 
-    } // end of method ScriptTask::set_Code
+	IL_0018:  nop 
+	IL_0019:  ldarg.1 
+	IL_001a:  stloc.0 
+	IL_001b:  nop 
+	IL_001c:  br IL_003f
 
-    // method line 481
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0xb1b0
-	// Code size 41 (0x29)
-	.maxstack 5
-	.locals init (
-		valuetype [mscorlib]System.Guid	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "nant"
-	IL_0007:  call valuetype [mscorlib]System.Guid valuetype [mscorlib]System.Guid::NewGuid()
-	IL_000c:  stloc.0 
-	IL_000d:  ldloca.s 0
-	IL_000f:  ldstr "N"
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  call instance string valuetype [mscorlib]System.Guid::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_001e:  call string string::Concat(string, string)
-	IL_0023:  stfld string NAnt.DotNet.Tasks.ScriptTask::_rootClassName
-	IL_0028:  ret 
-    } // end of method ScriptTask::Initialize
+	IL_0021:  nop 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Tasks.ResGenTask::get_ToDirectory()
+	IL_0028:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002d:  ldarg.1 
+	IL_002e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_0033:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0038:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_003d:  stloc.0 
+	IL_003e:  nop 
+	IL_003f:  ldloc.0 
+	IL_0040:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0045:  ldarg.0 
+	IL_0046:  call instance string class NAnt.DotNet.Tasks.ResGenTask::get_TargetExt()
+	IL_004b:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_0050:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0055:  stloc.0 
+	IL_0056:  nop 
+	IL_0057:  br IL_0065
 
-    // method line 482
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	IL_005c:  nop 
+	IL_005d:  ldarg.0 
+	IL_005e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.ResGenTask::get_OutputFile()
+	IL_0063:  stloc.0 
+	IL_0064:  nop 
+	IL_0065:  ldloc.0 
+	IL_0066:  stloc.1 
+	IL_0067:  br IL_006c
+
+	IL_006c:  ldloc.1 
+	IL_006d:  ret 
+    } // end of method ResGenTask::GetOutputFile
+
+    // method line 484
+    .method private hidebysig 
+           instance default bool ReferencesThirdPartyAssemblies (string resourceFile)  cil managed 
     {
-        // Method begins at RVA 0xb1e8
-	// Code size 1226 (0x4ca)
-	.maxstack 7
+        // Method begins at RVA 0xb788
+	// Code size 133 (0x85)
+	.maxstack 4
 	.locals init (
-		class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo	V_0,
-		class [System]System.CodeDom.Compiler.ICodeCompiler	V_1,
-		class [System]System.CodeDom.Compiler.CompilerParameters	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.Reflection.Assembly	V_5,
-		class [mscorlib]System.Exception	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [System]System.Collections.Specialized.StringCollection	V_8,
-		class NAnt.DotNet.Types.NamespaceImport	V_9,
-		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_10,
-		class [mscorlib]System.IDisposable	V_11,
-		class [System]System.CodeDom.CodeCompileUnit	V_12,
-		class [mscorlib]System.IO.StringWriter	V_13,
-		string	V_14,
-		class [System]System.CodeDom.Compiler.CompilerResults	V_15,
-		class [mscorlib]System.Reflection.Assembly	V_16,
-		string	V_17,
-		class [System]System.CodeDom.Compiler.CompilerError	V_18,
-		class [mscorlib]System.Collections.IEnumerator	V_19,
-		class [mscorlib]System.IDisposable	V_20,
-		bool	V_21,
-		string	V_22,
-		class [mscorlib]System.Type	V_23,
-		class [mscorlib]System.Reflection.MethodInfo	V_24,
-		class [mscorlib]System.Reflection.ParameterInfo[]	V_25,
-		class [mscorlib]System.Exception	V_26)
+		bool	V_0,
+		class [mscorlib]System.IO.StreamReader	V_1,
+		class [System.Xml]System.Xml.XPath.XPathDocument	V_2,
+		int32	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_Language()
-	IL_0008:  call instance class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo class NAnt.DotNet.Tasks.ScriptTask::CreateCompilerInfo(string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ScriptTask::get_References()
-	IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0019:  brtrue IL_003b
-
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ScriptTask::get_References()
-	IL_0025:  ldarg.0 
-	IL_0026:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_002b:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0030:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0035:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_003a:  nop 
-	IL_003b:  ldloc.0 
-	IL_003c:  ldfld class [System]System.CodeDom.Compiler.ICodeCompiler NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::Compiler
-	IL_0041:  stloc.1 
-	IL_0042:  newobj instance void class [System]System.CodeDom.Compiler.CompilerParameters::'.ctor'()
-	IL_0047:  stloc.2 
-	IL_0048:  ldloc.2 
-	IL_0049:  ldc.i4.0 
-	IL_004a:  callvirt instance void class [System]System.CodeDom.Compiler.CompilerParameters::set_GenerateExecutable(bool)
-	IL_004f:  ldloc.2 
-	IL_0050:  ldc.i4.1 
-	IL_0051:  callvirt instance void class [System]System.CodeDom.Compiler.CompilerParameters::set_GenerateInMemory(bool)
-	IL_0056:  ldloc.2 
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_MainClass()
-	IL_005d:  callvirt instance void class [System]System.CodeDom.Compiler.CompilerParameters::set_MainClass(string)
-	IL_0062:  ldloc.2 
-	IL_0063:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [System]System.CodeDom.Compiler.CompilerParameters::get_ReferencedAssemblies()
-	IL_0068:  ldtoken [NAnt.Core]NAnt.Core.Project
-	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0072:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
-	IL_0077:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	IL_007c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0081:  pop 
-	IL_0082:  ldarg.0 
-	IL_0083:  ldc.i4 2000
-	IL_0088:  ldstr "Adding assembly {0}"
-	IL_008d:  ldc.i4.1 
-	IL_008e:  newarr [mscorlib]System.Object
-	IL_0093:  dup 
-	IL_0094:  ldc.i4.0 
-	IL_0095:  ldtoken [NAnt.Core]NAnt.Core.Project
-	IL_009a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_009f:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
-	IL_00a4:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_00a9:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_00ae:  stelem.ref 
-	IL_00af:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00b4:  nop 
-	IL_00b5:  ldarg.0 
-	IL_00b6:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ScriptTask::get_References()
-	IL_00bb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00c0:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00c5:  stloc.s 4
 	.try { // 1
-	  IL_00c7:  br IL_0156
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_0008:  brtrue IL_0015
 
-	  IL_00cc:  ldloc.s 4
-	  IL_00ce:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00d3:  stloc.3 
-	  IL_00d4:  nop 
-	  .try { // 0
-	    IL_00d5:  nop 
-	    IL_00d6:  ldloc.3 
-	    IL_00d7:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	    IL_00dc:  stloc.s 5
-	    IL_00de:  ldarg.0 
-	    IL_00df:  ldc.i4 2000
-	    IL_00e4:  ldstr "Adding assembly {0}"
-	    IL_00e9:  ldc.i4.1 
-	    IL_00ea:  newarr [mscorlib]System.Object
-	    IL_00ef:  dup 
-	    IL_00f0:  ldc.i4.0 
-	    IL_00f1:  ldloc.s 5
-	    IL_00f3:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	    IL_00f8:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	    IL_00fd:  stelem.ref 
-	    IL_00fe:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_0103:  ldloc.s 5
-	    IL_0105:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	    IL_010a:  call bool string::IsNullOrEmpty(string)
-	    IL_010f:  brtrue IL_0129
+	  IL_000d:  nop 
+	  IL_000e:  ldc.i4.0 
+	  IL_000f:  stloc.0 
+	  IL_0010:  leave IL_0083
 
-	    IL_0114:  nop 
-	    IL_0115:  ldloc.2 
-	    IL_0116:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [System]System.CodeDom.Compiler.CompilerParameters::get_ReferencedAssemblies()
-	    IL_011b:  ldloc.s 5
-	    IL_011d:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	    IL_0122:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0127:  pop 
-	    IL_0128:  nop 
-	    IL_0129:  nop 
-	    IL_012a:  leave IL_0155
+	  IL_0015:  ldarg.1 
+	  IL_0016:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_001b:  ldstr ".resx"
+	  IL_0020:  ldc.i4.1 
+	  IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0026:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_002b:  brfalse IL_0038
 
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_012f:  stloc.s 6
-	    IL_0131:  nop 
-	    IL_0132:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0137:  ldstr "NA2028"
-	    IL_013c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_0141:  ldloc.3 
-	    IL_0142:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0147:  ldarg.0 
-	    IL_0148:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	    IL_014d:  ldloc.s 6
-	    IL_014f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_0154:  throw 
-	  } // end handler 0
-	  IL_0155:  nop 
-	  IL_0156:  ldloc.s 4
-	  IL_0158:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_015d:  brtrue IL_00cc
+	  IL_0030:  nop 
+	  IL_0031:  ldc.i4.0 
+	  IL_0032:  stloc.0 
+	  IL_0033:  leave IL_0083
 
-	  IL_0162:  leave IL_017e
+	  IL_0038:  ldarg.1 
+	  IL_0039:  ldc.i4.1 
+	  IL_003a:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, bool)
+	  IL_003f:  stloc.1 
+	  .try { // 0
+	    IL_0040:  nop 
+	    IL_0041:  ldloc.1 
+	    IL_0042:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
+	    IL_0047:  newobj instance void class [System.Xml]System.Xml.XPath.XPathDocument::'.ctor'(class [System.Xml]System.Xml.XmlReader)
+	    IL_004c:  stloc.2 
+	    IL_004d:  ldloc.2 
+	    IL_004e:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathDocument::CreateNavigator()
+	    IL_0053:  ldstr "/root/data[@mimetype or (@type and not(starts-with(@type, 'System.') and contains(@type,'PublicKeyToken=')))]"
+	    IL_0058:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
+	    IL_005d:  callvirt instance int32 class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Count()
+	    IL_0062:  stloc.3 
+	    IL_0063:  ldloc.3 
+	    IL_0064:  ldc.i4.0 
+	    IL_0065:  cgt 
+	    IL_0067:  stloc.0 
+	    IL_0068:  leave IL_0083
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_006d:  ldloc.1 
+	    IL_006e:  brfalse IL_0079
 
+	    IL_0073:  ldloc.1 
+	    IL_0074:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0079:  endfinally 
+	  } // end handler 0
 	} // end .try 1
-	finally  { // 1
-	  IL_0167:  ldloc.s 4
-	  IL_0169:  isinst [mscorlib]System.IDisposable
-	  IL_016e:  dup 
-	  IL_016f:  stloc.s 7
-	  IL_0171:  brfalse IL_017d
+	catch class [mscorlib]System.Exception { // 1
+	  IL_007a:  pop 
+	  IL_007b:  nop 
+	  IL_007c:  ldc.i4.1 
+	  IL_007d:  stloc.0 
+	  IL_007e:  leave IL_0083
 
-	  IL_0176:  ldloc.s 7
-	  IL_0178:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_017d:  endfinally 
 	} // end handler 1
-	IL_017e:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0183:  stloc.s 8
-	IL_0185:  nop 
-	IL_0186:  ldarg.0 
-	IL_0187:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.ScriptTask::get_Imports()
-	IL_018c:  callvirt instance class NAnt.DotNet.Types.NamespaceImportEnumerator class NAnt.DotNet.Types.NamespaceImportCollection::GetEnumerator()
-	IL_0191:  stloc.s 10
-	.try { // 2
-	  IL_0193:  br IL_01cc
-
-	  IL_0198:  ldloc.s 10
-	  IL_019a:  callvirt instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current()
-	  IL_019f:  stloc.s 9
-	  IL_01a1:  nop 
-	  IL_01a2:  ldloc.s 9
-	  IL_01a4:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_IfDefined()
-	  IL_01a9:  brfalse IL_01cb
-
-	  IL_01ae:  ldloc.s 9
-	  IL_01b0:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined()
-	  IL_01b5:  brtrue IL_01cb
-
-	  IL_01ba:  nop 
-	  IL_01bb:  ldloc.s 8
-	  IL_01bd:  ldloc.s 9
-	  IL_01bf:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
-	  IL_01c4:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_01c9:  pop 
-	  IL_01ca:  nop 
-	  IL_01cb:  nop 
-	  IL_01cc:  ldloc.s 10
-	  IL_01ce:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImportEnumerator::MoveNext()
-	  IL_01d3:  brtrue IL_0198
-
-	  IL_01d8:  leave IL_01f4
-
-	} // end .try 2
-	finally  { // 2
-	  IL_01dd:  ldloc.s 10
-	  IL_01df:  isinst [mscorlib]System.IDisposable
-	  IL_01e4:  dup 
-	  IL_01e5:  stloc.s 11
-	  IL_01e7:  brfalse IL_01f3
-
-	  IL_01ec:  ldloc.s 11
-	  IL_01ee:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01f3:  endfinally 
-	} // end handler 2
-	IL_01f4:  ldloc.0 
-	IL_01f5:  ldarg.0 
-	IL_01f6:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_rootClassName
-	IL_01fb:  ldarg.0 
-	IL_01fc:  call instance class [NAnt.Core]NAnt.Core.Types.RawXml class NAnt.DotNet.Tasks.ScriptTask::get_Code()
-	IL_0201:  callvirt instance class [System.Xml]System.Xml.XmlNode class [NAnt.Core]NAnt.Core.Types.RawXml::get_Xml()
-	IL_0206:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	IL_020b:  ldloc.s 8
-	IL_020d:  ldarg.0 
-	IL_020e:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_Prefix()
-	IL_0213:  callvirt instance class [System]System.CodeDom.CodeCompileUnit class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::GenerateCode(string, string, class [System]System.Collections.Specialized.StringCollection, string)
-	IL_0218:  stloc.s 12
-	IL_021a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_021f:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'(class [mscorlib]System.IFormatProvider)
-	IL_0224:  stloc.s 13
-	IL_0226:  ldloc.0 
-	IL_0227:  ldfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::CodeGen
-	IL_022c:  ldloc.s 12
-	IL_022e:  ldloc.s 13
-	IL_0230:  ldnull 
-	IL_0231:  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_0236:  ldloc.s 13
-	IL_0238:  callvirt instance string object::ToString()
-	IL_023d:  stloc.s 14
-	IL_023f:  ldarg.0 
-	IL_0240:  ldc.i4 1000
-	IL_0245:  ldstr "String_GeneratedCodeLooksLike"
-	IL_024a:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_024f:  ldstr "\n{0}"
-	IL_0254:  call string string::Concat(string, string)
-	IL_0259:  ldc.i4.1 
-	IL_025a:  newarr [mscorlib]System.Object
-	IL_025f:  dup 
-	IL_0260:  ldc.i4.0 
-	IL_0261:  ldloc.s 14
-	IL_0263:  stelem.ref 
-	IL_0264:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0269:  ldloc.1 
-	IL_026a:  ldloc.2 
-	IL_026b:  ldloc.s 12
-	IL_026d:  callvirt instance class [System]System.CodeDom.Compiler.CompilerResults class [System]System.CodeDom.Compiler.ICodeCompiler::CompileAssemblyFromDom(class [System]System.CodeDom.Compiler.CompilerParameters, class [System]System.CodeDom.CodeCompileUnit)
-	IL_0272:  stloc.s 15
-	IL_0274:  ldnull 
-	IL_0275:  stloc.s 16
-	IL_0277:  ldloc.s 15
-	IL_0279:  callvirt instance class [System]System.CodeDom.Compiler.CompilerErrorCollection class [System]System.CodeDom.Compiler.CompilerResults::get_Errors()
-	IL_027e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0283:  ldc.i4.0 
-	IL_0284:  ble IL_031a
+	IL_0083:  ldloc.0 
+	IL_0084:  ret 
+    } // end of method ResGenTask::ReferencesThirdPartyAssemblies
 
-	IL_0289:  nop 
-	IL_028a:  ldstr "NA2029"
-	IL_028f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0294:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0299:  call string string::Concat(string, string)
-	IL_029e:  stloc.s 17
-	IL_02a0:  nop 
-	IL_02a1:  ldloc.s 15
-	IL_02a3:  callvirt instance class [System]System.CodeDom.Compiler.CompilerErrorCollection class [System]System.CodeDom.Compiler.CompilerResults::get_Errors()
-	IL_02a8:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.CollectionBase::GetEnumerator()
-	IL_02ad:  stloc.s 19
-	.try { // 3
-	  IL_02af:  br IL_02d9
+    // method line 485
+    .method private hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetExternalFileReferences (class [mscorlib]System.IO.FileInfo resxFile)  cil managed 
+    {
+        // Method begins at RVA 0xb838
+	// Code size 285 (0x11d)
+	.maxstack 4
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class [mscorlib]System.IO.StreamReader	V_1,
+		class [System.Xml]System.Xml.XPath.XPathDocument	V_2,
+		class [System.Xml]System.Xml.XPath.XPathNavigator	V_3,
+		class [System.Xml]System.Xml.XPath.XPathNodeIterator	V_4,
+		string	V_5,
+		class [System]System.Collections.Specialized.StringCollection	V_6,
+		string	V_7,
+		class [System.Xml]System.Xml.XPath.XPathNodeIterator	V_8,
+		string[]	V_9)
+	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_02b4:  ldloc.s 19
-	  IL_02b6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_02bb:  castclass [System]System.CodeDom.Compiler.CompilerError
-	  IL_02c0:  stloc.s 18
-	  IL_02c2:  nop 
-	  IL_02c3:  ldloc.s 17
-	  IL_02c5:  ldloc.s 18
-	  IL_02c7:  callvirt instance string object::ToString()
-	  IL_02cc:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_02d1:  call string string::Concat(string, string, string)
-	  IL_02d6:  stloc.s 17
-	  IL_02d8:  nop 
-	  IL_02d9:  ldloc.s 19
-	  IL_02db:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02e0:  brtrue IL_02b4
+	IL_000c:  nop 
+	IL_000d:  ldnull 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_011b
 
-	  IL_02e5:  leave IL_0301
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001a:  ldc.i4.1 
+	IL_001b:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, bool)
+	IL_0020:  stloc.1 
+	.try { // 0
+	  IL_0021:  nop 
+	  IL_0022:  ldloc.1 
+	  IL_0023:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
+	  IL_0028:  newobj instance void class [System.Xml]System.Xml.XPath.XPathDocument::'.ctor'(class [System.Xml]System.Xml.XmlReader)
+	  IL_002d:  stloc.2 
+	  IL_002e:  ldloc.2 
+	  IL_002f:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathDocument::CreateNavigator()
+	  IL_0034:  stloc.3 
+	  IL_0035:  ldloc.3 
+	  IL_0036:  ldstr "/root/resheader[@name = 'version']/value"
+	  IL_003b:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
+	  IL_0040:  pop 
+	  IL_0041:  ldloc.3 
+	  IL_0042:  ldstr "/root/resheader[@name = 'version']/value"
+	  IL_0047:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
+	  IL_004c:  stloc.s 4
+	  IL_004e:  ldloc.s 4
+	  IL_0050:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNodeIterator::MoveNext()
+	  IL_0055:  brfalse IL_0083
 
-	} // end .try 3
-	finally  { // 3
-	  IL_02ea:  ldloc.s 19
-	  IL_02ec:  isinst [mscorlib]System.IDisposable
-	  IL_02f1:  dup 
-	  IL_02f2:  stloc.s 20
-	  IL_02f4:  brfalse IL_0300
+	  IL_005a:  nop 
+	  IL_005b:  ldloc.s 4
+	  IL_005d:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Current()
+	  IL_0062:  callvirt instance string class [System.Xml]System.Xml.XPath.XPathItem::get_Value()
+	  IL_0067:  stloc.s 5
+	  IL_0069:  ldloc.s 5
+	  IL_006b:  ldstr "1.0.0.0"
+	  IL_0070:  call bool string::op_Equality(string, string)
+	  IL_0075:  brfalse IL_0082
 
-	  IL_02f9:  ldloc.s 20
-	  IL_02fb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0300:  endfinally 
-	} // end handler 3
-	IL_0301:  ldloc.s 17
-	IL_0303:  ldloc.s 14
-	IL_0305:  call string string::Concat(string, string)
-	IL_030a:  stloc.s 17
-	IL_030c:  ldloc.s 17
-	IL_030e:  ldarg.0 
-	IL_030f:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_0314:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0319:  throw 
-	IL_031a:  nop 
-	IL_031b:  ldloc.s 15
-	IL_031d:  callvirt instance class [mscorlib]System.Reflection.Assembly class [System]System.CodeDom.Compiler.CompilerResults::get_CompiledAssembly()
-	IL_0322:  stloc.s 16
-	IL_0324:  nop 
-	IL_0325:  ldloc.s 16
-	IL_0327:  ldarg.0 
-	IL_0328:  call bool class [NAnt.Core]NAnt.Core.TypeFactory::ScanAssembly(class [mscorlib]System.Reflection.Assembly, class [NAnt.Core]NAnt.Core.Task)
-	IL_032d:  stloc.s 21
-	IL_032f:  ldarg.0 
-	IL_0330:  ldfld string NAnt.DotNet.Tasks.ScriptTask::_rootClassName
-	IL_0335:  stloc.s 22
-	IL_0337:  ldarg.0 
-	IL_0338:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_MainClass()
-	IL_033d:  call bool string::IsNullOrEmpty(string)
-	IL_0342:  brtrue IL_035d
+	  IL_007a:  nop 
+	  IL_007b:  ldnull 
+	  IL_007c:  stloc.0 
+	  IL_007d:  leave IL_011b
 
-	IL_0347:  nop 
-	IL_0348:  ldloc.s 22
-	IL_034a:  ldstr "+"
-	IL_034f:  ldarg.0 
-	IL_0350:  call instance string class NAnt.DotNet.Tasks.ScriptTask::get_MainClass()
-	IL_0355:  call string string::Concat(string, string, string)
-	IL_035a:  stloc.s 22
-	IL_035c:  nop 
-	IL_035d:  ldloc.s 16
-	IL_035f:  ldloc.s 22
-	IL_0361:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
-	IL_0366:  stloc.s 23
-	IL_0368:  ldloc.s 23
-	IL_036a:  ldnull 
-	IL_036b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0370:  brfalse IL_0398
+	  IL_0082:  nop 
+	  IL_0083:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	  IL_0088:  stloc.s 6
+	  IL_008a:  ldarg.0 
+	  IL_008b:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath()
+	  IL_0090:  brfalse IL_00a0
 
-	IL_0375:  nop 
-	IL_0376:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_037b:  ldstr "NA2030"
-	IL_0380:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0385:  ldloc.s 22
-	IL_0387:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_038c:  ldarg.0 
-	IL_038d:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_0392:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0397:  throw 
-	IL_0398:  ldloc.s 23
-	IL_039a:  ldstr "ScriptMain"
-	IL_039f:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
-	IL_03a4:  stloc.s 24
-	IL_03a6:  ldloc.s 24
-	IL_03a8:  ldnull 
-	IL_03a9:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_03ae:  brfalse IL_03d8
+	  IL_0095:  ldarg.1 
+	  IL_0096:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	  IL_009b:  br IL_00ab
 
-	IL_03b3:  nop 
-	IL_03b4:  ldloc.s 21
-	IL_03b6:  brtrue IL_03d2
+	  IL_00a0:  ldarg.0 
+	  IL_00a1:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00a6:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	  IL_00ab:  stloc.s 7
+	  IL_00ad:  ldloc.3 
+	  IL_00ae:  ldstr "/root/data[@type = 'System.Resources.ResXFileRef, System.Windows.Forms']/value"
+	  IL_00b3:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNodeIterator class [System.Xml]System.Xml.XPath.XPathNavigator::Select(string)
+	  IL_00b8:  stloc.s 8
+	  IL_00ba:  br IL_00fa
 
-	IL_03bb:  nop 
-	IL_03bc:  ldstr "NA2031"
-	IL_03c1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_03c6:  ldarg.0 
-	IL_03c7:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_03cc:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_03d1:  throw 
-	IL_03d2:  nop 
-	IL_03d3:  br IL_04c9
+	  IL_00bf:  nop 
+	  IL_00c0:  ldloc.s 8
+	  IL_00c2:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Current()
+	  IL_00c7:  callvirt instance string class [System.Xml]System.Xml.XPath.XPathItem::get_Value()
+	  IL_00cc:  ldc.i4.s 0x3b
+	  IL_00ce:  ldc.i4.0 
+	  IL_00cf:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_00d4:  stloc.s 9
+	  IL_00d6:  ldloc.s 9
+	  IL_00d8:  ldlen 
+	  IL_00d9:  conv.i4 
+	  IL_00da:  ldc.i4.1 
+	  IL_00db:  bgt IL_00e6
 
-	IL_03d8:  ldloc.s 24
-	IL_03da:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsStatic()
-	IL_03df:  brtrue IL_03fb
+	  IL_00e0:  nop 
+	  IL_00e1:  leave IL_00fa
 
-	IL_03e4:  nop 
-	IL_03e5:  ldstr "NA2032"
-	IL_03ea:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_03ef:  ldarg.0 
-	IL_03f0:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_03f5:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_03fa:  throw 
-	IL_03fb:  ldloc.s 24
-	IL_03fd:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0402:  stloc.s 25
-	IL_0404:  ldloc.s 25
-	IL_0406:  ldlen 
-	IL_0407:  conv.i4 
-	IL_0408:  ldc.i4.1 
-	IL_0409:  beq IL_0425
+	  IL_00e6:  ldloc.s 6
+	  IL_00e8:  ldloc.s 7
+	  IL_00ea:  ldloc.s 9
+	  IL_00ec:  ldc.i4.0 
+	  IL_00ed:  ldelem.ref 
+	  IL_00ee:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_00f3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00f8:  pop 
+	  IL_00f9:  nop 
+	  IL_00fa:  ldloc.s 8
+	  IL_00fc:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNodeIterator::MoveNext()
+	  IL_0101:  brtrue IL_00bf
 
-	IL_040e:  nop 
-	IL_040f:  ldstr "NA2033"
-	IL_0414:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0419:  ldarg.0 
-	IL_041a:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_041f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0424:  throw 
-	IL_0425:  ldloc.s 25
-	IL_0427:  ldc.i4.0 
-	IL_0428:  ldelem.ref 
-	IL_0429:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_042e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0433:  ldtoken [NAnt.Core]NAnt.Core.Project
-	IL_0438:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_043d:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0442:  call bool string::op_Inequality(string, string)
-	IL_0447:  brfalse IL_048a
+	  IL_0106:  ldloc.s 6
+	  IL_0108:  stloc.0 
+	  IL_0109:  leave IL_011b
 
-	IL_044c:  nop 
-	IL_044d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0452:  ldstr "NA2034"
-	IL_0457:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_045c:  ldloc.s 25
-	IL_045e:  ldc.i4.0 
-	IL_045f:  ldelem.ref 
-	IL_0460:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_0465:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_046a:  ldtoken [NAnt.Core]NAnt.Core.Project
-	IL_046f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0474:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0479:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_047e:  ldarg.0 
-	IL_047f:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_0484:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0489:  throw 
-	.try { // 4
-	  IL_048a:  nop 
-	  IL_048b:  ldloc.s 24
-	  IL_048d:  ldnull 
-	  IL_048e:  ldc.i4.1 
-	  IL_048f:  newarr [mscorlib]System.Object
-	  IL_0494:  dup 
-	  IL_0495:  ldc.i4.0 
-	  IL_0496:  ldarg.0 
-	  IL_0497:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_049c:  stelem.ref 
-	  IL_049d:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
-	  IL_04a2:  pop 
-	  IL_04a3:  nop 
-	  IL_04a4:  leave IL_04c9
+	} // end .try 0
+	finally  { // 0
+	  IL_010e:  ldloc.1 
+	  IL_010f:  brfalse IL_011a
 
-	} // end .try 4
-	catch class [mscorlib]System.Exception { // 4
-	  IL_04a9:  stloc.s 26
-	  IL_04ab:  nop 
-	  IL_04ac:  ldstr "NA2035"
-	  IL_04b1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_04b6:  ldarg.0 
-	  IL_04b7:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	  IL_04bc:  ldloc.s 26
-	  IL_04be:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	  IL_04c3:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_04c8:  throw 
-	} // end handler 4
-	IL_04c9:  ret 
-    } // end of method ScriptTask::ExecuteTask
+	  IL_0114:  ldloc.1 
+	  IL_0115:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_011a:  endfinally 
+	} // end handler 0
+	IL_011b:  ldloc.0 
+	IL_011c:  ret 
+    } // end of method ResGenTask::GetExternalFileReferences
 
-    // method line 483
+    // method line 486
     .method private hidebysig 
-           instance default class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo CreateCompilerInfo (string language)  cil managed 
+           instance default void WriteCommandLineOptions (class [mscorlib]System.IO.FileInfo inputFile, class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
     {
-        // Method begins at RVA 0xb700
-	// Code size 375 (0x177)
-	.maxstack 3
+        // Method begins at RVA 0xb974
+	// Code size 482 (0x1e2)
+	.maxstack 7
 	.locals init (
-		class [System]System.CodeDom.Compiler.CodeDomProvider	V_0,
-		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
-		int32	V_2,
-		class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo	V_3,
-		class [mscorlib]System.Exception	V_4)
+		string	V_0,
+		bool	V_1,
+		class [mscorlib]System.Text.StringBuilder	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_6)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  ldarg.1 
-	  IL_0005:  brfalse IL_0137
-
-	  IL_000a:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.DotNet.Tasks.ScriptTask::'<>f__switch$map0'
-	  IL_000f:  brtrue IL_00b2
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  callvirt instance bool class NAnt.DotNet.Tasks.ResGenTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
+	IL_0009:  brtrue IL_0014
 
-	  IL_0014:  ldc.i4.s 0x0c
-	  IL_0016:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
-	  IL_001b:  stloc.1 
-	  IL_001c:  ldloc.1 
-	  IL_001d:  ldstr "vb"
-	  IL_0022:  ldc.i4.0 
-	  IL_0023:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0028:  ldloc.1 
-	  IL_0029:  ldstr "VB"
-	  IL_002e:  ldc.i4.0 
-	  IL_002f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0034:  ldloc.1 
-	  IL_0035:  ldstr "VISUALBASIC"
-	  IL_003a:  ldc.i4.0 
-	  IL_003b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0040:  ldloc.1 
-	  IL_0041:  ldstr "c#"
-	  IL_0046:  ldc.i4.1 
-	  IL_0047:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_004c:  ldloc.1 
-	  IL_004d:  ldstr "C#"
-	  IL_0052:  ldc.i4.1 
-	  IL_0053:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0058:  ldloc.1 
-	  IL_0059:  ldstr "CSHARP"
-	  IL_005e:  ldc.i4.1 
-	  IL_005f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0064:  ldloc.1 
-	  IL_0065:  ldstr "js"
-	  IL_006a:  ldc.i4.2 
-	  IL_006b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0070:  ldloc.1 
-	  IL_0071:  ldstr "JS"
-	  IL_0076:  ldc.i4.2 
-	  IL_0077:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_007c:  ldloc.1 
-	  IL_007d:  ldstr "JSCRIPT"
-	  IL_0082:  ldc.i4.2 
-	  IL_0083:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0088:  ldloc.1 
-	  IL_0089:  ldstr "vjs"
-	  IL_008e:  ldc.i4.3 
-	  IL_008f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_0094:  ldloc.1 
-	  IL_0095:  ldstr "VJS"
-	  IL_009a:  ldc.i4.3 
-	  IL_009b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_00a0:  ldloc.1 
-	  IL_00a1:  ldstr "JSHARP"
-	  IL_00a6:  ldc.i4.3 
-	  IL_00a7:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	  IL_00ac:  ldloc.1 
-	  IL_00ad:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.DotNet.Tasks.ScriptTask::'<>f__switch$map0'
-	  IL_00b2:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.DotNet.Tasks.ScriptTask::'<>f__switch$map0'
-	  IL_00b7:  ldarg.1 
-	  IL_00b8:  ldloca.s 2
-	  IL_00ba:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
-	  IL_00bf:  brfalse IL_0137
+	IL_000e:  nop 
+	IL_000f:  br IL_01e1
 
-	  IL_00c4:  ldloc.2 
-	  IL_00c5:  switch (
-	    IL_00e3,
-	    IL_00f8,
-	    IL_010d,
-	    IL_0122,
-	    IL_0137)
-	  IL_00de:  br IL_0137
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_001a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_001f:  brtrue IL_0031
 
-	  IL_00e3:  ldstr "Microsoft.VisualBasic.VBCodeProvider"
-	  IL_00e8:  ldstr "System, Culture=neutral"
-	  IL_00ed:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
-	  IL_00f2:  stloc.0 
-	  IL_00f3:  leave IL_0143
+	IL_0024:  nop 
+	IL_0025:  ldarg.2 
+	IL_0026:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_002b:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_0030:  nop 
+	IL_0031:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0036:  ldstr "\"{0},{1}\" "
+	IL_003b:  ldarg.1 
+	IL_003c:  ldarg.2 
+	IL_003d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0047:  stloc.0 
+	IL_0048:  ldarg.0 
+	IL_0049:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_004e:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0053:  ldloc.0 
+	IL_0054:  callvirt instance int32 string::get_Length()
+	IL_0059:  add 
+	IL_005a:  ldc.i4 30000
+	IL_005f:  cgt 
+	IL_0061:  stloc.1 
+	IL_0062:  ldarg.0 
+	IL_0063:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_0068:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_006d:  brfalse IL_0078
 
-	  IL_00f8:  ldstr "Microsoft.CSharp.CSharpCodeProvider"
-	  IL_00fd:  ldstr "System, Culture=neutral"
-	  IL_0102:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
-	  IL_0107:  stloc.0 
-	  IL_0108:  leave IL_0143
+	IL_0072:  ldloc.1 
+	IL_0073:  brfalse IL_015f
 
-	  IL_010d:  ldstr "Microsoft.JScript.JScriptCodeProvider"
-	  IL_0112:  ldstr "Microsoft.JScript, Culture=neutral"
-	  IL_0117:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
-	  IL_011c:  stloc.0 
-	  IL_011d:  leave IL_0143
+	IL_0078:  nop 
+	IL_0079:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_007e:  stloc.2 
+	IL_007f:  ldarg.0 
+	IL_0080:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsAssemblyReferences()
+	IL_0085:  brfalse IL_00e8
 
-	  IL_0122:  ldstr "Microsoft.VJSharp.VJSharpCodeProvider"
-	  IL_0127:  ldstr "VJSharpCodeProvider, Culture=neutral"
-	  IL_012c:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string, string)
-	  IL_0131:  stloc.0 
-	  IL_0132:  leave IL_0143
+	IL_008a:  nop 
+	IL_008b:  nop 
+	IL_008c:  ldarg.0 
+	IL_008d:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_0092:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0097:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_009c:  stloc.s 4
+	.try { // 0
+	  IL_009e:  br IL_00bf
 
-	  IL_0137:  ldarg.1 
-	  IL_0138:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(string)
-	  IL_013d:  stloc.0 
-	  IL_013e:  leave IL_0143
+	  IL_00a3:  ldloc.s 4
+	  IL_00a5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00aa:  stloc.3 
+	  IL_00ab:  nop 
+	  IL_00ac:  ldloc.2 
+	  IL_00ad:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00b2:  ldstr "/r:\"{0}\" "
+	  IL_00b7:  ldloc.3 
+	  IL_00b8:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00bd:  pop 
+	  IL_00be:  nop 
+	  IL_00bf:  ldloc.s 4
+	  IL_00c1:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00c6:  brtrue IL_00a3
 
-	  IL_0143:  ldloc.0 
-	  IL_0144:  newobj instance void class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::'.ctor'(class [System]System.CodeDom.Compiler.CodeDomProvider)
-	  IL_0149:  stloc.3 
-	  IL_014a:  leave IL_0175
+	  IL_00cb:  leave IL_00e7
 
 	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_014f:  stloc.s 4
-	  IL_0151:  nop 
-	  IL_0152:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0157:  ldstr "NA2036"
-	  IL_015c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0161:  ldarg.1 
-	  IL_0162:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0167:  ldarg.0 
-	  IL_0168:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	  IL_016d:  ldloc.s 4
-	  IL_016f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0174:  throw 
-	} // end handler 0
-	IL_0175:  ldloc.3 
-	IL_0176:  ret 
-    } // end of method ScriptTask::CreateCompilerInfo
-
-    // method line 484
-    .method private static hidebysig 
-           default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (string typeName, string assemblyName)  cil managed 
-    {
-        // Method begins at RVA 0xb8a0
-	// Code size 72 (0x48)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		class [mscorlib]System.Type	V_1,
-		class [System]System.CodeDom.Compiler.CodeDomProvider	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadWithPartialName(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldnull 
-	IL_000a:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
-	IL_000f:  brfalse IL_0030
-
-	IL_0014:  nop 
-	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001a:  ldstr "NA2037"
-	IL_001f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0024:  ldarg.1 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_002f:  throw 
-	IL_0030:  ldloc.0 
-	IL_0031:  ldarg.0 
-	IL_0032:  ldc.i4.1 
-	IL_0033:  ldc.i4.1 
-	IL_0034:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
-	IL_0039:  stloc.1 
-	IL_003a:  ldloc.1 
-	IL_003b:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(class [mscorlib]System.Type)
-	IL_0040:  stloc.2 
-	IL_0041:  br IL_0046
+	finally  { // 0
+	  IL_00d0:  ldloc.s 4
+	  IL_00d2:  isinst [mscorlib]System.IDisposable
+	  IL_00d7:  dup 
+	  IL_00d8:  stloc.s 5
+	  IL_00da:  brfalse IL_00e6
 
-	IL_0046:  ldloc.2 
-	IL_0047:  ret 
-    } // end of method ScriptTask::CreateCodeDomProvider
+	  IL_00df:  ldloc.s 5
+	  IL_00e1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00e6:  endfinally 
+	} // end handler 0
+	IL_00e7:  nop 
+	IL_00e8:  ldarg.0 
+	IL_00e9:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath()
+	IL_00ee:  brfalse IL_0143
 
-    // method line 485
-    .method private static hidebysig 
-           default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (string assemblyQualifiedTypeName)  cil managed 
-    {
-        // Method begins at RVA 0xb8f4
-	// Code size 24 (0x18)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Type	V_0,
-		class [System]System.CodeDom.Compiler.CodeDomProvider	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.1 
-	IL_0003:  ldc.i4.1 
-	IL_0004:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
-	IL_0009:  stloc.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  call class [System]System.CodeDom.Compiler.CodeDomProvider class NAnt.DotNet.Tasks.ScriptTask::CreateCodeDomProvider(class [mscorlib]System.Type)
-	IL_0010:  stloc.1 
-	IL_0011:  br IL_0016
+	IL_00f3:  nop 
+	IL_00f4:  ldarg.0 
+	IL_00f5:  call instance bool class NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences()
+	IL_00fa:  brfalse IL_0112
 
-	IL_0016:  ldloc.1 
-	IL_0017:  ret 
-    } // end of method ScriptTask::CreateCodeDomProvider
+	IL_00ff:  nop 
+	IL_0100:  ldloc.2 
+	IL_0101:  ldstr "/useSourcePath "
+	IL_0106:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_010b:  pop 
+	IL_010c:  nop 
+	IL_010d:  br IL_0142
 
-    // method line 486
-    .method private static hidebysig 
-           default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (class [mscorlib]System.Type providerType)  cil managed 
-    {
-        // Method begins at RVA 0xb918
-	// Code size 66 (0x42)
-	.maxstack 3
-	.locals init (
-		object	V_0,
-		class [System]System.CodeDom.Compiler.CodeDomProvider	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  isinst [System]System.CodeDom.Compiler.CodeDomProvider
-	IL_000e:  brtrue IL_0034
+	IL_0112:  nop 
+	IL_0113:  ldarg.0 
+	IL_0114:  ldc.i4 4000
+	IL_0119:  ldstr "String_ResourceCompilerDoesNotSupportExternalReferences"
+	IL_011e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0123:  ldc.i4.1 
+	IL_0124:  newarr [mscorlib]System.Object
+	IL_0129:  dup 
+	IL_012a:  ldc.i4.0 
+	IL_012b:  ldarg.0 
+	IL_012c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0131:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0136:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_013b:  stelem.ref 
+	IL_013c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0141:  nop 
+	IL_0142:  nop 
+	IL_0143:  ldloc.2 
+	IL_0144:  ldstr "/compile "
+	IL_0149:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_014e:  pop 
+	IL_014f:  ldloc.2 
+	IL_0150:  ldloc.0 
+	IL_0151:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0156:  pop 
+	IL_0157:  ldloc.2 
+	IL_0158:  callvirt instance string object::ToString()
+	IL_015d:  stloc.0 
+	IL_015e:  nop 
+	IL_015f:  ldloc.1 
+	IL_0160:  brfalse IL_01d4
 
-	IL_0013:  nop 
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  ldstr "NA2038"
-	IL_001e:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0029:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002e:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0033:  throw 
-	IL_0034:  ldloc.0 
-	IL_0035:  castclass [System]System.CodeDom.Compiler.CodeDomProvider
-	IL_003a:  stloc.1 
-	IL_003b:  br IL_0040
+	IL_0165:  nop 
+	.try { // 1
+	  IL_0166:  nop 
+	  IL_0167:  ldarg.0 
+	  IL_0168:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_016d:  nop 
+	  IL_016e:  leave IL_01c7
 
-	IL_0040:  ldloc.1 
-	IL_0041:  ret 
-    } // end of method ScriptTask::CreateCodeDomProvider
+	} // end .try 1
+	catch class [mscorlib]System.Object { // 1
+	  IL_0173:  pop 
+	  IL_0174:  nop 
+	  IL_0175:  ldarg.0 
+	  IL_0176:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
+	  IL_017b:  brfalse IL_01c5
 
-    // method line 487
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xb966
-	// Code size 60 (0x3c)
-	.maxstack 8
-	IL_0000:  ldc.i4.6 
-	IL_0001:  newarr [mscorlib]System.String
-	IL_0006:  dup 
-	IL_0007:  ldc.i4.0 
-	IL_0008:  ldstr "System"
-	IL_000d:  stelem.ref 
-	IL_000e:  dup 
-	IL_000f:  ldc.i4.1 
-	IL_0010:  ldstr "System.Collections"
-	IL_0015:  stelem.ref 
-	IL_0016:  dup 
-	IL_0017:  ldc.i4.2 
-	IL_0018:  ldstr "System.IO"
-	IL_001d:  stelem.ref 
-	IL_001e:  dup 
-	IL_001f:  ldc.i4.3 
-	IL_0020:  ldstr "System.Text"
-	IL_0025:  stelem.ref 
-	IL_0026:  dup 
-	IL_0027:  ldc.i4.4 
-	IL_0028:  ldstr "NAnt.Core"
-	IL_002d:  stelem.ref 
-	IL_002e:  dup 
-	IL_002f:  ldc.i4.5 
-	IL_0030:  ldstr "NAnt.Core.Attributes"
-	IL_0035:  stelem.ref 
-	IL_0036:  stsfld string[] NAnt.DotNet.Tasks.ScriptTask::_defaultNamespaces
-	IL_003b:  ret 
-    } // end of method ScriptTask::.cctor
+	  IL_0180:  nop 
+	  IL_0181:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
+	  IL_0186:  stloc.s 6
+	  IL_0188:  ldloc.s 6
+	  IL_018a:  ldarg.0 
+	  IL_018b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0190:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	  IL_0195:  ldloc.s 6
+	  IL_0197:  ldarg.0 
+	  IL_0198:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	  IL_019d:  ldloc.s 6
+	  IL_019f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	  IL_01a4:  ldloc.s 6
+	  IL_01a6:  ldarg.0 
+	  IL_01a7:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::_workingDirectory
+	  IL_01ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_Directory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_01b1:  ldloc.s 6
+	  IL_01b3:  ldc.i4 9999
+	  IL_01b8:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	  IL_01bd:  ldloc.s 6
+	  IL_01bf:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_01c4:  nop 
+	  IL_01c5:  rethrow 
+	} // end handler 1
+	IL_01c7:  ldarg.0 
+	IL_01c8:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_01cd:  ldc.i4.0 
+	IL_01ce:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
+	IL_01d3:  nop 
+	IL_01d4:  ldarg.0 
+	IL_01d5:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.ResGenTask::_arguments
+	IL_01da:  ldloc.0 
+	IL_01db:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_01e0:  pop 
+	IL_01e1:  ret 
+    } // end of method ResGenTask::WriteCommandLineOptions
 
-	.property instance string Language ()
+	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
 	{
 		.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.
+		01 00 05 69 6E 70 75 74 01 00 54 02 08 52 65 71   // ...input..T..Req
+		75 69 72 65 64 00                               ) // uired.
 
-		.get instance default string NAnt.DotNet.Tasks.ScriptTask::get_Language () 
-		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Language (string 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::get_InputFile () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_InputFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet References ()
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
 	{
-		.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..
+		.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 00                            ) // quired.
 
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ScriptTask::get_References () 
-		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.ResGenTask::get_OutputFile () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string MainClass ()
+	.property instance string TargetExt ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 6D 61 69 6E 63 6C 61 73 73 01 00 54 02   // ...mainclass..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+		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.Tasks.ScriptTask::get_MainClass () 
-		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_MainClass (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.ResGenTask::get_TargetExt () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_TargetExt (string 'value') 
 	}
-	.property instance string Prefix ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
 	{
 		.custom instance void class [NAnt.Core]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.
+		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 string NAnt.DotNet.Tasks.ScriptTask::get_Prefix () 
-		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Prefix (string 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::get_ToDirectory () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
+	.property instance bool UseSourcePath ()
 	{
-		.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.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 75 73 65 73 6F 75 72 63 65 70 61 74 68   // ...usesourcepath
+		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
 
-		.get instance default class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.ScriptTask::get_Imports () 
-		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_UseSourcePath () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_UseSourcePath (bool 'value') 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.RawXml Code ()
+	.property instance class NAnt.DotNet.Types.ResourceFileSet Resources ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 04 63 6F 64 65 01 00 54 02 08 52 65 71 75   // ...code..T..Requ
-		69 72 65 64 01                                  ) // ired.
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 09 72 65 73 6F 75 72 63 65 73 00 00 ) // ...resources..
 
-		.get instance default class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.ScriptTask::get_Code () 
-		.set instance default void NAnt.DotNet.Tasks.ScriptTask::set_Code (class [NAnt.Core]NAnt.Core.Types.RawXml 'value') 
+		.get instance default class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Tasks.ResGenTask::get_Resources () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_Resources (class NAnt.DotNet.Types.ResourceFileSet 'value') 
 	}
-  .class nested assembly auto ansi beforefieldinit CompilerInfo
-  	extends [mscorlib]System.Object
-  {
-    .field  public initonly  class [System]System.CodeDom.Compiler.ICodeCompiler Compiler
-    .field  public initonly  class [System]System.CodeDom.Compiler.ICodeGenerator CodeGen
-
-    // method line 488
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System]System.CodeDom.Compiler.CodeDomProvider provider)  cil managed 
-    {
-        // Method begins at RVA 0xb9a3
-	// 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:  callvirt instance class [System]System.CodeDom.Compiler.ICodeCompiler class [System]System.CodeDom.Compiler.CodeDomProvider::CreateCompiler()
-	IL_000e:  stfld class [System]System.CodeDom.Compiler.ICodeCompiler NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::Compiler
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance class [System]System.CodeDom.Compiler.ICodeGenerator class [System]System.CodeDom.Compiler.CodeDomProvider::CreateGenerator()
-	IL_001a:  stfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.ScriptTask/CompilerInfo::CodeGen
-	IL_001f:  ret 
-    } // end of method CompilerInfo::.ctor
-
-    // method line 489
-    .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 0xb9c4
-	// Code size 492 (0x1ec)
-	.maxstack 4
-	.locals init (
-		class [System]System.CodeDom.CodeCompileUnit	V_0,
-		class [System]System.CodeDom.CodeTypeDeclaration	V_1,
-		class [System]System.CodeDom.CodeConstructor	V_2,
-		class [System]System.CodeDom.CodeAttributeDeclaration	V_3,
-		class [System]System.CodeDom.CodeSnippetTypeMember	V_4,
-		class [System]System.CodeDom.CodeNamespace	V_5,
-		string	V_6,
-		string[]	V_7,
-		int32	V_8,
-		string	V_9,
-		class [System]System.Collections.Specialized.StringEnumerator	V_10,
-		class [mscorlib]System.IDisposable	V_11,
-		class [System]System.CodeDom.CodeCompileUnit	V_12)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.CodeDom.CodeCompileUnit::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.1 
-	IL_0008:  newobj instance void class [System]System.CodeDom.CodeTypeDeclaration::'.ctor'(string)
-	IL_000d:  stloc.1 
-	IL_000e:  ldloc.1 
-	IL_000f:  ldc.i4.1 
-	IL_0010:  callvirt instance void class [System]System.CodeDom.CodeTypeDeclaration::set_IsClass(bool)
-	IL_0015:  ldloc.1 
-	IL_0016:  ldc.i4.1 
-	IL_0017:  callvirt instance void class [System]System.CodeDom.CodeTypeDeclaration::set_TypeAttributes(valuetype [mscorlib]System.Reflection.TypeAttributes)
-	IL_001c:  newobj instance void class [System]System.CodeDom.CodeConstructor::'.ctor'()
-	IL_0021:  stloc.2 
-	IL_0022:  ldloc.2 
-	IL_0023:  ldc.i4 24576
-	IL_0028:  callvirt instance void class [System]System.CodeDom.CodeTypeMember::set_Attributes(valuetype [System]System.CodeDom.MemberAttributes)
-	IL_002d:  ldloc.2 
-	IL_002e:  callvirt instance class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection class [System]System.CodeDom.CodeMemberMethod::get_Parameters()
-	IL_0033:  ldstr "NAnt.Core.Project"
-	IL_0038:  ldstr "project"
-	IL_003d:  newobj instance void class [System]System.CodeDom.CodeParameterDeclarationExpression::'.ctor'(string, string)
-	IL_0042:  callvirt instance int32 class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection::Add(class [System]System.CodeDom.CodeParameterDeclarationExpression)
-	IL_0047:  pop 
-	IL_0048:  ldloc.2 
-	IL_0049:  callvirt instance class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection class [System]System.CodeDom.CodeMemberMethod::get_Parameters()
-	IL_004e:  ldstr "NAnt.Core.PropertyDictionary"
-	IL_0053:  ldstr "propDict"
-	IL_0058:  newobj instance void class [System]System.CodeDom.CodeParameterDeclarationExpression::'.ctor'(string, string)
-	IL_005d:  callvirt instance int32 class [System]System.CodeDom.CodeParameterDeclarationExpressionCollection::Add(class [System]System.CodeDom.CodeParameterDeclarationExpression)
-	IL_0062:  pop 
-	IL_0063:  ldloc.2 
-	IL_0064:  callvirt instance class [System]System.CodeDom.CodeExpressionCollection class [System]System.CodeDom.CodeConstructor::get_BaseConstructorArgs()
-	IL_0069:  ldstr "project"
-	IL_006e:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
-	IL_0073:  callvirt instance int32 class [System]System.CodeDom.CodeExpressionCollection::Add(class [System]System.CodeDom.CodeExpression)
-	IL_0078:  pop 
-	IL_0079:  ldloc.2 
-	IL_007a:  callvirt instance class [System]System.CodeDom.CodeExpressionCollection class [System]System.CodeDom.CodeConstructor::get_BaseConstructorArgs()
-	IL_007f:  ldstr "propDict"
-	IL_0084:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
-	IL_0089:  callvirt instance int32 class [System]System.CodeDom.CodeExpressionCollection::Add(class [System]System.CodeDom.CodeExpression)
-	IL_008e:  pop 
-	IL_008f:  ldloc.1 
-	IL_0090:  callvirt instance class [System]System.CodeDom.CodeTypeMemberCollection class [System]System.CodeDom.CodeTypeDeclaration::get_Members()
-	IL_0095:  ldloc.2 
-	IL_0096:  callvirt instance int32 class [System]System.CodeDom.CodeTypeMemberCollection::Add(class [System]System.CodeDom.CodeTypeMember)
-	IL_009b:  pop 
-	IL_009c:  ldloc.1 
-	IL_009d:  callvirt instance class [System]System.CodeDom.CodeTypeReferenceCollection class [System]System.CodeDom.CodeTypeDeclaration::get_BaseTypes()
-	IL_00a2:  ldtoken [NAnt.Core]NAnt.Core.FunctionSetBase
-	IL_00a7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00ac:  callvirt instance void class [System]System.CodeDom.CodeTypeReferenceCollection::Add(class [mscorlib]System.Type)
-	IL_00b1:  ldstr "FunctionSet"
-	IL_00b6:  newobj instance void class [System]System.CodeDom.CodeAttributeDeclaration::'.ctor'(string)
-	IL_00bb:  stloc.3 
-	IL_00bc:  ldloc.3 
-	IL_00bd:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
-	IL_00c2:  ldstr "\""
-	IL_00c7:  ldarg.s 4
-	IL_00c9:  ldstr "\""
-	IL_00ce:  call string string::Concat(string, string, string)
-	IL_00d3:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
-	IL_00d8:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
-	IL_00dd:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
-	IL_00e2:  pop 
-	IL_00e3:  ldloc.3 
-	IL_00e4:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
-	IL_00e9:  ldstr "\""
-	IL_00ee:  ldarg.s 4
-	IL_00f0:  ldstr "\""
-	IL_00f5:  call string string::Concat(string, string, string)
-	IL_00fa:  newobj instance void class [System]System.CodeDom.CodeVariableReferenceExpression::'.ctor'(string)
-	IL_00ff:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
-	IL_0104:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
-	IL_0109:  pop 
-	IL_010a:  ldloc.1 
-	IL_010b:  callvirt instance class [System]System.CodeDom.CodeAttributeDeclarationCollection class [System]System.CodeDom.CodeTypeMember::get_CustomAttributes()
-	IL_0110:  ldloc.3 
-	IL_0111:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeDeclarationCollection::Add(class [System]System.CodeDom.CodeAttributeDeclaration)
-	IL_0116:  pop 
-	IL_0117:  ldarg.2 
-	IL_0118:  newobj instance void class [System]System.CodeDom.CodeSnippetTypeMember::'.ctor'(string)
-	IL_011d:  stloc.s 4
-	IL_011f:  ldloc.1 
-	IL_0120:  callvirt instance class [System]System.CodeDom.CodeTypeMemberCollection class [System]System.CodeDom.CodeTypeDeclaration::get_Members()
-	IL_0125:  ldloc.s 4
-	IL_0127:  callvirt instance int32 class [System]System.CodeDom.CodeTypeMemberCollection::Add(class [System]System.CodeDom.CodeTypeMember)
-	IL_012c:  pop 
-	IL_012d:  newobj instance void class [System]System.CodeDom.CodeNamespace::'.ctor'()
-	IL_0132:  stloc.s 5
-	IL_0134:  nop 
-	IL_0135:  ldsfld string[] NAnt.DotNet.Tasks.ScriptTask::_defaultNamespaces
-	IL_013a:  stloc.s 7
-	IL_013c:  ldc.i4.0 
-	IL_013d:  stloc.s 8
-	IL_013f:  br IL_0166
-
-	IL_0144:  ldloc.s 7
-	IL_0146:  ldloc.s 8
-	IL_0148:  ldelem.ref 
-	IL_0149:  stloc.s 6
-	IL_014b:  nop 
-	IL_014c:  ldloc.s 5
-	IL_014e:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
-	IL_0153:  ldloc.s 6
-	IL_0155:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
-	IL_015a:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
-	IL_015f:  nop 
-	IL_0160:  ldloc.s 8
-	IL_0162:  ldc.i4.1 
-	IL_0163:  add 
-	IL_0164:  stloc.s 8
-	IL_0166:  ldloc.s 8
-	IL_0168:  ldloc.s 7
-	IL_016a:  ldlen 
-	IL_016b:  conv.i4 
-	IL_016c:  blt IL_0144
-
-	IL_0171:  nop 
-	IL_0172:  ldarg.3 
-	IL_0173:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0178:  stloc.s 10
-	.try { // 0
-	  IL_017a:  br IL_019d
-
-	  IL_017f:  ldloc.s 10
-	  IL_0181:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0186:  stloc.s 9
-	  IL_0188:  nop 
-	  IL_0189:  ldloc.s 5
-	  IL_018b:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
-	  IL_0190:  ldloc.s 9
-	  IL_0192:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
-	  IL_0197:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
-	  IL_019c:  nop 
-	  IL_019d:  ldloc.s 10
-	  IL_019f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_01a4:  brtrue IL_017f
-
-	  IL_01a9:  leave IL_01c5
-
-	} // end .try 0
-	finally  { // 0
-	  IL_01ae:  ldloc.s 10
-	  IL_01b0:  isinst [mscorlib]System.IDisposable
-	  IL_01b5:  dup 
-	  IL_01b6:  stloc.s 11
-	  IL_01b8:  brfalse IL_01c4
-
-	  IL_01bd:  ldloc.s 11
-	  IL_01bf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01c4:  endfinally 
-	} // end handler 0
-	IL_01c5:  ldloc.0 
-	IL_01c6:  callvirt instance class [System]System.CodeDom.CodeNamespaceCollection class [System]System.CodeDom.CodeCompileUnit::get_Namespaces()
-	IL_01cb:  ldloc.s 5
-	IL_01cd:  callvirt instance int32 class [System]System.CodeDom.CodeNamespaceCollection::Add(class [System]System.CodeDom.CodeNamespace)
-	IL_01d2:  pop 
-	IL_01d3:  ldloc.s 5
-	IL_01d5:  callvirt instance class [System]System.CodeDom.CodeTypeDeclarationCollection class [System]System.CodeDom.CodeNamespace::get_Types()
-	IL_01da:  ldloc.1 
-	IL_01db:  callvirt instance int32 class [System]System.CodeDom.CodeTypeDeclarationCollection::Add(class [System]System.CodeDom.CodeTypeDeclaration)
-	IL_01e0:  pop 
-	IL_01e1:  ldloc.0 
-	IL_01e2:  stloc.s 12
-	IL_01e4:  br IL_01e9
+	.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 00 00 ) // ...assemblies..
 
-	IL_01e9:  ldloc.s 12
-	IL_01eb:  ret 
-    } // end of method CompilerInfo::GenerateCode
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.ResGenTask::get_Assemblies () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+	.property instance bool SupportsAssemblyReferences ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 1A 73 75 70 70 6F 72 74 73 61 73 73 65 6D   // ...supportsassem
+		62 6C 79 72 65 66 65 72 65 6E 63 65 73 00 00    ) // blyreferences..
 
-  } // end of class CompilerInfo
+		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_SupportsAssemblyReferences () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_SupportsAssemblyReferences (bool 'value') 
+	}
+	.property instance bool SupportsExternalFileReferences ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 1E 73 75 70 70 6F 72 74 73 65 78 74 65 72   // ...supportsexter
+		6E 61 6C 66 69 6C 65 72 65 66 65 72 65 6E 63 65   // nalfilereference
+		73 00 00                                        ) // s..
 
-  } // end of class NAnt.DotNet.Tasks.ScriptTask
+		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_SupportsExternalFileReferences () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_SupportsExternalFileReferences (bool 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList QualifiedResources ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources () 
+	}
+	.property instance bool RequiresAssemblyReferences ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.ResGenTask::get_RequiresAssemblyReferences () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Tasks.ResGenTask::get_BaseDirectory () 
+		.set instance default void NAnt.DotNet.Tasks.ResGenTask::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.ResGenTask::get_ProgramArguments () 
+	}
+	.property instance string ProgramFileName ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.ResGenTask::get_ProgramFileName () 
+	}
+  } // end of class NAnt.DotNet.Tasks.ResGenTask
 }
 
-.namespace NAnt.DotNet.Types
+.namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit WarningAsError
-  	extends [NAnt.Core]NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit QualifiedResource
+  	extends [mscorlib]System.Object
   {
-    .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
+    .field  private  class [mscorlib]System.IO.FileInfo _inputFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
 
-    // method line 490
+    // method line 487
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class [mscorlib]System.IO.FileInfo input, class [mscorlib]System.IO.FileInfo output)  cil managed 
     {
-        // Method begins at RVA 0xbbcc
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0xbb80
+	// Code size 22 (0x16)
 	.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
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_inputFile
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_outputFile
+	IL_0015:  ret 
+    } // end of method QualifiedResource::.ctor
 
-    // method line 491
+    // method line 488
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Includes ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Input ()  cil managed 
     {
-        // Method begins at RVA 0xbbec
+        // Method begins at RVA 0xbb98
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_includes
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_inputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method WarningAsError::get_Includes
+    } // end of method QualifiedResource::get_Input
 
-    // method line 492
+    // method line 489
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Excludes ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0xbc08
+        // Method begins at RVA 0xbbb4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_excludes
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::_outputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method WarningAsError::get_Excludes
+    } // end of method QualifiedResource::get_Output
 
-	.property instance class NAnt.DotNet.Types.CompilerWarningCollection Includes ()
+	.property instance class [mscorlib]System.IO.FileInfo Input ()
 	{
-		.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 () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::get_Input () 
 	}
-	.property instance class NAnt.DotNet.Types.CompilerWarningCollection Excludes ()
+	.property instance class [mscorlib]System.IO.FileInfo Output ()
 	{
-		.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 () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.QualifiedResource::get_Output () 
 	}
-  } // end of class NAnt.DotNet.Types.WarningAsError
+  } // end of class NAnt.DotNet.Tasks.QualifiedResource
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit CompilerWarningCollection
+  .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 493
+    // method line 490
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xbc23
+        // Method begins at RVA 0xbbcf
 	// 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
+    } // end of method AssemblyAttributeCollection::.ctor
 
-    // method line 494
+    // method line 491
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xbc2c
+        // Method begins at RVA 0xbbd8
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -20551,15 +20469,15 @@
 	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_0009:  call instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::AddRange(class NAnt.DotNet.Types.AssemblyAttributeCollection)
 	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::.ctor
+    } // end of method AssemblyAttributeCollection::.ctor
 
-    // method line 495
+    // method line 492
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarning[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttribute[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xbc3c
+        // Method begins at RVA 0xbbe8
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -20567,37 +20485,37 @@
 	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_0009:  call instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::AddRange(class NAnt.DotNet.Types.AssemblyAttribute[])
 	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::.ctor
+    } // end of method AssemblyAttributeCollection::.ctor
 
-    // method line 496
+    // method line 493
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarning get_Item (int32 index)  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xbc4c
+        // Method begins at RVA 0xbbf8
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.CompilerWarning	V_0)
+		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.CompilerWarning
+	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 CompilerWarningCollection::get_Item
+    } // end of method AssemblyAttributeCollection::get_Item
 
-    // method line 497
+    // method line 494
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.CompilerWarning 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.AssemblyAttribute 'value')  cil managed 
     {
-        // Method begins at RVA 0xbc72
+        // Method begins at RVA 0xbc1e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20607,13 +20525,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 CompilerWarningCollection::set_Item
+    } // end of method AssemblyAttributeCollection::set_Item
 
-    // method line 498
+    // method line 495
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbc30
+	// 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 496
     .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+           instance default int32 Add (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0xbc84
+        // Method begins at RVA 0xbcbc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -20628,13 +20615,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method CompilerWarningCollection::Add
+    } // end of method AssemblyAttributeCollection::Add
 
-    // method line 499
+    // method line 497
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarning[] items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttribute[] items)  cil managed 
     {
-        // Method begins at RVA 0xbca8
+        // Method begins at RVA 0xbce0
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -20649,7 +20636,7 @@
 	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_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 
@@ -20663,13 +20650,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method CompilerWarningCollection::AddRange
+    } // end of method AssemblyAttributeCollection::AddRange
 
-    // method line 500
+    // method line 498
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarningCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttributeCollection items)  cil managed 
     {
-        // Method begins at RVA 0xbcd8
+        // Method begins at RVA 0xbd10
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -20683,8 +20670,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.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 
@@ -20697,13 +20684,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method CompilerWarningCollection::AddRange
+    } // end of method AssemblyAttributeCollection::AddRange
 
-    // method line 501
+    // method line 499
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+           instance default bool Contains (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0xbd10
+        // Method begins at RVA 0xbd48
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -20718,13 +20705,37 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method CompilerWarningCollection::Contains
+    } // end of method AssemblyAttributeCollection::Contains
 
-    // method line 502
+    // method line 500
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.CompilerWarning[] 'array', int32 index)  cil managed 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbd6c
+	// 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 501
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.DotNet.Types.AssemblyAttribute[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xbd31
+        // Method begins at RVA 0xbd8e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20734,13 +20745,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 CompilerWarningCollection::CopyTo
+    } // end of method AssemblyAttributeCollection::CopyTo
 
-    // method line 503
+    // method line 502
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0xbd44
+        // Method begins at RVA 0xbda0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -20755,13 +20766,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method CompilerWarningCollection::IndexOf
+    } // end of method AssemblyAttributeCollection::IndexOf
 
-    // method line 504
+    // method line 503
     .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.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0xbd65
+        // Method begins at RVA 0xbdc1
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20771,32 +20782,32 @@
 	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
+    } // end of method AssemblyAttributeCollection::Insert
 
-    // method line 505
+    // method line 504
     .method public hidebysig 
-           instance default class NAnt.DotNet.Types.CompilerWarningEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyAttributeEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xbd78
+        // Method begins at RVA 0xbdd4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_0)
+		class NAnt.DotNet.Types.AssemblyAttributeEnumerator	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_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 CompilerWarningCollection::GetEnumerator
+    } // end of method AssemblyAttributeCollection::GetEnumerator
 
-    // method line 506
+    // method line 505
     .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+           instance default void Remove (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0xbd93
+        // Method begins at RVA 0xbdef
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20805,28 +20816,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method CompilerWarningCollection::Remove
+    } // end of method AssemblyAttributeCollection::Remove
 
-	.property instance class NAnt.DotNet.Types.CompilerWarning Item (int32)
+	.property instance class NAnt.DotNet.Types.AssemblyAttribute 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') 
+		.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') 
 	}
-  } // end of class NAnt.DotNet.Types.CompilerWarningCollection
+	.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 CompilerWarningEnumerator
+  .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 507
+    // method line 506
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xbda4
+        // Method begins at RVA 0xbe00
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -20839,36 +20854,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.CompilerWarningEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method CompilerWarningEnumerator::.ctor
+    } // end of method AssemblyAttributeEnumerator::.ctor
 
-    // method line 508
+    // method line 507
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarning get_Current ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xbdc8
+        // Method begins at RVA 0xbe24
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.CompilerWarning	V_0)
+		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.CompilerWarningEnumerator::_baseEnumerator
+	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.CompilerWarning
+	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 CompilerWarningEnumerator::get_Current
+    } // end of method AssemblyAttributeEnumerator::get_Current
 
-    // method line 509
+    // method line 508
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xbdf0
+        // Method begins at RVA 0xbe4c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -20876,40 +20891,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	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 CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 510
+    // method line 509
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xbe10
+        // Method begins at RVA 0xbe6c
 	// 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_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 CompilerWarningEnumerator::MoveNext
+    } // end of method AssemblyAttributeEnumerator::MoveNext
 
-    // method line 511
+    // method line 510
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xbe30
+        // Method begins at RVA 0xbe8c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -20917,53 +20932,53 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	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 CompilerWarningEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 512
+    // method line 511
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xbe50
+        // Method begins at RVA 0xbeac
 	// 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_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 CompilerWarningEnumerator::Reset
+    } // end of method AssemblyAttributeEnumerator::Reset
 
-    // method line 513
+    // method line 512
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xbe5e
+        // Method begins at RVA 0xbeba
 	.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_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 CompilerWarningEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.DotNet.Types.CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.DotNet.Types.AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.DotNet.Types.CompilerWarning Current ()
+	.property instance class NAnt.DotNet.Types.AssemblyAttribute Current ()
 	{
-		.get instance default class NAnt.DotNet.Types.CompilerWarning NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current () 
+		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeEnumerator::get_Current () 
 	}
-  } // end of class NAnt.DotNet.Types.CompilerWarningEnumerator
+  } // end of class NAnt.DotNet.Types.AssemblyAttributeEnumerator
 }
 
 .namespace NAnt.DotNet.Types
@@ -20979,11 +20994,11 @@
     .field  private  bool _ifDefined
     .field  private  bool _unlessDefined
 
-    // method line 514
+    // method line 513
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xbe6c
+        // Method begins at RVA 0xbec8
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -20995,11 +21010,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyAttribute::.ctor
 
-    // method line 515
+    // method line 514
     .method public hidebysig specialname 
            instance default string get_TypeName ()  cil managed 
     {
-        // Method begins at RVA 0xbe7c
+        // Method begins at RVA 0xbed8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -21014,11 +21029,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyAttribute::get_TypeName
 
-    // method line 516
+    // method line 515
     .method public hidebysig specialname 
            instance default void set_TypeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xbe97
+        // Method begins at RVA 0xbef3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -21029,11 +21044,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyAttribute::set_TypeName
 
-    // method line 517
+    // method line 516
     .method public hidebysig specialname 
            instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xbea8
+        // Method begins at RVA 0xbf04
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -21048,11 +21063,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyAttribute::get_Value
 
-    // method line 518
+    // method line 517
     .method public hidebysig specialname 
            instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xbec3
+        // Method begins at RVA 0xbf1f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -21062,11 +21077,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyAttribute::set_Value
 
-    // method line 519
+    // method line 518
     .method public hidebysig specialname 
            instance default bool get_AsIs ()  cil managed 
     {
-        // Method begins at RVA 0xbed0
+        // Method begins at RVA 0xbf2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -21081,11 +21096,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyAttribute::get_AsIs
 
-    // method line 520
+    // method line 519
     .method public hidebysig specialname 
            instance default void set_AsIs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xbeeb
+        // Method begins at RVA 0xbf47
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -21095,11 +21110,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyAttribute::set_AsIs
 
-    // method line 521
+    // method line 520
     .method public hidebysig specialname 
            instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xbef8
+        // Method begins at RVA 0xbf54
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -21114,11 +21129,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyAttribute::get_IfDefined
 
-    // method line 522
+    // method line 521
     .method public hidebysig specialname 
            instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xbf13
+        // Method begins at RVA 0xbf6f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -21128,11 +21143,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyAttribute::set_IfDefined
 
-    // method line 523
+    // method line 522
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xbf20
+        // Method begins at RVA 0xbf7c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -21147,11 +21162,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyAttribute::get_UnlessDefined
 
-    // method line 524
+    // method line 523
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xbf3b
+        // Method begins at RVA 0xbf97
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -21213,1052 +21228,717 @@
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit EmbeddedResourceCollection
-  	extends NAnt.DotNet.Types.DataTypeCollectionBase
-  	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 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 525
+    // method line 524
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc0cb
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xbfa1
+	// 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 EmbeddedResourceCollection::.ctor
+	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 525
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
+    {
+        // Method begins at RVA 0xbfaa
+	// 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 526
-    .method public hidebysig 
-           instance default class NAnt.DotNet.Types.EmbeddedResourceEnumerator GetEnumerator ()  cil managed 
+    .method public hidebysig specialname 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0xc0d4
+        // Method begins at RVA 0xbfb4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.EmbeddedResourceEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.DotNet.Types.EmbeddedResourceEnumerator::'.ctor'(class NAnt.DotNet.Types.EmbeddedResourceCollection)
+	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 EmbeddedResourceCollection::GetEnumerator
+    } // end of method ResourceFileSet::get_Prefix
 
     // method line 527
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.EmbeddedResource get_Item (int32 index)  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc0f0
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.EmbeddedResource	V_0)
+        // Method begins at RVA 0xbfcf
+	// Code size 14 (0xe)
+	.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 object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_0014:  castclass NAnt.DotNet.Types.EmbeddedResource
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
-
-	IL_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method EmbeddedResourceCollection::get_Item
+	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
 
     // method line 528
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
+           instance default bool get_DynamicPrefix ()  cil managed 
     {
-        // Method begins at RVA 0xc11d
-	// Code size 22 (0x16)
+        // Method begins at RVA 0xbfe0
+	// 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.ResourceFileSet::_dynamicprefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ResourceFileSet::get_DynamicPrefix
+
+    // method line 529
+    .method public hidebysig specialname 
+           instance default void set_DynamicPrefix (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbffb
+	// 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:  ldarg.2 
-	IL_0010:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
-	IL_0015:  ret 
-    } // end of method EmbeddedResourceCollection::set_Item
+	IL_0003:  stfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
+	IL_0008:  ret 
+    } // end of method ResourceFileSet::set_DynamicPrefix
 
-    // method line 529
+    // method line 530
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.EmbeddedResource get_Item (string 'value')  cil managed 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ResxFiles ()  cil managed 
     {
-        // Method begins at RVA 0xc134
-	// Code size 111 (0x6f)
+        // Method begins at RVA 0xc008
+	// Code size 179 (0xb3)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.EmbeddedResource	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.DotNet.Types.EmbeddedResource	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		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.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 
+	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_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.EmbeddedResource
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_ManifestResourceName()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
+	  IL_0042:  br IL_007e
 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+	  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_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	  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_004c:  leave IL_0065
+	  IL_0089:  leave IL_00a2
 
 	} // 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_008e:  ldloc.2 
+	  IL_008f:  isinst [mscorlib]System.IDisposable
+	  IL_0094:  dup 
+	  IL_0095:  stloc.3 
+	  IL_0096:  brfalse IL_00a1
 
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
+	  IL_009b:  ldloc.3 
+	  IL_009c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00a1:  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 EmbeddedResourceCollection::get_Item
-
-    // method line 530
-    .method family virtual hidebysig specialname 
-           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
-    {
-        // Method begins at RVA 0xc1c0
-	// Code size 19 (0x13)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Type	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.DotNet.Types.EmbeddedResource
-	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_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_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method EmbeddedResourceCollection::get_ItemType
+	IL_00b0:  ldloc.s 4
+	IL_00b2:  ret 
+    } // end of method ResourceFileSet::get_ResxFiles
 
     // method line 531
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_NonResxFiles ()  cil managed 
     {
-        // Method begins at RVA 0xc1e0
-	.override class [mscorlib]System.Collections.IList::get_Item
-	// Code size 16 (0x10)
+        // Method begins at RVA 0xc0d8
+	// Code size 179 (0xb3)
 	.maxstack 2
 	.locals init (
-		object	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:  ldarg.1 
-	IL_0003:  call instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item(int32)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	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_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.get_Item
+	  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
 
-    // method line 532
-    .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 0xc1fc
-	.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.EmbeddedResource
-	IL_0010:  call instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::set_Item(int32, class NAnt.DotNet.Types.EmbeddedResource)
-	IL_0015:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.set_Item
+	  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
 
-    // method line 533
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc213
-	.override class [mscorlib]System.Collections.IList::Insert
-	// 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.EmbeddedResource
-	IL_0010:  call instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::Insert(int32, class NAnt.DotNet.Types.EmbeddedResource)
-	IL_0015:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.Insert
+	  IL_0089:  leave IL_00a2
 
-    // method line 534
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc22a
-	.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:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  castclass NAnt.DotNet.Types.EmbeddedResource
-	IL_000f:  call instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::Remove(class NAnt.DotNet.Types.EmbeddedResource)
-	IL_0014:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.Remove
+	} // 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
 
-    // method line 535
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc240
-	.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.EmbeddedResource
-	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
+	  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_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.Contains
+	IL_00b0:  ldloc.s 4
+	IL_00b2:  ret 
+    } // end of method ResourceFileSet::get_NonResxFiles
 
-    // method line 536
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
+    // method line 532
+    .method public virtual hidebysig 
+           instance default object Clone ()  cil managed 
     {
-        // Method begins at RVA 0xc270
-	.override class [mscorlib]System.Collections.IList::IndexOf
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0xc1a8
+	// Code size 47 (0x2f)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		class NAnt.DotNet.Types.ResourceFileSet	V_0,
+		object	V_1)
 	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.EmbeddedResource
-	IL_000f:  call instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::IndexOf(class NAnt.DotNet.Types.EmbeddedResource)
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
-
+	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:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.IndexOf
-
-    // method line 537
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc298
-	.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:  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.EmbeddedResource
-	IL_000f:  call instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class NAnt.DotNet.Types.EmbeddedResource)
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
+	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_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method EmbeddedResourceCollection::System.Collections.IList.Add
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method ResourceFileSet::Clone
 
-    // method line 538
+    // method line 533
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.EmbeddedResourceCollection items)  cil managed 
+           instance default string GetManifestResourceName (string resourceFile)  cil managed 
     {
-        // Method begins at RVA 0xc2c0
-	// Code size 41 (0x29)
+        // Method begins at RVA 0xc1e4
+	// Code size 17 (0x11)
 	.maxstack 3
 	.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_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class NAnt.DotNet.Types.EmbeddedResource)
-	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.DotNet.Types.DataTypeCollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	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_0028:  ret 
-    } // end of method EmbeddedResourceCollection::AddRange
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method ResourceFileSet::GetManifestResourceName
 
-    // method line 539
+    // method line 534
     .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
+           instance default string GetManifestResourceName (string physicalPath, string logicalPath)  cil managed 
     {
-        // Method begins at RVA 0xc2f8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0xc204
+	// Code size 496 (0x1f0)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		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 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.ArrayList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EmbeddedResourceCollection::Add
+	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
 
-    // method line 540
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc319
-	// 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::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method EmbeddedResourceCollection::Insert
+	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
 
-    // method line 541
-    .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc329
-	// 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 EmbeddedResourceCollection::Remove
+	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
 
-    // method line 542
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc338
-	// 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.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::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_00a0:  ldloc.3 
+	IL_00a1:  ldloc.1 
+	IL_00a2:  callvirt instance bool string::StartsWith(string)
+	IL_00a7:  brfalse IL_00bc
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EmbeddedResourceCollection::Contains
+	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
 
-    // method line 543
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc35c
-	// 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.DotNet.Types.DataTypeCollectionBase::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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EmbeddedResourceCollection::IndexOf
+	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
 
-	.property instance object System.Collections.IList.Item (int32)
-	{
-		.get instance default object NAnt.DotNet.Types.EmbeddedResourceCollection::System.Collections.IList.get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.EmbeddedResourceCollection::System.Collections.IList.set_Item (int32 index, object 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.EmbeddedResource Item (int32)
-	{
-		.get instance default class NAnt.DotNet.Types.EmbeddedResource NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.EmbeddedResourceCollection::set_Item (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.EmbeddedResource Item (string)
-	{
-		.get instance default class NAnt.DotNet.Types.EmbeddedResource NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item (string 'value') 
-	}
-	.property instance class [mscorlib]System.Type ItemType ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.EmbeddedResourceCollection::get_ItemType () 
-	}
-  } // end of class NAnt.DotNet.Types.EmbeddedResourceCollection
-}
+	IL_012f:  nop 
+	IL_0130:  br IL_01c0
 
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit EmbeddedResourceEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0135:  ldc.i4.0 
+	IL_0136:  stloc.s 11
+	IL_0138:  br IL_01a7
 
-    // method line 544
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.EmbeddedResourceCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0xc380
-	// 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.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method EmbeddedResourceEnumerator::.ctor
+	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
 
-    // method line 545
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.EmbeddedResource get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0xc3a4
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.EmbeddedResource	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.DotNet.Types.EmbeddedResource
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0150:  ldloc.s 12
+	IL_0152:  call bool char::IsDigit(char)
+	IL_0157:  brfalse IL_0177
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method EmbeddedResourceEnumerator::get_Current
+	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
 
-    // method line 546
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0xc3cc
-	.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.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0177:  ldloc.s 12
+	IL_0179:  call bool char::IsLetterOrDigit(char)
+	IL_017e:  brtrue IL_0194
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method EmbeddedResourceEnumerator::System.Collections.IEnumerator.get_Current
+	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
 
-    // method line 547
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0xc3ec
-	// 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.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method EmbeddedResourceEnumerator::MoveNext
+	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
 
-    // method line 548
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0xc40c
-	.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.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method EmbeddedResourceEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_01ed:  ldloc.s 13
+	IL_01ef:  ret 
+    } // end of method ResourceFileSet::GetManifestResourceName
 
-    // method line 549
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0xc42c
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method EmbeddedResourceEnumerator::Reset
+	.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..
 
-    // method line 550
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0xc43a
-	.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.EmbeddedResourceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method EmbeddedResourceEnumerator::System.Collections.IEnumerator.Reset
+		.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 ) // ....
 
-	.property instance object System.Collections.IEnumerator.Current ()
+		.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                                           ) // ..
+
+		.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 object NAnt.DotNet.Types.EmbeddedResourceEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles () 
 	}
-	.property instance class NAnt.DotNet.Types.EmbeddedResource Current ()
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet NonResxFiles ()
 	{
-		.get instance default class NAnt.DotNet.Types.EmbeddedResource NAnt.DotNet.Types.EmbeddedResourceEnumerator::get_Current () 
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_NonResxFiles () 
 	}
-  } // end of class NAnt.DotNet.Types.EmbeddedResourceEnumerator
+  } // end of class NAnt.DotNet.Types.ResourceFileSet
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit Package
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class public auto ansi sealed DelaySign
+  	extends [mscorlib]System.Enum
   {
-    .field  private  string _name
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-
-    // method line 551
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xc448
-	// 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 552
-    .method public hidebysig specialname 
-           instance default string get_PackageName ()  cil managed 
-    {
-        // Method begins at RVA 0xc458
-	// 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.Package::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Package::get_PackageName
-
-    // method line 553
-    .method public hidebysig specialname 
-           instance default void set_PackageName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc473
-	// Code size 9 (0x9)
-	.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
-
-    // method line 554
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xc480
-	// 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.Package::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Package::get_IfDefined
-
-    // method line 555
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc49b
-	// 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 line 556
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xc4a8
-	// 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.Package::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Package::get_UnlessDefined
-
-    // method line 557
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc4c3
-	// 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::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Package::set_UnlessDefined
-
-	.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 [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..
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    .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)
 
-		.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
+  } // end of class NAnt.DotNet.Types.DelaySign
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit NamespaceImport
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class public auto ansi beforefieldinit DelaySignConverter
+  	extends [System]System.ComponentModel.EnumConverter
   {
-    .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 558
+    // method line 535
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc4cd
-	// 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 559
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string nameSpace)  cil managed 
-    {
-        // Method begins at RVA 0xc4dd
-	// Code size 40 (0x28)
+        // Method begins at RVA 0xc400
+	// Code size 18 (0x12)
 	.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 560
-    .method public hidebysig specialname 
-           instance default string get_TempName ()  cil managed 
-    {
-        // Method begins at RVA 0xc508
-	// 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 561
-    .method public hidebysig specialname 
-           instance default void set_TempName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc523
-	// 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 562
-    .method public hidebysig specialname 
-           instance default string get_Namespace ()  cil managed 
-    {
-        // Method begins at RVA 0xc530
-	// 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 563
-    .method public hidebysig specialname 
-           instance default void set_Namespace (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc54b
-	// 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 564
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xc55c
-	// 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 565
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc577
-	// 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
+	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 566
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 536
+    .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 0xc584
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xc414
+	// Code size 115 (0x73)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		object	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
+	IL_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NamespaceImport::get_UnlessDefined
-
-    // method line 567
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc59f
-	// 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.
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0062
 
-		.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....
+	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
 
-		.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.
+	IL_0021:  ldc.i4.2 
+	IL_0022:  box NAnt.DotNet.Types.DelaySign
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_0071
 
-		.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_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
 
-		.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_003f:  ldc.i4.1 
+	IL_0040:  box NAnt.DotNet.Types.DelaySign
+	IL_0045:  stloc.1 
+	IL_0046:  br IL_0071
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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
 
-		.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..
+	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
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0071:  ldloc.1 
+	IL_0072:  ret 
+    } // end of method DelaySignConverter::ConvertFrom
 
-		.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
+  } // end of class NAnt.DotNet.Types.DelaySignConverter
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit ResourceFileSetCollection
+  .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 568
+    // method line 537
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc5a9
+        // Method begins at RVA 0xc493
 	// 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 ResourceFileSetCollection::.ctor
+    } // end of method PackageCollection::.ctor
 
-    // method line 569
+    // method line 538
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSetCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xc5b2
+        // Method begins at RVA 0xc49c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -22266,15 +21946,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.ResourceFileSetCollection::AddRange(class NAnt.DotNet.Types.ResourceFileSetCollection)
+	IL_0009:  call instance void class NAnt.DotNet.Types.PackageCollection::AddRange(class NAnt.DotNet.Types.PackageCollection)
 	IL_000e:  ret 
-    } // end of method ResourceFileSetCollection::.ctor
+    } // end of method PackageCollection::.ctor
 
-    // method line 570
+    // method line 539
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSet[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.Package[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xc5c2
+        // Method begins at RVA 0xc4ac
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -22282,37 +21962,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.ResourceFileSetCollection::AddRange(class NAnt.DotNet.Types.ResourceFileSet[])
+	IL_0009:  call instance void class NAnt.DotNet.Types.PackageCollection::AddRange(class NAnt.DotNet.Types.Package[])
 	IL_000e:  ret 
-    } // end of method ResourceFileSetCollection::.ctor
+    } // end of method PackageCollection::.ctor
 
-    // method line 571
+    // method line 540
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ResourceFileSet get_Item (int32 index)  cil managed 
+           instance default class NAnt.DotNet.Types.Package get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xc5d4
+        // Method begins at RVA 0xc4bc
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSet	V_0)
+		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.ResourceFileSet
+	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 ResourceFileSetCollection::get_Item
+    } // end of method PackageCollection::get_Item
 
-    // method line 572
+    // method line 541
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.ResourceFileSet 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.Package 'value')  cil managed 
     {
-        // Method begins at RVA 0xc5fa
+        // Method begins at RVA 0xc4e2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22322,13 +22002,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 ResourceFileSetCollection::set_Item
+    } // end of method PackageCollection::set_Item
 
-    // method line 573
+    // method line 542
     .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
+           instance default int32 Add (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0xc60c
+        // Method begins at RVA 0xc4f4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -22343,13 +22023,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ResourceFileSetCollection::Add
+    } // end of method PackageCollection::Add
 
-    // method line 574
+    // method line 543
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.ResourceFileSet[] items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.Package[] items)  cil managed 
     {
-        // Method begins at RVA 0xc630
+        // Method begins at RVA 0xc518
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -22364,7 +22044,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.DotNet.Types.ResourceFileSetCollection::Add(class NAnt.DotNet.Types.ResourceFileSet)
+	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 
@@ -22378,13 +22058,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method ResourceFileSetCollection::AddRange
+    } // end of method PackageCollection::AddRange
 
-    // method line 575
+    // method line 544
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.ResourceFileSetCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.PackageCollection items)  cil managed 
     {
-        // Method begins at RVA 0xc660
+        // Method begins at RVA 0xc548
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -22398,8 +22078,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Types.ResourceFileSetCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.DotNet.Types.ResourceFileSetCollection::Add(class NAnt.DotNet.Types.ResourceFileSet)
+	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 
@@ -22412,13 +22092,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method ResourceFileSetCollection::AddRange
+    } // end of method PackageCollection::AddRange
 
-    // method line 576
+    // method line 545
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
+           instance default bool Contains (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0xc698
+        // Method begins at RVA 0xc580
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -22433,13 +22113,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ResourceFileSetCollection::Contains
+    } // end of method PackageCollection::Contains
 
-    // method line 577
+    // method line 546
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.ResourceFileSet[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.DotNet.Types.Package[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xc6b9
+        // Method begins at RVA 0xc5a1
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22449,13 +22129,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 ResourceFileSetCollection::CopyTo
+    } // end of method PackageCollection::CopyTo
 
-    // method line 578
+    // method line 547
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0xc6cc
+        // Method begins at RVA 0xc5b4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -22470,13 +22150,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ResourceFileSetCollection::IndexOf
+    } // end of method PackageCollection::IndexOf
 
-    // method line 579
+    // method line 548
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0xc6ed
+        // Method begins at RVA 0xc5d5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22486,32 +22166,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method ResourceFileSetCollection::Insert
+    } // end of method PackageCollection::Insert
 
-    // method line 580
+    // method line 549
     .method public hidebysig 
-           instance default class NAnt.DotNet.Types.ResourceFileSetEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.DotNet.Types.PackageEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xc700
+        // Method begins at RVA 0xc5e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSetEnumerator	V_0)
+		class NAnt.DotNet.Types.PackageEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.DotNet.Types.ResourceFileSetEnumerator::'.ctor'(class NAnt.DotNet.Types.ResourceFileSetCollection)
+	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 ResourceFileSetCollection::GetEnumerator
+    } // end of method PackageCollection::GetEnumerator
 
-    // method line 581
+    // method line 550
     .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
+           instance default void Remove (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0xc71b
+        // Method begins at RVA 0xc603
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22520,28 +22200,28 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method ResourceFileSetCollection::Remove
+    } // end of method PackageCollection::Remove
 
-	.property instance class NAnt.DotNet.Types.ResourceFileSet Item (int32)
+	.property instance class NAnt.DotNet.Types.Package Item (int32)
 	{
-		.get instance default class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Types.ResourceFileSetCollection::get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.ResourceFileSetCollection::set_Item (int32 index, class NAnt.DotNet.Types.ResourceFileSet 'value') 
+		.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.ResourceFileSetCollection
+  } // end of class NAnt.DotNet.Types.PackageCollection
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit ResourceFileSetEnumerator
+  .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 582
+    // method line 551
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSetCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xc72c
+        // Method begins at RVA 0xc614
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -22554,36 +22234,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.ResourceFileSetEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method ResourceFileSetEnumerator::.ctor
+    } // end of method PackageEnumerator::.ctor
 
-    // method line 583
+    // method line 552
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ResourceFileSet get_Current ()  cil managed 
+           instance default class NAnt.DotNet.Types.Package get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xc750
+        // Method begins at RVA 0xc638
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSet	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.ResourceFileSetEnumerator::_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.ResourceFileSet
+	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 ResourceFileSetEnumerator::get_Current
+    } // end of method PackageEnumerator::get_Current
 
-    // method line 584
+    // method line 553
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xc778
+        // Method begins at RVA 0xc660
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -22591,40 +22271,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_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 ResourceFileSetEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method PackageEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 585
+    // method line 554
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xc798
+        // Method begins at RVA 0xc680
 	// 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.ResourceFileSetEnumerator::_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 ResourceFileSetEnumerator::MoveNext
+    } // end of method PackageEnumerator::MoveNext
 
-    // method line 586
+    // method line 555
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xc7b8
+        // Method begins at RVA 0xc6a0
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -22632,578 +22312,810 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_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 ResourceFileSetEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method PackageEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 587
+    // method line 556
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xc7d8
+        // Method begins at RVA 0xc6c0
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_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 ResourceFileSetEnumerator::Reset
+    } // end of method PackageEnumerator::Reset
 
-    // method line 588
+    // method line 557
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xc7e6
+        // Method begins at RVA 0xc6ce
 	.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.ResourceFileSetEnumerator::_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 ResourceFileSetEnumerator::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.ResourceFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.DotNet.Types.PackageEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.DotNet.Types.ResourceFileSet Current ()
+	.property instance class NAnt.DotNet.Types.Package Current ()
 	{
-		.get instance default class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Types.ResourceFileSetEnumerator::get_Current () 
+		.get instance default class NAnt.DotNet.Types.Package NAnt.DotNet.Types.PackageEnumerator::get_Current () 
 	}
-  } // end of class NAnt.DotNet.Types.ResourceFileSetEnumerator
-}
-
-.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
+  } // end of class NAnt.DotNet.Types.PackageEnumerator
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit DebugOutputConverter
-  	extends [System]System.ComponentModel.EnumConverter
-  {
+  .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 589
-    .method public hidebysig specialname rtspecialname 
+    // method line 558
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc7f4
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xc6dc
+	// Code size 19 (0x13)
 	.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
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.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.DotNet.Types.DataTypeCollectionBase::_list
+	IL_0012:  ret 
+    } // end of method DataTypeCollectionBase::.ctor
 
-    // method line 590
-    .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 559
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0xc808
-	// Code size 115 (0x73)
-	.maxstack 4
+        // Method begins at RVA 0xc6f0
+	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		object	V_1)
+		bool	V_0)
 	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	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_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized
 
-	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
+    // method line 560
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
+    {
+        // Method begins at RVA 0xc708
+	// 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_0071:  ldloc.1 
-	IL_0072:  ret 
-    } // end of method DebugOutputConverter::ConvertFrom
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DataTypeCollectionBase::get_Count
 
-  } // end of class NAnt.DotNet.Types.DebugOutputConverter
-}
+    // method line 561
+    .method public final virtual hidebysig newslot 
+           instance default void CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xc728
+	// 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
 
-.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..
+    // method line 562
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
+    {
+        // Method begins at RVA 0xc738
+	.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:  stloc.0 
+	IL_0003:  br IL_0008
 
-    .field  private initonly  class NAnt.DotNet.Types.ModuleCollection _modules
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_SyncRoot
 
-    // method line 591
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 563
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xc887
+        // Method begins at RVA 0xc750
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
 	// 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
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerator	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 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 ModuleSet::.ctor
+    } // end of method DataTypeCollectionBase::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 592
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
+    // method line 564
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0xc89c
-	// Code size 62 (0x3e)
+        // Method begins at RVA 0xc770
+	// Code size 10 (0xa)
 	.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.DotNet.Types.ModuleSet::_dir
-	IL_0007:  brtrue IL_0030
-
-	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	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_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::get_IsFixedSize
 
-	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
+    // method line 565
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
+    {
+        // Method begins at RVA 0xc788
+	// 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_003c:  ldloc.0 
-	IL_003d:  ret 
-    } // end of method ModuleSet::get_Dir
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::get_IsReadOnly
 
-    // method line 593
-    .method public hidebysig specialname 
-           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 566
+    .method public final virtual hidebysig newslot 
+           instance default void RemoveAt (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xc8e6
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc79e
+	// Code size 21 (0x15)
 	.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_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 594
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ModuleCollection get_Modules ()  cil managed 
+    // method line 567
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0xc7b4
+	// 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
+
+    // method line 568
+    .method family hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
     {
-        // Method begins at RVA 0xc8f0
+        // Method begins at RVA 0xc7c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ModuleCollection	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::_modules
+	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 ModuleSet::get_Modules
+    } // end of method DataTypeCollectionBase::get_List
 
-	.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..
+    // method line 569
+    .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
 
-		.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') 
+    // method line 570
+    .method family hidebysig 
+           instance default void ValidateType (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc7e0
+	// 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
+
+    // method line 571
+    .method family hidebysig 
+           instance default void RangeCheck (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xc832
+	// Code size 44 (0x2c)
+	.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
+
+	.property instance bool System.Collections.ICollection.IsSynchronized ()
+	{
+		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized () 
 	}
-	.property instance class NAnt.DotNet.Types.ModuleCollection Modules ()
+	.property instance object System.Collections.ICollection.SyncRoot ()
 	{
-		.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 () 
+		.get instance default object NAnt.DotNet.Types.DataTypeCollectionBase::System.Collections.ICollection.get_SyncRoot () 
 	}
-  } // end of class NAnt.DotNet.Types.ModuleSet
+	.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 ()
+	{
+		.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 beforefieldinit CompilerWarning
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .field  private  string _number
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+  .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..
 
-    // method line 595
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 572
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc90b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xc85f
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method CompilerWarning::.ctor
-
-    // method line 596
-    .method public hidebysig specialname 
-           instance default string get_Number ()  cil managed 
-    {
-        // Method begins at RVA 0xc91c
-	// 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.CompilerWarning::_number
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerWarning::get_Number
-
-    // method line 597
-    .method public hidebysig specialname 
-           instance default void set_Number (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc937
-	// Code size 9 (0x9)
-	.maxstack 8
-	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_0001:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::'.ctor'()
+	IL_0006:  ret 
+    } // end of method NamespaceImportCollection::.ctor
 
-    // method line 598
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 573
+    .method public hidebysig 
+           instance default class NAnt.DotNet.Types.NamespaceImportEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xc944
+        // Method begins at RVA 0xc868
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
+	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 CompilerWarning::get_IfDefined
+    } // end of method NamespaceImportCollection::GetEnumerator
 
-    // method line 599
+    // method line 574
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xc95f
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xc884
+	// 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:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
-	IL_0008:  ret 
-    } // end of method CompilerWarning::set_IfDefined
+	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
 
-    // method line 600
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method NamespaceImportCollection::get_Item
+
+    // method line 575
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0xc96c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0xc8b1
+	// Code size 22 (0x16)
+	.maxstack 8
 	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerWarning::get_UnlessDefined
+	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
 
-    // method line 601
+    // method line 576
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc987
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xc8c8
+	// 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.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.CompilerWarning::_unlessDefined
-	IL_0008:  ret 
-    } // end of method CompilerWarning::set_UnlessDefined
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	.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.
+	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
 
-		.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..
+	  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
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-		.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..
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_004c:  leave IL_0065
 
-		.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
-}
+	} // 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
 
-.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..
+	  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 602
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 577
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0xc991
-	// 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 begins at RVA 0xc954
+	// 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
 
-    // method line 603
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0xc99a
-	// 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
+	  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
 
-    // method line 604
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.Package[] 'value')  cil managed 
+	  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 578
+    .method family virtual hidebysig specialname 
+           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0xc9aa
-	// 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 begins at RVA 0xca40
+	// 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
 
-    // method line 605
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.Package get_Item (int32 index)  cil managed 
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method NamespaceImportCollection::get_ItemType
+
+    // method line 579
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xc9bc
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0xca60
+	.override class [mscorlib]System.Collections.IList::get_Item
+	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.Package	V_0)
+		object	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_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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method PackageCollection::get_Item
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.get_Item
 
-    // method line 606
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.Package 'value')  cil managed 
+    // method line 580
+    .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 0xc9e2
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xca7c
+	.override class [mscorlib]System.Collections.IList::set_Item
+	// Code size 22 (0x16)
 	.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
+	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 607
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.Package item)  cil managed 
+    // method line 581
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca93
+	.override class [mscorlib]System.Collections.IList::Insert
+	// 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::Insert(int32, class NAnt.DotNet.Types.NamespaceImport)
+	IL_0015:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Insert
+
+    // method line 582
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xc9f4
+        // Method begins at RVA 0xcaaa
+	.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:  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 583
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcac0
+	.override class [mscorlib]System.Collections.IList::Contains
+	// Code size 33 (0x21)
 	.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.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:  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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PackageCollection::Add
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Contains
 
-    // method line 608
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.Package[] items)  cil managed 
+    // method line 584
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xca18
-	// Code size 34 (0x22)
-	.maxstack 3
+        // Method begins at RVA 0xcaf0
+	.override class [mscorlib]System.Collections.IList::IndexOf
+	// Code size 28 (0x1c)
+	.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:  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_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_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.IndexOf
 
-	IL_0021:  ret 
-    } // end of method PackageCollection::AddRange
+    // method line 585
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcb18
+	.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:  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
 
-    // method line 609
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Add
+
+    // method line 586
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.PackageCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.NamespaceImportCollection items)  cil managed 
     {
-        // Method begins at RVA 0xca48
+        // Method begins at RVA 0xcb40
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -23217,8 +23129,8 @@
 	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_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 
@@ -23227,140 +23139,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 PackageCollection::AddRange
+    } // end of method NamespaceImportCollection::AddRange
 
-    // method line 610
+    // method line 587
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.Package item)  cil managed 
+           instance default int32 Add (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0xca80
+        .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 0xcb78
 	// 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.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 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 PackageCollection::Contains
+    } // end of method NamespaceImportCollection::Add
 
-    // method line 611
+    // method line 588
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.Package[] 'array', int32 index)  cil managed 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0xcaa1
+        // Method begins at RVA 0xcb99
 	// 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.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method PackageCollection::CopyTo
+    } // end of method NamespaceImportCollection::Insert
 
-    // method line 612
+    // method line 589
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.Package item)  cil managed 
+           instance default void Remove (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcba9
+	// 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
+
+    // method line 590
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0xcab4
+        // Method begins at RVA 0xcbb8
 	// 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.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 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::IndexOf
-
-    // method line 613
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.Package item)  cil managed 
-    {
-        // Method begins at RVA 0xcad5
-	// 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
+    } // end of method NamespaceImportCollection::Contains
 
-    // method line 614
+    // method line 591
     .method public hidebysig 
-           instance default class NAnt.DotNet.Types.PackageEnumerator GetEnumerator ()  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0xcae8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xcbdc
+	// Code size 21 (0x15)
+	.maxstack 2
 	.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 615
-    .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.Package item)  cil managed 
-    {
-        // Method begins at RVA 0xcb03
-	// Code size 14 (0xe)
-	.maxstack 8
+		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 void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method PackageCollection::Remove
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	.property instance class NAnt.DotNet.Types.Package Item (int32)
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NamespaceImportCollection::IndexOf
+
+	.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 616
+    // method line 592
     .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 0xcb14
+        // Method begins at RVA 0xcc00
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -23373,36 +23286,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 617
+    // method line 593
     .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 0xcb38
+        // Method begins at RVA 0xcc24
 	// 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 618
+    // method line 594
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xcb60
+        // Method begins at RVA 0xcc4c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -23410,40 +23323,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 619
+    // method line 595
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xcb80
+        // Method begins at RVA 0xcc6c
 	// 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 620
+    // method line 596
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xcba0
+        // Method begins at RVA 0xcc8c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -23451,53 +23364,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 621
+    // method line 597
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xcbc0
+        // Method begins at RVA 0xccac
 	// 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 622
+    // method line 598
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xcbce
+        // Method begins at RVA 0xccba
 	.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
@@ -23510,11 +23423,11 @@
     .field  private initonly  class NAnt.DotNet.Types.ModuleSet _moduleSet
     .field  private initonly  class [mscorlib]System.Collections.ArrayList _list
 
-    // method line 623
+    // method line 599
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ModuleSet moduleSet)  cil managed 
     {
-        // Method begins at RVA 0xcbdc
+        // Method begins at RVA 0xccc8
 	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -23536,11 +23449,11 @@
 	IL_002b:  ret 
     } // end of method ModuleCollection::.ctor
 
-    // method line 624
+    // method line 600
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.Module get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xcc0c
+        // Method begins at RVA 0xccf8
 	// Code size 68 (0x44)
 	.maxstack 3
 	.locals init (
@@ -23574,11 +23487,11 @@
 	IL_0043:  ret 
     } // end of method ModuleCollection::get_Item
 
-    // method line 625
+    // method line 601
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0xcc5c
+        // Method begins at RVA 0xcd48
 	// Code size 57 (0x39)
 	.maxstack 8
 	IL_0000:  nop 
@@ -23606,11 +23519,11 @@
 	IL_0038:  ret 
     } // end of method ModuleCollection::set_Item
 
-    // method line 626
+    // method line 602
     .method family hidebysig specialname 
            instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
     {
-        // Method begins at RVA 0xcc98
+        // Method begins at RVA 0xcd84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -23625,11 +23538,11 @@
 	IL_000e:  ret 
     } // end of method ModuleCollection::get_List
 
-    // method line 627
+    // method line 603
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xccb4
+        // Method begins at RVA 0xcda0
 	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -23646,11 +23559,11 @@
 	IL_0013:  ret 
     } // end of method ModuleCollection::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 628
+    // method line 604
     .method private final virtual hidebysig newslot specialname 
            instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0xccd4
+        // Method begins at RVA 0xcdc0
 	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
 	// Code size 10 (0xa)
 	.maxstack 1
@@ -23665,11 +23578,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::System.Collections.ICollection.get_IsSynchronized
 
-    // method line 629
+    // method line 605
     .method public final virtual hidebysig newslot specialname 
            instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0xccec
+        // Method begins at RVA 0xcdd8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -23685,11 +23598,11 @@
 	IL_0013:  ret 
     } // end of method ModuleCollection::get_Count
 
-    // method line 630
+    // method line 606
     .method public final virtual hidebysig newslot 
            instance default void CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xcd0c
+        // Method begins at RVA 0xcdf8
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -23701,11 +23614,11 @@
 	IL_000e:  ret 
     } // end of method ModuleCollection::CopyTo
 
-    // method line 631
+    // method line 607
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0xcd1c
+        // Method begins at RVA 0xce08
 	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
 	// Code size 10 (0xa)
 	.maxstack 1
@@ -23720,11 +23633,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::System.Collections.ICollection.get_SyncRoot
 
-    // method line 632
+    // method line 608
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0xcd34
+        // Method begins at RVA 0xce20
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -23738,11 +23651,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::get_IsFixedSize
 
-    // method line 633
+    // method line 609
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0xcd4c
+        // Method begins at RVA 0xce38
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -23756,11 +23669,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::get_IsReadOnly
 
-    // method line 634
+    // method line 610
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xcd64
+        // Method begins at RVA 0xce50
 	.override class [mscorlib]System.Collections.IList::get_Item
 	// Code size 16 (0x10)
 	.maxstack 2
@@ -23777,11 +23690,11 @@
 	IL_000f:  ret 
     } // end of method ModuleCollection::System.Collections.IList.get_Item
 
-    // method line 635
+    // method line 611
     .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 0xcd80
+        // Method begins at RVA 0xce6c
 	.override class [mscorlib]System.Collections.IList::set_Item
 	// Code size 56 (0x38)
 	.maxstack 8
@@ -23809,11 +23722,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::System.Collections.IList.set_Item
 
-    // method line 636
+    // method line 612
     .method public final virtual hidebysig newslot 
            instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0xcdb9
+        // Method begins at RVA 0xcea5
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -23823,11 +23736,11 @@
 	IL_000c:  ret 
     } // end of method ModuleCollection::Clear
 
-    // method line 637
+    // method line 613
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0xcdc7
+        // Method begins at RVA 0xceb3
 	.override class [mscorlib]System.Collections.IList::Insert
 	// Code size 56 (0x38)
 	.maxstack 8
@@ -23855,11 +23768,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Insert
 
-    // method line 638
+    // method line 614
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xce00
+        // Method begins at RVA 0xceec
 	.override class [mscorlib]System.Collections.IList::Remove
 	// Code size 55 (0x37)
 	.maxstack 8
@@ -23886,11 +23799,11 @@
 	IL_0036:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Remove
 
-    // method line 639
+    // method line 615
     .method public final virtual hidebysig newslot 
            instance default void RemoveAt (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xce38
+        // Method begins at RVA 0xcf24
 	// Code size 56 (0x38)
 	.maxstack 8
 	IL_0000:  nop 
@@ -23917,11 +23830,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::RemoveAt
 
-    // method line 640
+    // method line 616
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xce74
+        // Method begins at RVA 0xcf60
 	.override class [mscorlib]System.Collections.IList::Contains
 	// Code size 67 (0x43)
 	.maxstack 2
@@ -23955,11 +23868,11 @@
 	IL_0042:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Contains
 
-    // method line 641
+    // method line 617
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xcec4
+        // Method begins at RVA 0xcfb0
 	.override class [mscorlib]System.Collections.IList::IndexOf
 	// Code size 62 (0x3e)
 	.maxstack 2
@@ -23992,11 +23905,11 @@
 	IL_003d:  ret 
     } // end of method ModuleCollection::System.Collections.IList.IndexOf
 
-    // method line 642
+    // method line 618
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf10
+        // Method begins at RVA 0xcffc
 	.override class [mscorlib]System.Collections.IList::Add
 	// Code size 62 (0x3e)
 	.maxstack 2
@@ -24029,11 +23942,11 @@
 	IL_003d:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Add
 
-    // method line 643
+    // method line 619
     .method public hidebysig 
            instance default void AddRange (class NAnt.DotNet.Types.ModuleCollection items)  cil managed 
     {
-        // Method begins at RVA 0xcf5c
+        // Method begins at RVA 0xd048
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -24063,11 +23976,11 @@
 	IL_0028:  ret 
     } // end of method ModuleCollection::AddRange
 
-    // method line 644
+    // method line 620
     .method public hidebysig 
            instance default int32 Add (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf94
+        // Method begins at RVA 0xd080
 	// Code size 56 (0x38)
 	.maxstack 2
 	.locals init (
@@ -24096,11 +24009,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::Add
 
-    // method line 645
+    // method line 621
     .method public hidebysig 
            instance default class NAnt.DotNet.Types.ModuleEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xcfd8
+        // Method begins at RVA 0xd0c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24115,11 +24028,11 @@
 	IL_000e:  ret 
     } // end of method ModuleCollection::GetEnumerator
 
-    // method line 646
+    // method line 622
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0xcff3
+        // Method begins at RVA 0xd0df
 	// Code size 50 (0x32)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24143,11 +24056,11 @@
 	IL_0031:  ret 
     } // end of method ModuleCollection::Insert
 
-    // method line 647
+    // method line 623
     .method public hidebysig 
            instance default void Remove (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0xd026
+        // Method begins at RVA 0xd112
 	// Code size 40 (0x28)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24169,11 +24082,11 @@
 	IL_0027:  ret 
     } // end of method ModuleCollection::Remove
 
-    // method line 648
+    // method line 624
     .method public hidebysig 
            instance default bool Contains (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0xd050
+        // Method begins at RVA 0xd13c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -24190,11 +24103,11 @@
 	IL_0014:  ret 
     } // end of method ModuleCollection::Contains
 
-    // method line 649
+    // method line 625
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0xd074
+        // Method begins at RVA 0xd160
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -24255,11 +24168,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 650
+    // method line 626
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ModuleCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xd098
+        // Method begins at RVA 0xd184
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -24276,11 +24189,11 @@
 	IL_0015:  ret 
     } // end of method ModuleEnumerator::.ctor
 
-    // method line 651
+    // method line 627
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.Module get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xd0bc
+        // Method begins at RVA 0xd1a8
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -24297,11 +24210,11 @@
 	IL_0018:  ret 
     } // end of method ModuleEnumerator::get_Current
 
-    // method line 652
+    // method line 628
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xd0e4
+        // Method begins at RVA 0xd1d0
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -24317,11 +24230,11 @@
 	IL_000e:  ret 
     } // end of method ModuleEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 653
+    // method line 629
     .method public final virtual hidebysig newslot 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xd100
+        // Method begins at RVA 0xd1ec
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -24337,11 +24250,11 @@
 	IL_0013:  ret 
     } // end of method ModuleEnumerator::MoveNext
 
-    // method line 654
+    // method line 630
     .method public final virtual hidebysig newslot 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xd120
+        // Method begins at RVA 0xd20c
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24364,359 +24277,1149 @@
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi abstract beforefieldinit DataTypeCollectionBase
+  .class public auto ansi beforefieldinit WarningAsError
   	extends [NAnt.Core]NAnt.Core.DataTypeBase
-  	implements [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
-    .field  private  class [mscorlib]System.Collections.ArrayList _list
+  {
+    .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 655
-    .method family hidebysig specialname rtspecialname 
+    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _includes
+    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _excludes
+
+    // method line 631
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xbf45
-	// Code size 19 (0x13)
+        // Method begins at RVA 0xd21a
+	// 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 632
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Includes ()  cil managed 
+    {
+        // Method begins at RVA 0xd238
+	// 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 633
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Excludes ()  cil managed 
+    {
+        // Method begins at RVA 0xd254
+	// 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 beforefieldinit Package
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _name
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 634
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd26f
+	// 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 635
+    .method public hidebysig specialname 
+           instance default string get_PackageName ()  cil managed 
+    {
+        // Method begins at RVA 0xd280
+	// 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.Package::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Package::get_PackageName
+
+    // method line 636
+    .method public hidebysig specialname 
+           instance default void set_PackageName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd29b
+	// Code size 9 (0x9)
+	.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
+
+    // method line 637
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0xd2a8
+	// 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.Package::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Package::get_IfDefined
+
+    // method line 638
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd2c3
+	// 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 line 639
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0xd2d0
+	// 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.Package::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Package::get_UnlessDefined
+
+    // method line 640
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd2eb
+	// 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::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Package::set_UnlessDefined
+
+	.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 EmbeddedResource
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  string _file
+    .field  private initonly  string _manifestResourceName
+
+    // method line 641
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string file, string manifestResourceName)  cil managed 
+    {
+        // Method begins at RVA 0xd2f5
+	// 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 string NAnt.DotNet.Types.EmbeddedResource::_file
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld string NAnt.DotNet.Types.EmbeddedResource::_manifestResourceName
+	IL_0015:  ret 
+    } // end of method EmbeddedResource::.ctor
+
+    // method line 642
+    .method public hidebysig specialname 
+           instance default string get_File ()  cil managed 
+    {
+        // Method begins at RVA 0xd30c
+	// 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.EmbeddedResource::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EmbeddedResource::get_File
+
+    // method line 643
+    .method public hidebysig specialname 
+           instance default string get_ManifestResourceName ()  cil managed 
+    {
+        // Method begins at RVA 0xd328
+	// 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.EmbeddedResource::_manifestResourceName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EmbeddedResource::get_ManifestResourceName
+
+	.property instance string File ()
+	{
+		.get instance default string NAnt.DotNet.Types.EmbeddedResource::get_File () 
+	}
+	.property instance string ManifestResourceName ()
+	{
+		.get instance default string NAnt.DotNet.Types.EmbeddedResource::get_ManifestResourceName () 
+	}
+  } // end of class NAnt.DotNet.Types.EmbeddedResource
+}
+
+.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..
+
+    .field  private initonly  class NAnt.DotNet.Types.ModuleCollection _modules
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
+
+    // method line 644
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd343
+	// 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:  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
+	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
 
-    // method line 656
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
+    // method line 645
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
     {
-        // Method begins at RVA 0xbf5c
-	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
-	// Code size 10 (0xa)
+        // Method begins at RVA 0xd358
+	// Code size 62 (0x3e)
 	.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.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
+	IL_0007:  brtrue IL_0030
+
+	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_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_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
+
+	IL_003c:  ldloc.0 
+	IL_003d:  ret 
+    } // end of method ModuleSet::get_Dir
+
+    // method line 646
+    .method public hidebysig specialname 
+           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd3a2
+	// 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
+
+    // method line 647
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.ModuleCollection get_Modules ()  cil managed 
+    {
+        // Method begins at RVA 0xd3ac
+	// 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 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 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 648
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd3c7
+	// 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 649
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd3d0
+	// 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
+
+    // method line 650
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarning[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd3e0
+	// 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
+
+    // method line 651
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarning get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xd3f0
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.DotNet.Types.CompilerWarning	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
+
+    // method line 652
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.CompilerWarning 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd416
+	// 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
+
+    // method line 653
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+    {
+        // Method begins at RVA 0xd428
+	// 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 CompilerWarningCollection::Add
+
+    // method line 654
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarning[] items)  cil managed 
+    {
+        // Method begins at RVA 0xd44c
+	// 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_0008
+	IL_0003:  br IL_0018
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized
+	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 657
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+	IL_0021:  ret 
+    } // end of method CompilerWarningCollection::AddRange
+
+    // method line 655
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarningCollection items)  cil managed 
     {
-        // Method begins at RVA 0xbf74
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0xd47c
+	// 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.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
+
+	IL_0028:  ret 
+    } // end of method CompilerWarningCollection::AddRange
+
+    // method line 656
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+    {
+        // Method begins at RVA 0xd4b4
+	// 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.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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeCollectionBase::get_Count
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method CompilerWarningCollection::Contains
 
-    // method line 658
-    .method public final virtual hidebysig newslot 
-           instance default void CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    // method line 657
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.DotNet.Types.CompilerWarning[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xbf94
+        // Method begins at RVA 0xd4d5
 	// 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::CopyTo(class [mscorlib]System.Array, int32)
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method DataTypeCollectionBase::CopyTo
+    } // end of method CompilerWarningCollection::CopyTo
+
+    // method line 658
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+    {
+        // Method begins at RVA 0xd4e8
+	// 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 CompilerWarningCollection::IndexOf
 
     // method line 659
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0xbfa4
-	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
-	// Code size 10 (0xa)
+        // Method begins at RVA 0xd509
+	// 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 CompilerWarningCollection::Insert
+
+    // method line 660
+    .method public hidebysig 
+           instance default class NAnt.DotNet.Types.CompilerWarningEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0xd51c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	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_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 CompilerWarningCollection::GetEnumerator
 
-    // method line 660
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 661
+    .method public hidebysig 
+           instance default void Remove (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0xbfbc
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+        // Method begins at RVA 0xd537
+	// 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 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 662
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0xd548
+	// 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 663
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarning get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xd56c
+	// 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 664
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xd594
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+		object	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 class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	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 DataTypeCollectionBase::System.Collections.IEnumerable.GetEnumerator
+    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 661
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
+    // method line 665
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xbfdc
-	// Code size 10 (0xa)
+        // Method begins at RVA 0xd5b4
+	// Code size 20 (0x14)
 	.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 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_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::get_IsFixedSize
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CompilerWarningEnumerator::MoveNext
 
-    // method line 662
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
+    // method line 666
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xbff4
-	// Code size 10 (0xa)
+        // Method begins at RVA 0xd5d4
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.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 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_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::get_IsReadOnly
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 663
-    .method public final virtual hidebysig newslot 
-           instance default void RemoveAt (int32 index)  cil managed 
+    // method line 667
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xc00a
-	// Code size 21 (0x15)
+        // Method begins at RVA 0xd5f4
+	// Code size 13 (0xd)
 	.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
+	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 664
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+    // method line 668
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xc020
+        // Method begins at RVA 0xd602
+	.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.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
+	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 DataTypeCollectionBase::Clear
+    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.Reset
 
-    // method line 665
-    .method family hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
+	.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 Module
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _file
+    .field  private  string _target
+    .field  private  class NAnt.DotNet.Types.ModuleSet _moduleSet
+
+    // method line 669
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd610
+	// 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 670
+    .method public hidebysig specialname 
+           instance default string get_File ()  cil managed 
+    {
+        // Method begins at RVA 0xd618
+	// Code size 71 (0x47)
+	.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 671
+    .method public hidebysig specialname 
+           instance default void set_File (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd66b
+	// 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 672
+    .method public hidebysig specialname 
+           instance default string get_Target ()  cil managed 
     {
-        // Method begins at RVA 0xc030
+        // Method begins at RVA 0xd678
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		string	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 string NAnt.DotNet.Types.Module::_target
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeCollectionBase::get_List
+    } // end of method Module::get_Target
 
-    // method line 666
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
+    // method line 673
+    .method public hidebysig specialname 
+           instance default void set_Target (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method DataTypeCollectionBase::get_ItemType
+        // Method begins at RVA 0xd693
+	// 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.Module::_target
+	IL_000d:  ret 
+    } // end of method Module::set_Target
 
-    // method line 667
-    .method family hidebysig 
-           instance default void ValidateType (object 'value')  cil managed 
+    // method line 674
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
     {
-        // Method begins at RVA 0xc04c
-	// Code size 70 (0x46)
-	.maxstack 3
+        // Method begins at RVA 0xd6a4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.ModuleSet	V_0)
 	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_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_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
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Module::get_ModuleSet
 
-    // method line 668
-    .method family hidebysig 
-           instance default void RangeCheck (int32 index)  cil managed 
+    // method line 675
+    .method public hidebysig specialname 
+           instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xc09e
-	// Code size 44 (0x2c)
+        // Method begins at RVA 0xd6bf
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  blt IL_0014
+	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_0008:  ldarg.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
-	IL_000f:  blt IL_002b
+    // method line 676
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0xd6cc
+	// Code size 91 (0x5b)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1)
+	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_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_000c:  nop 
+	IL_000d:  ldnull 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0059
 
-	.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 ()
+	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 ()
 	{
-		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::get_IsReadOnly () 
+		.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 class [mscorlib]System.Collections.ArrayList List ()
+	.property instance string Target ()
 	{
-		.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 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 [mscorlib]System.Type ItemType ()
+	.property instance class NAnt.DotNet.Types.ModuleSet ModuleSet ()
 	{
-		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType () 
+		.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.DataTypeCollectionBase
+  } // end of class NAnt.DotNet.Types.Module
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit NamespaceImportCollection
+  .class public auto ansi serializable beforefieldinit EmbeddedResourceCollection
   	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..
-
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 669
+    // method line 677
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd12e
+        // Method begins at RVA 0xd733
 	// Code size 7 (0x7)
 	.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
+    } // end of method EmbeddedResourceCollection::.ctor
 
-    // method line 670
+    // method line 678
     .method public hidebysig 
-           instance default class NAnt.DotNet.Types.NamespaceImportEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.DotNet.Types.EmbeddedResourceEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xd138
+        // Method begins at RVA 0xd73c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_0)
+		class NAnt.DotNet.Types.EmbeddedResourceEnumerator	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_0002:  newobj instance void class NAnt.DotNet.Types.EmbeddedResourceEnumerator::'.ctor'(class NAnt.DotNet.Types.EmbeddedResourceCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NamespaceImportCollection::GetEnumerator
+    } // end of method EmbeddedResourceCollection::GetEnumerator
 
-    // method line 671
+    // method line 679
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (int32 index)  cil managed 
+           instance default class NAnt.DotNet.Types.EmbeddedResource get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xd154
+        // Method begins at RVA 0xd758
 	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImport	V_0)
+		class NAnt.DotNet.Types.EmbeddedResource	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
@@ -24725,19 +25428,19 @@
 	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_0014:  castclass NAnt.DotNet.Types.EmbeddedResource
 	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 EmbeddedResourceCollection::get_Item
 
-    // method line 672
+    // method line 680
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0xd181
+        // Method begins at RVA 0xd785
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24750,19 +25453,19 @@
 	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
+    } // end of method EmbeddedResourceCollection::set_Item
 
-    // method line 673
+    // method line 681
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (string 'value')  cil managed 
+           instance default class NAnt.DotNet.Types.EmbeddedResource get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd198
+        // Method begins at RVA 0xd79c
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImport	V_0,
+		class NAnt.DotNet.Types.EmbeddedResource	V_0,
 		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.DotNet.Types.NamespaceImport	V_2,
+		class NAnt.DotNet.Types.EmbeddedResource	V_2,
 		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
@@ -24779,12 +25482,12 @@
 
 	  IL_001a:  ldloc.1 
 	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.DotNet.Types.NamespaceImport
+	  IL_0020:  castclass NAnt.DotNet.Types.EmbeddedResource
 	  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_0029:  callvirt instance string class NAnt.DotNet.Types.EmbeddedResource::get_ManifestResourceName()
 	  IL_002e:  callvirt instance bool string::Equals(string)
 	  IL_0033:  brfalse IL_0040
 
@@ -24819,148 +25522,32 @@
 
 	IL_006d:  ldloc.2 
 	IL_006e:  ret 
-    } // end of method NamespaceImportCollection::get_Item
-
-    // method line 674
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0xd224
-	// 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
+    } // end of method EmbeddedResourceCollection::get_Item
 
-    // method line 675
+    // method line 682
     .method family virtual hidebysig specialname 
            instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0xd310
+        // Method begins at RVA 0xd828
 	// 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_0001:  ldtoken NAnt.DotNet.Types.EmbeddedResource
 	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
+    } // end of method EmbeddedResourceCollection::get_ItemType
 
-    // method line 676
+    // method line 683
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xd330
+        // Method begins at RVA 0xd848
 	.override class [mscorlib]System.Collections.IList::get_Item
 	// Code size 16 (0x10)
 	.maxstack 2
@@ -24969,19 +25556,19 @@
 	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_0003:  call instance class NAnt.DotNet.Types.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceCollection::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
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.get_Item
 
-    // method line 677
+    // method line 684
     .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 0xd34c
+        // Method begins at RVA 0xd864
 	.override class [mscorlib]System.Collections.IList::set_Item
 	// Code size 22 (0x16)
 	.maxstack 8
@@ -24992,16 +25579,16 @@
 	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_000b:  castclass NAnt.DotNet.Types.EmbeddedResource
+	IL_0010:  call instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::set_Item(int32, class NAnt.DotNet.Types.EmbeddedResource)
 	IL_0015:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.set_Item
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.set_Item
 
-    // method line 678
+    // method line 685
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd363
+        // Method begins at RVA 0xd87b
 	.override class [mscorlib]System.Collections.IList::Insert
 	// Code size 22 (0x16)
 	.maxstack 8
@@ -25012,16 +25599,16 @@
 	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_000b:  castclass NAnt.DotNet.Types.EmbeddedResource
+	IL_0010:  call instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::Insert(int32, class NAnt.DotNet.Types.EmbeddedResource)
 	IL_0015:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Insert
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.Insert
 
-    // method line 679
+    // method line 686
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd37a
+        // Method begins at RVA 0xd892
 	.override class [mscorlib]System.Collections.IList::Remove
 	// Code size 21 (0x15)
 	.maxstack 8
@@ -25031,16 +25618,16 @@
 	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_000a:  castclass NAnt.DotNet.Types.EmbeddedResource
+	IL_000f:  call instance void class NAnt.DotNet.Types.EmbeddedResourceCollection::Remove(class NAnt.DotNet.Types.EmbeddedResource)
 	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Remove
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.Remove
 
-    // method line 680
+    // method line 687
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd390
+        // Method begins at RVA 0xd8a8
 	.override class [mscorlib]System.Collections.IList::Contains
 	// Code size 33 (0x21)
 	.maxstack 2
@@ -25053,20 +25640,20 @@
 	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_000f:  castclass NAnt.DotNet.Types.EmbeddedResource
 	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
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.Contains
 
-    // method line 681
+    // method line 688
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd3c0
+        // Method begins at RVA 0xd8d8
 	.override class [mscorlib]System.Collections.IList::IndexOf
 	// Code size 28 (0x1c)
 	.maxstack 2
@@ -25078,20 +25665,20 @@
 	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_000a:  castclass NAnt.DotNet.Types.EmbeddedResource
+	IL_000f:  call instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::IndexOf(class NAnt.DotNet.Types.EmbeddedResource)
 	IL_0014:  stloc.0 
 	IL_0015:  br IL_001a
 
 	IL_001a:  ldloc.0 
 	IL_001b:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.IndexOf
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.IndexOf
 
-    // method line 682
+    // method line 689
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd3e8
+        // Method begins at RVA 0xd900
 	.override class [mscorlib]System.Collections.IList::Add
 	// Code size 28 (0x1c)
 	.maxstack 2
@@ -25103,20 +25690,20 @@
 	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_000a:  castclass NAnt.DotNet.Types.EmbeddedResource
+	IL_000f:  call instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class NAnt.DotNet.Types.EmbeddedResource)
 	IL_0014:  stloc.0 
 	IL_0015:  br IL_001a
 
 	IL_001a:  ldloc.0 
 	IL_001b:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Add
+    } // end of method EmbeddedResourceCollection::System.Collections.IList.Add
 
-    // method line 683
+    // method line 690
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.NamespaceImportCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.EmbeddedResourceCollection items)  cil managed 
     {
-        // Method begins at RVA 0xd410
+        // Method begins at RVA 0xd928
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -25130,8 +25717,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.EmbeddedResource class NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class NAnt.DotNet.Types.EmbeddedResource)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -25144,15 +25731,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method NamespaceImportCollection::AddRange
+    } // end of method EmbeddedResourceCollection::AddRange
 
-    // method line 684
+    // method line 691
     .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default int32 Add (class NAnt.DotNet.Types.EmbeddedResource 'value')  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 0xd448
+        // Method begins at RVA 0xd960
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -25167,13 +25752,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::Add
+    } // end of method EmbeddedResourceCollection::Add
 
-    // method line 685
+    // method line 692
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0xd469
+        // Method begins at RVA 0xd981
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25183,13 +25768,13 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method NamespaceImportCollection::Insert
+    } // end of method EmbeddedResourceCollection::Insert
 
-    // method line 686
+    // method line 693
     .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default void Remove (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0xd479
+        // Method begins at RVA 0xd991
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25198,13 +25783,13 @@
 	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 EmbeddedResourceCollection::Remove
 
-    // method line 687
+    // method line 694
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default bool Contains (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0xd488
+        // Method begins at RVA 0xd9a0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -25219,13 +25804,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::Contains
+    } // end of method EmbeddedResourceCollection::Contains
 
-    // method line 688
+    // method line 695
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0xd4ac
+        // Method begins at RVA 0xd9c4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -25240,41 +25825,41 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::IndexOf
+    } // end of method EmbeddedResourceCollection::IndexOf
 
 	.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') 
+		.get instance default object NAnt.DotNet.Types.EmbeddedResourceCollection::System.Collections.IList.get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.EmbeddedResourceCollection::System.Collections.IList.set_Item (int32 index, object 'value') 
 	}
-	.property instance class NAnt.DotNet.Types.NamespaceImport Item (int32)
+	.property instance class NAnt.DotNet.Types.EmbeddedResource 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') 
+		.get instance default class NAnt.DotNet.Types.EmbeddedResource NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.EmbeddedResourceCollection::set_Item (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value') 
 	}
-	.property instance class NAnt.DotNet.Types.NamespaceImport Item (string)
+	.property instance class NAnt.DotNet.Types.EmbeddedResource Item (string)
 	{
-		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportCollection::get_Item (string 'value') 
+		.get instance default class NAnt.DotNet.Types.EmbeddedResource NAnt.DotNet.Types.EmbeddedResourceCollection::get_Item (string 'value') 
 	}
 	.property instance class [mscorlib]System.Type ItemType ()
 	{
-		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.NamespaceImportCollection::get_ItemType () 
+		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.EmbeddedResourceCollection::get_ItemType () 
 	}
-  } // end of class NAnt.DotNet.Types.NamespaceImportCollection
+  } // end of class NAnt.DotNet.Types.EmbeddedResourceCollection
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit NamespaceImportEnumerator
+  .class public auto ansi beforefieldinit EmbeddedResourceEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 689
+    // method line 696
     .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.EmbeddedResourceCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xd4d0
+        // Method begins at RVA 0xd9e8
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -25287,36 +25872,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.EmbeddedResourceEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method NamespaceImportEnumerator::.ctor
+    } // end of method EmbeddedResourceEnumerator::.ctor
 
-    // method line 690
+    // method line 697
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImport get_Current ()  cil managed 
+           instance default class NAnt.DotNet.Types.EmbeddedResource get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xd4f4
+        // Method begins at RVA 0xda0c
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImport	V_0)
+		class NAnt.DotNet.Types.EmbeddedResource	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.EmbeddedResourceEnumerator::_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.EmbeddedResource
 	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 EmbeddedResourceEnumerator::get_Current
 
-    // method line 691
+    // method line 698
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xd51c
+        // Method begins at RVA 0xda34
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -25324,40 +25909,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.EmbeddedResourceEnumerator::_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 EmbeddedResourceEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 692
+    // method line 699
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xd53c
+        // Method begins at RVA 0xda54
 	// 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.EmbeddedResourceEnumerator::_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 EmbeddedResourceEnumerator::MoveNext
 
-    // method line 693
+    // method line 700
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xd55c
+        // Method begins at RVA 0xda74
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -25365,462 +25950,186 @@
 		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.EmbeddedResourceEnumerator::_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 EmbeddedResourceEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 694
+    // method line 701
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xd57c
+        // Method begins at RVA 0xda94
 	// 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.EmbeddedResourceEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method NamespaceImportEnumerator::Reset
+    } // end of method EmbeddedResourceEnumerator::Reset
 
-    // method line 695
+    // method line 702
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xd58a
+        // Method begins at RVA 0xdaa2
 	.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.EmbeddedResourceEnumerator::_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 EmbeddedResourceEnumerator::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.EmbeddedResourceEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.DotNet.Types.NamespaceImport Current ()
+	.property instance class NAnt.DotNet.Types.EmbeddedResource Current ()
 	{
-		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current () 
+		.get instance default class NAnt.DotNet.Types.EmbeddedResource NAnt.DotNet.Types.EmbeddedResourceEnumerator::get_Current () 
 	}
-  } // end of class NAnt.DotNet.Types.NamespaceImportEnumerator
+  } // end of class NAnt.DotNet.Types.EmbeddedResourceEnumerator
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit EmbeddedResource
-  	extends [mscorlib]System.Object
+  .class public auto ansi sealed DebugOutput
+  	extends [mscorlib]System.Enum
   {
-    .field  private initonly  string _file
-    .field  private initonly  string _manifestResourceName
-
-    // method line 696
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string file, string manifestResourceName)  cil managed 
-    {
-        // Method begins at RVA 0xd598
-	// 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 string NAnt.DotNet.Types.EmbeddedResource::_file
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld string NAnt.DotNet.Types.EmbeddedResource::_manifestResourceName
-	IL_0015:  ret 
-    } // end of method EmbeddedResource::.ctor
-
-    // method line 697
-    .method public hidebysig specialname 
-           instance default string get_File ()  cil managed 
-    {
-        // Method begins at RVA 0xd5b0
-	// 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.EmbeddedResource::_file
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EmbeddedResource::get_File
-
-    // method line 698
-    .method public hidebysig specialname 
-           instance default string get_ManifestResourceName ()  cil managed 
-    {
-        // Method begins at RVA 0xd5cc
-	// 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.EmbeddedResource::_manifestResourceName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+    .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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EmbeddedResource::get_ManifestResourceName
+    .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)
 
-	.property instance string File ()
-	{
-		.get instance default string NAnt.DotNet.Types.EmbeddedResource::get_File () 
-	}
-	.property instance string ManifestResourceName ()
-	{
-		.get instance default string NAnt.DotNet.Types.EmbeddedResource::get_ManifestResourceName () 
-	}
-  } // end of class NAnt.DotNet.Types.EmbeddedResource
+  } // end of class NAnt.DotNet.Types.DebugOutput
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit LibDirectorySet
-  	extends [NAnt.Core]NAnt.Core.Types.FileSet
+  .class public auto ansi beforefieldinit DebugOutputConverter
+  	extends [System]System.ComponentModel.EnumConverter
   {
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _parent
-
-    // method line 699
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyFileSet parent)  cil managed 
-    {
-        // Method begins at RVA 0xd5e7
-	// 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 700
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0xd5f8
-	// 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 701
+    // method line 703
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd618
-	// 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 702
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
-    {
-        // Method begins at RVA 0xd634
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0xdab0
+	// Code size 18 (0x12)
 	.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 703
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.LibDirectorySet get_Lib ()  cil managed 
-    {
-        // Method begins at RVA 0xd654
-	// 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
+	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 704
-    .method public hidebysig specialname 
-           instance default void set_Lib (class NAnt.DotNet.Types.LibDirectorySet 'value')  cil managed 
-    {
-        // Method begins at RVA 0xd66f
-	// 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 705
     .method public virtual hidebysig 
-           instance default void Scan ()  cil managed 
-    {
-        // Method begins at RVA 0xd679
-	// 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 706
-    .method family hidebysig 
-           instance default void ResolveReferences ()  cil managed 
+           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
     {
-        // Method begins at RVA 0xd688
-	// Code size 300 (0x12c)
-	.maxstack 2
+        // Method begins at RVA 0xdac4
+	// Code size 115 (0x73)
+	.maxstack 4
 	.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)
+		object	V_1)
 	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_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0062
 
-	  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_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_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_0021:  ldc.i4.1 
+	IL_0022:  box NAnt.DotNet.Types.DebugOutput
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_0071
 
-	  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_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_0110:  leave IL_012b
+	IL_003f:  ldc.i4.0 
+	IL_0040:  box NAnt.DotNet.Types.DebugOutput
+	IL_0045:  stloc.1 
+	IL_0046:  br IL_0071
 
-	} // 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_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_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
+	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
 
-	.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..
+	IL_0071:  ldloc.1 
+	IL_0072:  ret 
+    } // end of method DebugOutputConverter::ConvertFrom
 
-		.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
+  } // end of class NAnt.DotNet.Types.DebugOutputConverter
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit AssemblyAttributeCollection
+  .class public auto ansi serializable beforefieldinit ResourceFileSetCollection
   	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 707
+    // method line 705
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd7f4
+        // Method begins at RVA 0xdb43
 	// 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
+    } // end of method ResourceFileSetCollection::.ctor
 
-    // method line 708
+    // method line 706
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSetCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xd7fd
+        // Method begins at RVA 0xdb4c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -25828,15 +26137,15 @@
 	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_0009:  call instance void class NAnt.DotNet.Types.ResourceFileSetCollection::AddRange(class NAnt.DotNet.Types.ResourceFileSetCollection)
 	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::.ctor
+    } // end of method ResourceFileSetCollection::.ctor
 
-    // method line 709
+    // method line 707
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttribute[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSet[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xd80d
+        // Method begins at RVA 0xdb5c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -25844,37 +26153,37 @@
 	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_0009:  call instance void class NAnt.DotNet.Types.ResourceFileSetCollection::AddRange(class NAnt.DotNet.Types.ResourceFileSet[])
 	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::.ctor
+    } // end of method ResourceFileSetCollection::.ctor
 
-    // method line 710
+    // method line 708
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (int32 index)  cil managed 
+           instance default class NAnt.DotNet.Types.ResourceFileSet get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xd820
+        // Method begins at RVA 0xdb6c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttribute	V_0)
+		class NAnt.DotNet.Types.ResourceFileSet	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_000d:  castclass NAnt.DotNet.Types.ResourceFileSet
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method AssemblyAttributeCollection::get_Item
+    } // end of method ResourceFileSetCollection::get_Item
 
-    // method line 711
+    // method line 709
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.AssemblyAttribute 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.ResourceFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xd846
+        // Method begins at RVA 0xdb92
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25884,82 +26193,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 AssemblyAttributeCollection::set_Item
-
-    // method line 712
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xd858
-	// 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
+    } // end of method ResourceFileSetCollection::set_Item
 
-    // method line 713
+    // method line 710
     .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+           instance default int32 Add (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0xd8e4
+        // Method begins at RVA 0xdba4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -25974,13 +26214,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method AssemblyAttributeCollection::Add
+    } // end of method ResourceFileSetCollection::Add
 
-    // method line 714
+    // method line 711
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttribute[] items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.ResourceFileSet[] items)  cil managed 
     {
-        // Method begins at RVA 0xd908
+        // Method begins at RVA 0xdbc8
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -25995,7 +26235,7 @@
 	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_000d:  call instance int32 class NAnt.DotNet.Types.ResourceFileSetCollection::Add(class NAnt.DotNet.Types.ResourceFileSet)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -26009,13 +26249,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method AssemblyAttributeCollection::AddRange
+    } // end of method ResourceFileSetCollection::AddRange
 
-    // method line 715
+    // method line 712
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttributeCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.ResourceFileSetCollection items)  cil managed 
     {
-        // Method begins at RVA 0xd938
+        // Method begins at RVA 0xdbf8
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -26029,8 +26269,8 @@
 	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_000c:  callvirt instance class NAnt.DotNet.Types.ResourceFileSet class NAnt.DotNet.Types.ResourceFileSetCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.DotNet.Types.ResourceFileSetCollection::Add(class NAnt.DotNet.Types.ResourceFileSet)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -26043,13 +26283,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method AssemblyAttributeCollection::AddRange
+    } // end of method ResourceFileSetCollection::AddRange
 
-    // method line 716
+    // method line 713
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+           instance default bool Contains (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0xd970
+        // Method begins at RVA 0xdc30
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -26064,37 +26304,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method AssemblyAttributeCollection::Contains
-
-    // method line 717
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xd994
-	// 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
+    } // end of method ResourceFileSetCollection::Contains
 
-    // method line 718
+    // method line 714
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.AssemblyAttribute[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.DotNet.Types.ResourceFileSet[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xd9b6
+        // Method begins at RVA 0xdc51
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -26104,13 +26320,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 AssemblyAttributeCollection::CopyTo
+    } // end of method ResourceFileSetCollection::CopyTo
 
-    // method line 719
+    // method line 715
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0xd9c8
+        // Method begins at RVA 0xdc64
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -26125,13 +26341,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method AssemblyAttributeCollection::IndexOf
+    } // end of method ResourceFileSetCollection::IndexOf
 
-    // method line 720
+    // method line 716
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0xd9e9
+        // Method begins at RVA 0xdc85
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -26141,32 +26357,32 @@
 	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
+    } // end of method ResourceFileSetCollection::Insert
 
-    // method line 721
+    // method line 717
     .method public hidebysig 
-           instance default class NAnt.DotNet.Types.AssemblyAttributeEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.DotNet.Types.ResourceFileSetEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xd9fc
+        // Method begins at RVA 0xdc98
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttributeEnumerator	V_0)
+		class NAnt.DotNet.Types.ResourceFileSetEnumerator	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_0002:  newobj instance void class NAnt.DotNet.Types.ResourceFileSetEnumerator::'.ctor'(class NAnt.DotNet.Types.ResourceFileSetCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::GetEnumerator
+    } // end of method ResourceFileSetCollection::GetEnumerator
 
-    // method line 722
+    // method line 718
     .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+           instance default void Remove (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0xda17
+        // Method begins at RVA 0xdcb3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -26175,32 +26391,28 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method AssemblyAttributeCollection::Remove
+    } // end of method ResourceFileSetCollection::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)
+	.property instance class NAnt.DotNet.Types.ResourceFileSet Item (int32)
 	{
-		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item (string 'value') 
+		.get instance default class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Types.ResourceFileSetCollection::get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.ResourceFileSetCollection::set_Item (int32 index, class NAnt.DotNet.Types.ResourceFileSet 'value') 
 	}
-  } // end of class NAnt.DotNet.Types.AssemblyAttributeCollection
+  } // end of class NAnt.DotNet.Types.ResourceFileSetCollection
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit AssemblyAttributeEnumerator
+  .class public auto ansi beforefieldinit ResourceFileSetEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 723
+    // method line 719
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSetCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xda28
+        // Method begins at RVA 0xdcc4
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -26213,36 +26425,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.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method AssemblyAttributeEnumerator::.ctor
+    } // end of method ResourceFileSetEnumerator::.ctor
 
-    // method line 724
+    // method line 720
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Current ()  cil managed 
+           instance default class NAnt.DotNet.Types.ResourceFileSet get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xda4c
+        // Method begins at RVA 0xdce8
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttribute	V_0)
+		class NAnt.DotNet.Types.ResourceFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.DotNet.Types.AssemblyAttribute
+	IL_000c:  castclass NAnt.DotNet.Types.ResourceFileSet
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method AssemblyAttributeEnumerator::get_Current
+    } // end of method ResourceFileSetEnumerator::get_Current
 
-    // method line 725
+    // method line 721
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xda74
+        // Method begins at RVA 0xdd10
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -26250,40 +26462,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_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
+    } // end of method ResourceFileSetEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 726
+    // method line 722
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xda94
+        // Method begins at RVA 0xdd30
 	// 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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_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
+    } // end of method ResourceFileSetEnumerator::MoveNext
 
-    // method line 727
+    // method line 723
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xdab4
+        // Method begins at RVA 0xdd50
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -26291,960 +26503,748 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_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
+    } // end of method ResourceFileSetEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 728
+    // method line 724
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xdad4
+        // Method begins at RVA 0xdd70
 	// 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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method AssemblyAttributeEnumerator::Reset
+    } // end of method ResourceFileSetEnumerator::Reset
 
-    // method line 729
+    // method line 725
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xdae2
+        // Method begins at RVA 0xdd7e
 	.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_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.ResourceFileSetEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method ResourceFileSetEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.DotNet.Types.AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.DotNet.Types.ResourceFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.DotNet.Types.AssemblyAttribute Current ()
+	.property instance class NAnt.DotNet.Types.ResourceFileSet Current ()
 	{
-		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeEnumerator::get_Current () 
+		.get instance default class NAnt.DotNet.Types.ResourceFileSet NAnt.DotNet.Types.ResourceFileSetEnumerator::get_Current () 
 	}
-  } // end of class NAnt.DotNet.Types.AssemblyAttributeEnumerator
+  } // end of class NAnt.DotNet.Types.ResourceFileSetEnumerator
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit Module
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class public auto ansi serializable beforefieldinit LibDirectorySet
+  	extends [NAnt.Core]NAnt.Core.Types.FileSet
   {
-    .field  private  string _file
-    .field  private  string _target
-    .field  private  class NAnt.DotNet.Types.ModuleSet _moduleSet
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _parent
 
-    // method line 730
+    // method line 726
     .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 0xdaf0
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xdd8c
+	// Code size 15 (0xf)
 	.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_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 731
-    .method public hidebysig specialname 
-           instance default string get_File ()  cil managed 
+    // method line 727
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0xdaf8
-	// Code size 71 (0x47)
-	.maxstack 2
+        // Method begins at RVA 0xdd9c
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	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_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_000c:  ldarg.0 
-	IL_000d:  ldfld string NAnt.DotNet.Types.Module::_file
-	IL_0012:  brfalse IL_0039
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method LibDirectorySet::get_BaseDirectory
 
-	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
+	.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
+}
 
-	IL_0039:  ldarg.0 
-	IL_003a:  ldfld string NAnt.DotNet.Types.Module::_file
-	IL_003f:  stloc.0 
-	IL_0040:  br IL_0045
+.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..
 
-	IL_0045:  ldloc.0 
-	IL_0046:  ret 
-    } // end of method Module::get_File
+    .field  private  class NAnt.DotNet.Types.LibDirectorySet _lib
 
-    // method line 732
-    .method public hidebysig specialname 
-           instance default void set_File (string 'value')  cil managed 
+    // method line 728
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xdb4b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xddbc
+	// Code size 27 (0x1b)
 	.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 733
-    .method public hidebysig specialname 
-           instance default string get_Target ()  cil managed 
-    {
-        // Method begins at RVA 0xdb58
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Module::get_Target
+	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 734
-    .method public hidebysig specialname 
-           instance default void set_Target (string 'value')  cil managed 
+    // method line 729
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
     {
-        // Method begins at RVA 0xdb73
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xddd8
+	// 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.Module::_target
-	IL_000d:  ret 
-    } // end of method Module::set_Target
+	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 735
+    // method line 730
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
+           instance default class NAnt.DotNet.Types.LibDirectorySet get_Lib ()  cil managed 
     {
-        // Method begins at RVA 0xdb84
+        // Method begins at RVA 0xddf8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ModuleSet	V_0)
+		class NAnt.DotNet.Types.LibDirectorySet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::_moduleSet
+	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 Module::get_ModuleSet
+    } // end of method AssemblyFileSet::get_Lib
 
-    // method line 736
+    // method line 731
     .method public hidebysig specialname 
-           instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
+           instance default void set_Lib (class NAnt.DotNet.Types.LibDirectorySet 'value')  cil managed 
     {
-        // Method begins at RVA 0xdb9f
+        // Method begins at RVA 0xde13
 	// 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_0003:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
 	IL_0008:  ret 
-    } // end of method Module::set_ModuleSet
+    } // end of method AssemblyFileSet::set_Lib
 
-    // method line 737
+    // method line 732
     .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+           instance default void Scan ()  cil managed 
     {
-        // Method begins at RVA 0xdbac
-	// Code size 91 (0x5b)
+        // Method begins at RVA 0xde1d
+	// 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 733
+    .method family hidebysig 
+           instance default void ResolveReferences ()  cil managed 
+    {
+        // Method begins at RVA 0xde2c
+	// Code size 300 (0x12c)
 	.maxstack 2
 	.locals init (
 		string	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1)
+		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:  call instance string class NAnt.DotNet.Types.Module::get_File()
-	IL_0007:  brtrue IL_0014
+	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_000c:  nop 
-	IL_000d:  ldnull 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0059
+	  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_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_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_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_004a:  nop 
+	  IL_004b:  leave IL_0105
 
-	IL_0059:  ldloc.0 
-	IL_005a:  ret 
-    } // end of method Module::ToString
+	  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
 
-	.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_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
 
-		.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_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
 
-		.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_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.Module::get_Target () 
-		.set instance default void NAnt.DotNet.Types.Module::set_Target (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.ModuleSet ModuleSet ()
+	    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 ()
 	{
-		.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') 
+		.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.Module
+  } // end of class NAnt.DotNet.Types.AssemblyFileSet
 }
 
 .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..
+  .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 _prefix
-    .field  private  bool _dynamicprefix
+    .field  private  string _namespace
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 738
+    // method line 734
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xdc13
-	// Code size 8 (0x8)
+        // Method begins at RVA 0xdf98
+	// 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:  ret 
-    } // end of method ResourceFileSet::.ctor
+	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 739
+    // method line 735
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
+           instance default void '.ctor' (string nameSpace)  cil managed 
     {
-        // Method begins at RVA 0xdc1c
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xdfa8
+	// Code size 40 (0x28)
 	.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
+	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
 
-    // method line 740
+	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 736
     .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+           instance default string get_TempName ()  cil managed 
     {
-        // Method begins at RVA 0xdc28
+        // Method begins at RVA 0xdfd4
 	// 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.ResourceFileSet::_prefix
+	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 ResourceFileSet::get_Prefix
+    } // end of method NamespaceImport::get_TempName
 
-    // method line 741
+    // method line 737
     .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+           instance default void set_TempName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xdc43
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xdfef
+	// 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.Types.ResourceFileSet::_prefix
-	IL_000d:  ret 
-    } // end of method ResourceFileSet::set_Prefix
+	IL_0003:  call instance void class NAnt.DotNet.Types.NamespaceImport::set_Namespace(string)
+	IL_0008:  ret 
+    } // end of method NamespaceImport::set_TempName
 
-    // method line 742
+    // method line 738
     .method public hidebysig specialname 
-           instance default bool get_DynamicPrefix ()  cil managed 
+           instance default string get_Namespace ()  cil managed 
     {
-        // Method begins at RVA 0xdc54
+        // Method begins at RVA 0xdffc
 	// 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.Types.ResourceFileSet::_dynamicprefix
+	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 ResourceFileSet::get_DynamicPrefix
+    } // end of method NamespaceImport::get_Namespace
 
-    // method line 743
+    // method line 739
     .method public hidebysig specialname 
-           instance default void set_DynamicPrefix (bool 'value')  cil managed 
+           instance default void set_Namespace (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xdc6f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xe017
+	// Code size 14 (0xe)
 	.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:  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 744
+    // method line 740
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ResxFiles ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xdc7c
-	// Code size 179 (0xb3)
-	.maxstack 2
+        // Method begins at RVA 0xe028
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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)
+		bool	V_0)
 	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_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_00b0:  ldloc.s 4
-	IL_00b2:  ret 
-    } // end of method ResourceFileSet::get_ResxFiles
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::get_IfDefined
 
-    // method line 745
+    // method line 741
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_NonResxFiles ()  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd4c
-	// 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)
+        // Method begins at RVA 0xe043
+	// Code size 9 (0x9)
+	.maxstack 8
 	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_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 746
-    .method public virtual hidebysig 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0xde1c
-	// 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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0008:  ret 
+    } // end of method NamespaceImport::set_IfDefined
 
-    // method line 747
-    .method public hidebysig 
-           instance default string GetManifestResourceName (string resourceFile)  cil managed 
+    // method line 742
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xde58
-	// Code size 17 (0x11)
-	.maxstack 3
+        // Method begins at RVA 0xe050
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	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_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method ResourceFileSet::GetManifestResourceName
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::get_UnlessDefined
 
-    // method line 748
-    .method public hidebysig 
-           instance default string GetManifestResourceName (string physicalPath, string logicalPath)  cil managed 
+    // method line 743
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xde78
-	// 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)
+        // Method begins at RVA 0xe06b
+	// Code size 9 (0x9)
+	.maxstack 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_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
+	IL_0008:  ret 
+    } // end of method NamespaceImport::set_UnlessDefined
 
-	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
+	.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.
 
-	IL_01ed:  ldloc.s 13
-	IL_01ef:  ret 
-    } // end of method ResourceFileSet::GetManifestResourceName
+		.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.
 
-	.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..
+		.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.ResourceFileSet::get_Prefix () 
-		.set instance default void NAnt.DotNet.Types.ResourceFileSet::set_Prefix (string 'value') 
+		.get instance default string NAnt.DotNet.Types.NamespaceImport::get_TempName () 
+		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_TempName (string 'value') 
 	}
-	.property instance bool DynamicPrefix ()
+	.property instance string Namespace ()
 	{
-		.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                                           ) // ..
+		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.
 
-		.get instance default bool NAnt.DotNet.Types.ResourceFileSet::get_DynamicPrefix () 
-		.set instance default void NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix (bool 'value') 
+		.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 class [NAnt.Core]NAnt.Core.Types.FileSet ResxFiles ()
+	.property instance bool IfDefined ()
 	{
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles () 
+		.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 class [NAnt.Core]NAnt.Core.Types.FileSet NonResxFiles ()
+	.property instance bool UnlessDefined ()
 	{
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_NonResxFiles () 
-	}
-  } // end of class NAnt.DotNet.Types.ResourceFileSet
-}
-
-.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..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-    .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)
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.DotNet.Types.DelaySign
+		.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
 {
-  .class public auto ansi beforefieldinit DelaySignConverter
-  	extends [System]System.ComponentModel.EnumConverter
+  .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 749
+    // method line 744
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe074
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xe075
+	// Code size 14 (0xe)
 	.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:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method CompilerWarning::.ctor
 
-    // method line 750
-    .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 745
+    .method public hidebysig specialname 
+           instance default string get_Number ()  cil managed 
     {
-        // Method begins at RVA 0xe088
-	// Code size 115 (0x73)
-	.maxstack 4
+        // Method begins at RVA 0xe084
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		object	V_1)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  isinst [mscorlib]System.String
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Types.CompilerWarning::_number
 	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0062
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CompilerWarning::get_Number
 
-	IL_0021:  ldc.i4.2 
-	IL_0022:  box NAnt.DotNet.Types.DelaySign
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_0071
+    // method line 746
+    .method public hidebysig specialname 
+           instance default void set_Number (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xe09f
+	// Code size 9 (0x9)
+	.maxstack 8
+	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_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
+    // method line 747
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0xe0ac
+	// 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.CompilerWarning::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_003f:  ldc.i4.1 
-	IL_0040:  box NAnt.DotNet.Types.DelaySign
-	IL_0045:  stloc.1 
-	IL_0046:  br IL_0071
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CompilerWarning::get_IfDefined
 
-	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
+    // method line 748
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xe0c7
+	// Code size 9 (0x9)
+	.maxstack 8
+	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_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
+    // method line 749
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0xe0d4
+	// 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.CompilerWarning::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0071:  ldloc.1 
-	IL_0072:  ret 
-    } // end of method DelaySignConverter::ConvertFrom
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CompilerWarning::get_UnlessDefined
 
-  } // end of class NAnt.DotNet.Types.DelaySignConverter
+    // method line 750
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xe0ef
+	// Code size 9 (0x9)
+	.maxstack 8
+	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
 }
 
/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,1109 +4,555 @@
         <name>NAnt.DotNetTasks</name>
     </assembly>
     <members>
-        <member name="T:NAnt.DotNet.Tasks.DelaySignTask">
+        <member name="T:NAnt.DotNet.Tasks.AssemblyLinkerTask">
              <summary>
-             Signs delay-signed .NET Assemblies, or re-signs existing assemblies.
+             Wraps <c>al.exe</c>, the assembly linker for the .NET Framework.
              </summary>
              <remarks>
-             <para>
-             The delay-signing mechanism takes a fileset (named targets)
-             and either a <see cref="P:NAnt.DotNet.Tasks.DelaySignTask.KeyFile" /> attribute for a file containing the
-             public and private keys, or <see cref="P:NAnt.DotNet.Tasks.DelaySignTask.KeyContainer" /> to name a key 
-             container.
-             </para>
+               <para>
+               All specified sources will be embedded using the <c>/embed</c> flag.
+               Other source types are not supported.
+               </para>
              </remarks>
              <example>
-               <para>Sign partially-signed <c>foo.dll</c> with <c>bar.snk</c>.</para>
+               <para>
+               Create a library containing all icon files in the current directory.
+               </para>
                <code>
                  <![CDATA[
-             <delay-sign keyfile="bar.snk" verbose="false">
-                 <targets>
-                     <include name="foo.dll" />
-                 </targets>
-             </delay-sign>
+             <al output="MyIcons.dll" target="lib">
+                 <sources>
+                     <include name="*.ico" />
+                 </sources>
+             </al>
                  ]]>
                </code>
              </example>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.DelaySignTask.Targets">
-             <summary>
-             List of assemblies/executables to sign.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.DelaySignTask.KeyFile">
-             <summary>
-             Specifies the filesystem path to the signing key.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.DelaySignTask.KeyContainer">
-             <summary>
-             Specifies the key container.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.DelaySignTask.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.DotNet.Tasks.DelaySignTask.ExecuteTask">
-             <summary>
-             Converts a single file or group of files.
-             </summary>
-            </member>
-        <member name="T:NAnt.DotNet.Tasks.CscTask">
-             <summary>
-             Compiles C# programs.
-             </summary>
-             <remarks>
-             <note>
-             In order to have <see cref="T:NAnt.DotNet.Tasks.CscTask" /> generate manifest resource names
-             that match those generated by Microsoft Visual Studio.NET, the value of
-             the <see cref="P:NAnt.DotNet.Types.ResourceFileSet.Prefix" /> attribute of the &lt;<see cref="P:NAnt.DotNet.Tasks.CompilerBase.ResourcesList" />&gt;
-             element should match the "Default Namespace" of the C# project, and the 
-             value of the <see cref="P:NAnt.DotNet.Types.ResourceFileSet.DynamicPrefix" /> attribute 
-             should be set to "<see langword="true" />".
-             </note>
-             </remarks>
              <example>
-               <para>Compile a "HelloWorld" application, including embedded resources.</para>
+               <para>
+               Create an executable assembly manifest from modules.
+               </para>
                <code>
                  <![CDATA[
-             <csc target="exe" output="HelloWorld.exe" debug="true">
-                 <nowarn>
-                     <!-- do not report warnings for missing XML comments -->
-                     <warning number="0519" />
-                 </nowarn>
-                 <sources>
-                     <include name="**/*.cs" />
-                 </sources>
-                 <resources dynamicprefix="true" prefix="HelloWorld">
-                     <include name="**/*.resx" />
-                 </resources>
-                 <references>
-                     <include name="System.dll" />
-                     <include name="System.Data.dll" />
-                 </references>
-             </csc>
+             <al output="Client.exe" target="exe" main="Program.Main">
+                 <modules>
+                     <include name="Client.netmodule" />
+                     <include name="Common.netmodule" />
+                 </modules>
+             </al>
                  ]]>
                </code>
              </example>
             </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.BaseAddress">
-             <summary>
-             The preferred base address at which to load a DLL. The default base 
-             address for a DLL is set by the .NET Framework common language 
-             runtime.
-             </summary>
-             <value>
-             The preferred base address at which to load a DLL.
-             </value>
-             <remarks>
-             This address can be specified as a decimal, hexadecimal, or octal 
-             number. 
-             </remarks>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.DebugOutput">
-             <summary>
-             Specifies the type of debugging information generated by the 
-             compiler. The default is <see cref="T:NAnt.DotNet.Types.DebugOutput.None" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.Debug">
+        <member name="P:NAnt.DotNet.Tasks.AssemblyLinkerTask.AlgorithmID">
              <summary>
-             No longer expose this to build authors. Use <see cref="T:NAnt.DotNet.Types.DebugOutput" />
-             instead.
+             Specifies an algorithm (in hexadecimal) to hash all files in a 
+             multifile assembly except the file that contains the assembly 
+             manifest. The default algorithm is CALG_SHA1.
              </summary>
             </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.DocFile">
+        <member name="P:NAnt.DotNet.Tasks.AssemblyLinkerTask.Company">
              <summary>
-             The name of the XML documentation file to generate.
+             Specifies a string for the <b>Company</b> field in the assembly.
              </summary>
+             <value>
+             A string for the <b>Company</b> field in the assembly.
+             </value>
              <remarks>
-             <para>
-             Corresponds with the <c>/doc:</c> flag.
-             </para>
+             If <see cref="P:NAnt.DotNet.Tasks.AssemblyLinkerTask.Company" /> is an empty string (""), the Win32 
+             <b>Company</b> resource appears as a single space.
              </remarks>
             </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.FileAlign">
+        <member name="P:NAnt.DotNet.Tasks.AssemblyLinkerTask.Configuration">
              <summary>
-             Specifies the size of sections in the output file. Valid values are
-             512, 1024, 2048, 4096, and 8192.
+             Specifies a string for the <b>Configuration</b> field in the assembly.
              </summary>
              <value>
-             The size of sections in the output file.
+             A string for the <b>Configuration</b> field in the assembly.
              </value>
-            </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.NoStdLib">
-             <summary>
-             Instructs the compiler not to import mscorlib.dll. The default is 
-             <see langword="false" />.
-             </summary>
              <remarks>
-             <para>
-             Corresponds with the <c>/nostdlib[+|-]</c> flag.
-             </para>
+             If <see cref="P:NAnt.DotNet.Tasks.AssemblyLinkerTask.Configuration" /> is an empty string (""), the Win32
+             <b>Configuration</b> resource appears as a single space.
              </remarks>
             </member>
-        <member name="P:NAnt.DotNet.Tasks.CscTask.NoConfig">
+        <member name="P:NAnt.DotNet.Tasks.AssemblyLinkerTask.Copyright">
              <summary>
-             Instructs the compiler not to use implicit references to assemblies.
-             The default is <see langword="false" />.
+             Specifies a string for the <b>Copyright</b> field in the assembly.
              </summary>
+             <value>
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)
@@ -295,197 +295,17 @@
 
 .namespace NAnt.NUnit.Types
 {
-  .class public auto ansi serializable beforefieldinit FormatterData
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _extension
-    .field  private  bool _usefile
-    .field  private  valuetype NAnt.NUnit.Types.FormatterType _formatterType
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _outputDirectory
-
-    // method line 11
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2143
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::_formatterType
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void object::'.ctor'()
-	IL_000d:  ret 
-    } // end of method FormatterData::.ctor
-
-    // method line 12
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.NUnit.Types.FormatterType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x2154
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.NUnit.Types.FormatterType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::_formatterType
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FormatterData::get_Type
-
-    // method line 13
-    .method public hidebysig specialname 
-           instance default void set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value')  cil managed 
-    {
-        // Method begins at RVA 0x216f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::_formatterType
-	IL_0008:  ret 
-    } // end of method FormatterData::set_Type
-
-    // method line 14
-    .method public hidebysig specialname 
-           instance default bool get_UseFile ()  cil managed 
-    {
-        // Method begins at RVA 0x217c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit.Types.FormatterData::_usefile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FormatterData::get_UseFile
-
-    // method line 15
-    .method public hidebysig specialname 
-           instance default void set_UseFile (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2197
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit.Types.FormatterData::_usefile
-	IL_0008:  ret 
-    } // end of method FormatterData::set_UseFile
-
-    // method line 16
-    .method public hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
-    {
-        // Method begins at RVA 0x21a4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.NUnit.Types.FormatterData::_extension
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FormatterData::get_Extension
-
-    // method line 17
-    .method public hidebysig specialname 
-           instance default void set_Extension (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x21bf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.NUnit.Types.FormatterData::_extension
-	IL_0008:  ret 
-    } // end of method FormatterData::set_Extension
-
-    // method line 18
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x21cc
-	// 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.NUnit.Types.FormatterData::_outputDirectory
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FormatterData::get_OutputDirectory
-
-    // method line 19
-    .method public hidebysig specialname 
-           instance default void set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x21e7
-	// 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.NUnit.Types.FormatterData::_outputDirectory
-	IL_0008:  ret 
-    } // end of method FormatterData::set_OutputDirectory
-
-	.property instance valuetype NAnt.NUnit.Types.FormatterType Type ()
-	{
-		.get instance default valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::get_Type () 
-		.set instance default void NAnt.NUnit.Types.FormatterData::set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value') 
-	}
-	.property instance bool UseFile ()
-	{
-		.get instance default bool NAnt.NUnit.Types.FormatterData::get_UseFile () 
-		.set instance default void NAnt.NUnit.Types.FormatterData::set_UseFile (bool 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.get instance default string NAnt.NUnit.Types.FormatterData::get_Extension () 
-		.set instance default void NAnt.NUnit.Types.FormatterData::set_Extension (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.NUnit.Types.FormatterData::get_OutputDirectory () 
-		.set instance default void NAnt.NUnit.Types.FormatterData::set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-  } // end of class NAnt.NUnit.Types.FormatterData
-}
-
-.namespace NAnt.NUnit.Types
-{
   .class public auto ansi serializable beforefieldinit FormatterDataCollection
   	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 20
+    // method line 11
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x21f1
+        // Method begins at RVA 0x2143
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -494,11 +314,11 @@
 	IL_0007:  ret 
     } // end of method FormatterDataCollection::.ctor
 
-    // method line 21
+    // method line 12
     .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 0x214c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -510,11 +330,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::.ctor
 
-    // method line 22
+    // method line 13
     .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 0x215c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -526,11 +346,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::.ctor
 
-    // method line 23
+    // method line 14
     .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 0x216c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -548,11 +368,11 @@
 	IL_0019:  ret 
     } // end of method FormatterDataCollection::get_Item
 
-    // method line 24
+    // method line 15
     .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 0x2192
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -564,11 +384,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::set_Item
 
-    // method line 25
+    // method line 16
     .method public hidebysig 
            instance default int32 Add (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2254
+        // Method begins at RVA 0x21a4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -585,11 +405,11 @@
 	IL_0014:  ret 
     } // end of method FormatterDataCollection::Add
 
-    // method line 26
+    // method line 17
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterData[] items)  cil managed 
     {
-        // Method begins at RVA 0x2278
+        // Method begins at RVA 0x21c8
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -620,11 +440,11 @@
 	IL_0021:  ret 
     } // end of method FormatterDataCollection::AddRange
 
-    // method line 27
+    // method line 18
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterDataCollection items)  cil managed 
     {
-        // Method begins at RVA 0x22a8
+        // Method begins at RVA 0x21f8
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -654,11 +474,11 @@
 	IL_0028:  ret 
     } // end of method FormatterDataCollection::AddRange
 
-    // method line 28
+    // method line 19
     .method public hidebysig 
            instance default bool Contains (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x22e0
+        // Method begins at RVA 0x2230
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -675,11 +495,11 @@
 	IL_0014:  ret 
     } // end of method FormatterDataCollection::Contains
 
-    // method line 29
+    // method line 20
     .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 0x2251
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -691,11 +511,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::CopyTo
 
-    // method line 30
+    // method line 21
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2314
+        // Method begins at RVA 0x2264
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -712,11 +532,11 @@
 	IL_0014:  ret 
     } // end of method FormatterDataCollection::IndexOf
 
-    // method line 31
+    // method line 22
     .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 0x2285
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -728,11 +548,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::Insert
 
-    // method line 32
+    // method line 23
     .method public hidebysig 
            instance default class NAnt.NUnit.Types.FormatterDataEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2348
+        // Method begins at RVA 0x2298
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -747,11 +567,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::GetEnumerator
 
-    // method line 33
+    // method line 24
     .method public hidebysig 
            instance default void Remove (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2363
+        // Method begins at RVA 0x22b3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -777,11 +597,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 34
+    // method line 25
     .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 0x22c4
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -798,11 +618,11 @@
 	IL_0015:  ret 
     } // end of method FormatterDataEnumerator::.ctor
 
-    // method line 35
+    // method line 26
     .method public hidebysig specialname 
            instance default class NAnt.NUnit.Types.FormatterData get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2398
+        // Method begins at RVA 0x22e8
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -819,11 +639,11 @@
 	IL_0018:  ret 
     } // end of method FormatterDataEnumerator::get_Current
 
-    // method line 36
+    // method line 27
     .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 0x2310
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -840,11 +660,11 @@
 	IL_0013:  ret 
     } // end of method FormatterDataEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 37
+    // method line 28
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x23e0
+        // Method begins at RVA 0x2330
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -860,11 +680,11 @@
 	IL_0013:  ret 
     } // end of method FormatterDataEnumerator::MoveNext
 
-    // method line 38
+    // method line 29
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2400
+        // Method begins at RVA 0x2350
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -881,11 +701,11 @@
 	IL_0013:  ret 
     } // end of method FormatterDataEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 39
+    // method line 30
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2420
+        // Method begins at RVA 0x2370
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -895,11 +715,11 @@
 	IL_000c:  ret 
     } // end of method FormatterDataEnumerator::Reset
 
-    // method line 40
+    // method line 31
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x242e
+        // Method begins at RVA 0x237e
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -929,11 +749,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 32
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x243c
+        // Method begins at RVA 0x238c
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -942,11 +762,11 @@
 	IL_0007:  ret 
     } // end of method FormatterElementCollection::.ctor
 
-    // method line 42
+    // method line 33
     .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 0x2395
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -958,11 +778,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::.ctor
 
-    // method line 43
+    // method line 34
     .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 0x23a5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -974,11 +794,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::.ctor
 
-    // method line 44
+    // method line 35
     .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 0x23b8
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -996,11 +816,11 @@
 	IL_0019:  ret 
     } // end of method FormatterElementCollection::get_Item
 
-    // method line 45
+    // method line 36
     .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 0x23de
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1012,11 +832,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::set_Item
 
-    // method line 46
+    // method line 37
     .method public hidebysig 
            instance default int32 Add (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x24a0
+        // Method begins at RVA 0x23f0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1033,11 +853,11 @@
 	IL_0014:  ret 
     } // end of method FormatterElementCollection::Add
 
-    // method line 47
+    // method line 38
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterElement[] items)  cil managed 
     {
-        // Method begins at RVA 0x24c4
+        // Method begins at RVA 0x2414
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -1068,11 +888,11 @@
 	IL_0021:  ret 
     } // end of method FormatterElementCollection::AddRange
 
-    // method line 48
+    // method line 39
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterElementCollection items)  cil managed 
     {
-        // Method begins at RVA 0x24f4
+        // Method begins at RVA 0x2444
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1102,11 +922,11 @@
 	IL_0028:  ret 
     } // end of method FormatterElementCollection::AddRange
 
-    // method line 49
+    // method line 40
     .method public hidebysig 
            instance default bool Contains (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x252c
+        // Method begins at RVA 0x247c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1123,11 +943,11 @@
 	IL_0014:  ret 
     } // end of method FormatterElementCollection::Contains
 
-    // method line 50
+    // method line 41
     .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 0x249d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1139,11 +959,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::CopyTo
 
-    // method line 51
+    // method line 42
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x2560
+        // Method begins at RVA 0x24b0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1160,11 +980,11 @@
 	IL_0014:  ret 
     } // end of method FormatterElementCollection::IndexOf
 
-    // method line 52
+    // method line 43
     .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 0x24d1
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1176,11 +996,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::Insert
 
-    // method line 53
+    // method line 44
     .method public hidebysig 
            instance default class NAnt.NUnit.Types.FormatterElementEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2594
+        // Method begins at RVA 0x24e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1195,11 +1015,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::GetEnumerator
 
-    // method line 54
+    // method line 45
     .method public hidebysig 
            instance default void Remove (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x25af
+        // Method begins at RVA 0x24ff
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1225,11 +1045,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 55
+    // method line 46
     .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 0x2510
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1246,11 +1066,11 @@
 	IL_0015:  ret 
     } // end of method FormatterElementEnumerator::.ctor
 
-    // method line 56
+    // method line 47
     .method public hidebysig specialname 
            instance default class NAnt.NUnit.Types.FormatterElement get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x25e4
+        // Method begins at RVA 0x2534
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -1267,11 +1087,11 @@
 	IL_0018:  ret 
     } // end of method FormatterElementEnumerator::get_Current
 
-    // method line 57
+    // method line 48
     .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 0x255c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1288,11 +1108,11 @@
 	IL_0013:  ret 
     } // end of method FormatterElementEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 58
+    // method line 49
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x262c
+        // Method begins at RVA 0x257c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1308,11 +1128,11 @@
 	IL_0013:  ret 
     } // end of method FormatterElementEnumerator::MoveNext
 
-    // method line 59
+    // method line 50
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x264c
+        // Method begins at RVA 0x259c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1329,11 +1149,11 @@
 	IL_0013:  ret 
     } // end of method FormatterElementEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 60
+    // method line 51
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x266c
+        // Method begins at RVA 0x25bc
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1343,11 +1163,11 @@
 	IL_000c:  ret 
     } // end of method FormatterElementEnumerator::Reset
 
-    // method line 61
+    // method line 52
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x267a
+        // Method begins at RVA 0x25ca
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -1369,3 +1189,183 @@
   } // end of class NAnt.NUnit.Types.FormatterElementEnumerator
 }
 
+.namespace NAnt.NUnit.Types
+{
+  .class public auto ansi serializable beforefieldinit FormatterData
+  	extends [mscorlib]System.Object
+  {
+    .field  private  string _extension
+    .field  private  bool _usefile
+    .field  private  valuetype NAnt.NUnit.Types.FormatterType _formatterType
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _outputDirectory
+
+    // method line 53
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x25d8
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::_formatterType
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void object::'.ctor'()
+	IL_000d:  ret 
+    } // end of method FormatterData::.ctor
+
+    // method line 54
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.NUnit.Types.FormatterType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0x25e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.NUnit.Types.FormatterType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::_formatterType
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FormatterData::get_Type
+
+    // method line 55
+    .method public hidebysig specialname 
+           instance default void set_Type (valuetype NAnt.NUnit.Types.FormatterType '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 valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::_formatterType
+	IL_0008:  ret 
+    } // end of method FormatterData::set_Type
+
+    // method line 56
+    .method public hidebysig specialname 
+           instance default bool get_UseFile ()  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.NUnit.Types.FormatterData::_usefile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FormatterData::get_UseFile
+
+    // method line 57
+    .method public hidebysig specialname 
+           instance default void set_UseFile (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.NUnit.Types.FormatterData::_usefile
+	IL_0008:  ret 
+    } // end of method FormatterData::set_UseFile
+
+    // method line 58
+    .method public hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0x2638
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.NUnit.Types.FormatterData::_extension
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FormatterData::get_Extension
+
+    // method line 59
+    .method public hidebysig specialname 
+           instance default void set_Extension (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2653
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.NUnit.Types.FormatterData::_extension
+	IL_0008:  ret 
+    } // end of method FormatterData::set_Extension
+
+    // method line 60
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x2660
+	// 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.NUnit.Types.FormatterData::_outputDirectory
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FormatterData::get_OutputDirectory
+
+    // method line 61
+    .method public hidebysig specialname 
+           instance default void set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x267b
+	// 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.NUnit.Types.FormatterData::_outputDirectory
+	IL_0008:  ret 
+    } // end of method FormatterData::set_OutputDirectory
+
+	.property instance valuetype NAnt.NUnit.Types.FormatterType Type ()
+	{
+		.get instance default valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterData::get_Type () 
+		.set instance default void NAnt.NUnit.Types.FormatterData::set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value') 
+	}
+	.property instance bool UseFile ()
+	{
+		.get instance default bool NAnt.NUnit.Types.FormatterData::get_UseFile () 
+		.set instance default void NAnt.NUnit.Types.FormatterData::set_UseFile (bool 'value') 
+	}
+	.property instance string Extension ()
+	{
+		.get instance default string NAnt.NUnit.Types.FormatterData::get_Extension () 
+		.set instance default void NAnt.NUnit.Types.FormatterData::set_Extension (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.NUnit.Types.FormatterData::get_OutputDirectory () 
+		.set instance default void NAnt.NUnit.Types.FormatterData::set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+  } // end of class NAnt.NUnit.Types.FormatterData
+}
+
/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
@@ -53,42 +53,6 @@
              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.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterData.Type">
-             <summary>
-             Gets or sets the type of the formatter.
-             </summary>
-             <value>The type of the formatter.</value>
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterData.UseFile">
-             <summary>
-             Gets or sets a value indicating whether output should be persisted 
-             to a file. 
-             </summary>
-             <value>
-             <see langword="true" /> if output should be written to a file; otherwise, 
-             <see langword="false" />. The default is <see langword="false" />.
-             </value>
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterData.Extension">
-             <summary>
-             Gets or sets the extension to append to the output filename.
-             </summary>
-             <value>The extension to append to the output filename.</value>
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterData.OutputDirectory">
-             <summary>
-             Gets or sets the directory where the output file should be written 
-             to, if <see cref="P:NAnt.NUnit.Types.FormatterData.UseFile" /> is <see langword="true" />.
-             </summary> 
-             <value>
-             The directory where the output file should be written to.
-             </value>
-            </member>
         <member name="T:NAnt.NUnit.Types.FormatterDataCollection">
              <summary>
              Contains a strongly typed collection of <see cref="T:NAnt.NUnit.Types.FormatterData" /> objects.
@@ -349,5 +313,41 @@
              first element in the collection.
              </summary>
             </member>
+        <member name="T:NAnt.NUnit.Types.FormatterData">
+             <summary>
+             Carries data specified through the formatter element.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterData.Type">
+             <summary>
+             Gets or sets the type of the formatter.
+             </summary>
+             <value>The type of the formatter.</value>
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterData.UseFile">
+             <summary>
+             Gets or sets a value indicating whether output should be persisted 
+             to a file. 
+             </summary>
+             <value>
+             <see langword="true" /> if output should be written to a file; otherwise, 
+             <see langword="false" />. The default is <see langword="false" />.
+             </value>
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterData.Extension">
+             <summary>
+             Gets or sets the extension to append to the output filename.
+             </summary>
+             <value>The extension to append to the output filename.</value>
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterData.OutputDirectory">
+             <summary>
+             Gets or sets the directory where the output file should be written 
+             to, if <see cref="P:NAnt.NUnit.Types.FormatterData.UseFile" /> is <see langword="true" />.
+             </summary> 
+             <value>
+             The directory where the output file should be written to.
+             </value>
+            </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)
@@ -3,11 +3,6 @@
   .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
-  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
-}
 .assembly extern NAnt.NUnit
 {
   .ver 0:93:1:0
@@ -17,7 +12,7 @@
   .ver 1:11:786:40392
   .publickeytoken = (1F D1 55 8A EB FB 1C 04 ) // ..U.....
 }
-.assembly extern System
+.assembly extern System.Xml
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
@@ -26,6 +21,11 @@
 {
   .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 'NAnt.NUnit1Tasks'
 {
   .custom instance void class [mscorlib]System.Reflection.AssemblyDelaySignAttribute::'.ctor'(bool) =  (01 00 00 00 00 ) // .....
@@ -73,809 +73,478 @@
 
 .namespace NAnt.NUnit1.Types
 {
-  .class interface public auto ansi abstract IResultFormatter
-  	implements [NUnitCore]NUnit.Framework.ITestListener  {
+  .class public auto ansi serializable beforefieldinit NUnitTestCollection
+  	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 virtual hidebysig newslot abstract 
-           instance default void StartTestSuite (class NAnt.NUnit1.Types.NUnitTestData suite)  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IResultFormatter::StartTestSuite
+        // 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 NUnitTestCollection::.ctor
 
     // method line 2
-    .method public virtual hidebysig newslot abstract 
-           (null) cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTestCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IResultFormatter::<NULL METHOD SIGNATURE>
+        // 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.NUnit1.Types.NUnitTestCollection::AddRange(class NAnt.NUnit1.Types.NUnitTestCollection)
+	IL_000e:  ret 
+    } // end of method NUnitTestCollection::.ctor
 
     // method line 3
-    .method public virtual hidebysig newslot abstract 
-           instance default void SetOutput (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IResultFormatter::SetOutput
-
-  } // end of class NAnt.NUnit1.Types.IResultFormatter
-}
-
-.namespace NAnt.NUnit1.Types
-{
-  .class public auto ansi beforefieldinit PlainTextFormatter
-  	extends [mscorlib]System.Object
-  	implements NAnt.NUnit1.Types.IResultFormatter, [NUnitCore]NUnit.Framework.ITestListener  {
-    .field  private  class [mscorlib]System.IO.TextWriter _writer
-
-    // method line 4
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTest[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x2069
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld class [mscorlib]System.IO.TextWriter NAnt.NUnit1.Types.PlainTextFormatter::_writer
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void object::'.ctor'()
-	IL_000d:  nop 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.NUnit1.Types.NUnitTestCollection::AddRange(class NAnt.NUnit1.Types.NUnitTest[])
 	IL_000e:  ret 
-    } // end of method PlainTextFormatter::.ctor
+    } // end of method NUnitTestCollection::.ctor
 
-    // method line 5
+    // method line 4
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_Writer ()  cil managed 
+           instance default class NAnt.NUnit1.Types.NUnitTest get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2060
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x207c
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.TextWriter	V_0)
+		class NAnt.NUnit1.Types.NUnitTest	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.NUnit1.Types.PlainTextFormatter::_writer
-	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.NUnit1.Types.NUnitTest
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PlainTextFormatter::get_Writer
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method NUnitTestCollection::get_Item
 
-    // method line 6
+    // method line 5
     .method public hidebysig specialname 
-           instance default void set_Writer (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0x207b
-	// 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.NUnit1.Types.PlainTextFormatter::_writer
-	IL_0008:  ret 
-    } // end of method PlainTextFormatter::set_Writer
-
-    // method line 7
-    .method public final virtual hidebysig newslot 
-           instance default void SetOutput (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+           instance default void set_Item (int32 index, class NAnt.NUnit1.Types.NUnitTest 'value')  cil managed 
     {
-        // Method begins at RVA 0x2085
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x20a2
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void(class [mscorlib]System.IO.TextWriter)
-	IL_0008:  ret 
-    } // end of method PlainTextFormatter::SetOutput
-
-    // method line 8
-    .method public final virtual hidebysig newslot 
-           instance default void StartTestSuite (class NAnt.NUnit1.Types.NUnitTestData suite)  cil managed 
-    {
-        // Method begins at RVA 0x208f
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method PlainTextFormatter::StartTestSuite
+	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 NUnitTestCollection::set_Item
 
-    // method line 9
-    .method public final virtual hidebysig newslot 
-           instance default void EndTestSuite (class NAnt.NUnit1.Types.TestResultExtra result)  cil managed 
+    // method line 6
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
     {
-        // Method begins at RVA 0x2094
-	// Code size 136 (0x88)
-	.maxstack 5
+        // Method begins at RVA 0x20b4
+	// 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.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0007:  ldstr "------------------------------------------"
-	IL_000c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0011:  ldarg.1 
-	IL_0012:  callvirt instance bool [NUnitCore]NUnit.Framework.TestResult::get_WasSuccessful()
-	IL_0017:  brfalse IL_003e
-
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0023:  ldstr "{0} tests: ALL SUCCESSFUL"
-	IL_0028:  ldarg.1 
-	IL_0029:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_RunCount()
-	IL_002e:  box [mscorlib]System.Int32
-	IL_0033:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_0038:  nop 
-	IL_0039:  br IL_0071
-
-	IL_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0045:  ldstr "{0} tests: FAILURES: {1} ERRORS: {2}"
-	IL_004a:  ldarg.1 
-	IL_004b:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_RunCount()
-	IL_0050:  box [mscorlib]System.Int32
-	IL_0055:  ldarg.1 
-	IL_0056:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_FailureCount()
-	IL_005b:  box [mscorlib]System.Int32
-	IL_0060:  ldarg.1 
-	IL_0061:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_ErrorCount()
-	IL_0066:  box [mscorlib]System.Int32
-	IL_006b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object, object)
-	IL_0070:  nop 
-	IL_0071:  ldarg.0 
-	IL_0072:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0077:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0082:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	IL_0087:  ret 
-    } // end of method PlainTextFormatter::EndTestSuite
+	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
 
-    // method line 10
-    .method public final virtual hidebysig newslot 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x2128
-	// Code size 57 (0x39)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0007:  ldstr "ERROR: "
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance string object::ToString()
-	IL_0012:  call string string::Concat(string, string)
-	IL_0017:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0022:  ldarg.2 
-	IL_0023:  callvirt instance string class [mscorlib]System.Exception::get_StackTrace()
-	IL_0028:  ldarg.2 
-	IL_0029:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_002e:  call string class NAnt.NUnit1.Types.PlainTextFormatter::FormatError(string, string)
-	IL_0033:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0038:  ret 
-    } // end of method PlainTextFormatter::<NULL METHOD SIGNATURE>
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnitTestCollection::Add
 
-    // method line 11
-    .method public final virtual hidebysig newslot 
-           (null) cil managed 
+    // method line 7
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit1.Types.NUnitTest[] items)  cil managed 
     {
-        // Method begins at RVA 0x2162
-	// Code size 57 (0x39)
-	.maxstack 8
+        // Method begins at RVA 0x20d8
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0007:  ldstr "FAILURE: "
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance string object::ToString()
-	IL_0012:  call string string::Concat(string, string)
-	IL_0017:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0022:  ldarg.2 
-	IL_0023:  callvirt instance string class [mscorlib]System.Exception::get_StackTrace()
-	IL_0028:  ldarg.2 
-	IL_0029:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_002e:  call string class NAnt.NUnit1.Types.PlainTextFormatter::FormatError(string, string)
-	IL_0033:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0038:  ret 
-    } // end of method PlainTextFormatter::<NULL METHOD SIGNATURE>
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-    // method line 12
-    .method public final virtual hidebysig newslot 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x219c
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.TextWriter class NAnt.NUnit1.Types.PlainTextFormatter::get_Writer()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string object::ToString()
-	IL_000d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0012:  ret 
-    } // end of method PlainTextFormatter::<NULL METHOD SIGNATURE>
+	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.NUnitTestCollection::Add(class NAnt.NUnit1.Types.NUnitTest)
+	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 13
-    .method public final virtual hidebysig newslot 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x21b0
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method PlainTextFormatter::<NULL METHOD SIGNATURE>
+	IL_0021:  ret 
+    } // end of method NUnitTestCollection::AddRange
 
-    // method line 14
-    .method private static hidebysig 
-           default string FormatError (string trace, string message)  cil managed 
+    // method line 8
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit1.Types.NUnitTestCollection items)  cil managed 
     {
-        // Method begins at RVA 0x21b4
-	// Code size 126 (0x7e)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string[]	V_1,
-		class [System]System.Text.RegularExpressions.Regex	V_2,
-		string	V_3,
-		string[]	V_4,
-		int32	V_5,
-		class [System]System.Text.RegularExpressions.Match	V_6,
-		string	V_7)
+        // Method begins at RVA 0x2108
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
+	IL_0001:  ldc.i4.0 
 	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldc.i4.1 
-	IL_0005:  newarr [mscorlib]System.Char
-	IL_000a:  dup 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ldc.i4.s 0x0a
-	IL_000e:  stelem.i2 
-	IL_000f:  callvirt instance string[] string::Split(char[])
-	IL_0014:  stloc.1 
-	IL_0015:  ldstr "^\\s+at (?<method>.+) in (?<file>.+):line (?<line>\\d+)$"
-	IL_001a:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_001f:  stloc.2 
-	IL_0020:  nop 
-	IL_0021:  ldloc.1 
-	IL_0022:  stloc.s 4
-	IL_0024:  ldc.i4.0 
-	IL_0025:  stloc.s 5
-	IL_0027:  br IL_0068
-
-	IL_002c:  ldloc.s 4
-	IL_002e:  ldloc.s 5
-	IL_0030:  ldelem.ref 
-	IL_0031:  stloc.3 
-	IL_0032:  nop 
-	IL_0033:  ldloc.2 
-	IL_0034:  ldloc.3 
-	IL_0035:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_003a:  stloc.s 6
-	IL_003c:  ldloc.s 6
-	IL_003e:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_0043:  brfalse IL_0061
-
-	IL_0048:  nop 
-	IL_0049:  ldloc.s 6
-	IL_004b:  ldstr "${file}(${line}): "
-	IL_0050:  callvirt instance string class [System]System.Text.RegularExpressions.Match::Result(string)
-	IL_0055:  ldarg.1 
-	IL_0056:  call string string::Concat(string, string)
-	IL_005b:  stloc.0 
-	IL_005c:  br IL_0073
-
-	IL_0061:  nop 
-	IL_0062:  ldloc.s 5
-	IL_0064:  ldc.i4.1 
-	IL_0065:  add 
-	IL_0066:  stloc.s 5
-	IL_0068:  ldloc.s 5
-	IL_006a:  ldloc.s 4
-	IL_006c:  ldlen 
-	IL_006d:  conv.i4 
-	IL_006e:  blt IL_002c
-
-	IL_0073:  ldloc.0 
-	IL_0074:  stloc.s 7
-	IL_0076:  br IL_007b
-
-	IL_007b:  ldloc.s 7
-	IL_007d:  ret 
-    } // end of method PlainTextFormatter::FormatError
-
-	.property instance class [mscorlib]System.IO.TextWriter Writer ()
-	{
-		.get instance default class [mscorlib]System.IO.TextWriter NAnt.NUnit1.Types.PlainTextFormatter::get_Writer () 
-		.set instance default void NAnt.NUnit1.Types.PlainTextFormatter::set_Writer (class [mscorlib]System.IO.TextWriter 'value') 
-	}
-  } // end of class NAnt.NUnit1.Types.PlainTextFormatter
-}
-
-.namespace NAnt.NUnit1.Types
-{
-  .class public auto ansi beforefieldinit NUnitTest
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 04 74 65 73 74 00 00 ) // ...test..
+	IL_0003:  br IL_001c
 
-    .field  private  string _class
-    .field  private  string _assembly
-    .field  private  bool _fork
-    .field  private  bool _haltonerror
-    .field  private  bool _haltonfailure
-    .field  private  string _appConfigFile
-    .field  private  string _todir
-    .field  private  string _outfile
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.NUnit1.Types.NUnitTest class NAnt.NUnit1.Types.NUnitTestCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.NUnit1.Types.NUnitTestCollection::Add(class NAnt.NUnit1.Types.NUnitTest)
+	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 15
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x223e
-	// Code size 63 (0x3f)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld string NAnt.NUnit1.Types.NUnitTest::_class
-	IL_0007:  ldarg.0 
-	IL_0008:  ldnull 
-	IL_0009:  stfld string NAnt.NUnit1.Types.NUnitTest::_assembly
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stfld bool NAnt.NUnit1.Types.NUnitTest::_fork
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4.0 
-	IL_0017:  stfld bool NAnt.NUnit1.Types.NUnitTest::_haltonerror
-	IL_001c:  ldarg.0 
-	IL_001d:  ldc.i4.0 
-	IL_001e:  stfld bool NAnt.NUnit1.Types.NUnitTest::_haltonfailure
-	IL_0023:  ldarg.0 
-	IL_0024:  ldnull 
-	IL_0025:  stfld string NAnt.NUnit1.Types.NUnitTest::_appConfigFile
-	IL_002a:  ldarg.0 
-	IL_002b:  ldnull 
-	IL_002c:  stfld string NAnt.NUnit1.Types.NUnitTest::_todir
-	IL_0031:  ldarg.0 
-	IL_0032:  ldnull 
-	IL_0033:  stfld string NAnt.NUnit1.Types.NUnitTest::_outfile
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_003e:  ret 
-    } // end of method NUnitTest::.ctor
+	IL_0028:  ret 
+    } // end of method NUnitTestCollection::AddRange
 
-    // method line 16
-    .method public hidebysig specialname 
-           instance default string get_OutFile ()  cil managed 
+    // method line 9
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
     {
-        // Method begins at RVA 0x2280
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2140
+	// 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.NUnit1.Types.NUnitTest::_outfile
-	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 NUnitTest::get_OutFile
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnitTestCollection::Contains
 
-    // method line 17
-    .method public hidebysig specialname 
-           instance default void set_OutFile (string 'value')  cil managed 
+    // method line 10
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.NUnit1.Types.NUnitTest[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x229b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2161
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.NUnit1.Types.NUnitTest::_outfile
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_OutFile
+	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 NUnitTestCollection::CopyTo
 
-    // method line 18
-    .method public hidebysig specialname 
-           instance default string get_ToDir ()  cil managed 
+    // method line 11
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
     {
-        // Method begins at RVA 0x22a8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2174
+	// 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.NUnit1.Types.NUnitTest::_todir
-	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 NUnitTest::get_ToDir
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnitTestCollection::IndexOf
 
-    // method line 19
-    .method public hidebysig specialname 
-           instance default void set_ToDir (string 'value')  cil managed 
+    // method line 12
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
     {
-        // Method begins at RVA 0x22c3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2195
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.NUnit1.Types.NUnitTest::_todir
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_ToDir
+	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 NUnitTestCollection::Insert
 
-    // method line 20
-    .method public hidebysig specialname 
-           instance default string get_Class ()  cil managed 
+    // method line 13
+    .method public hidebysig 
+           instance default class NAnt.NUnit1.Types.NUnitTestEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x22d0
+        // Method begins at RVA 0x21a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.NUnit1.Types.NUnitTestEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.NUnit1.Types.NUnitTest::_class
+	IL_0002:  newobj instance void class NAnt.NUnit1.Types.NUnitTestEnumerator::'.ctor'(class NAnt.NUnit1.Types.NUnitTestCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NUnitTest::get_Class
+    } // end of method NUnitTestCollection::GetEnumerator
 
-    // method line 21
-    .method public hidebysig specialname 
-           instance default void set_Class (string 'value')  cil managed 
+    // method line 14
+    .method public hidebysig 
+           instance default void Remove (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
     {
-        // Method begins at RVA 0x22eb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x21c3
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.NUnit1.Types.NUnitTest::_class
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_Class
+	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 NUnitTestCollection::Remove
 
-    // method line 22
-    .method public hidebysig specialname 
-           instance default string get_Assembly ()  cil managed 
-    {
-        // Method begins at RVA 0x22f8
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld string NAnt.NUnit1.Types.NUnitTest::_assembly
-	IL_000d:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	.property instance class NAnt.NUnit1.Types.NUnitTest Item (int32)
+	{
+		.get instance default class NAnt.NUnit1.Types.NUnitTest NAnt.NUnit1.Types.NUnitTestCollection::get_Item (int32 index) 
+		.set instance default void NAnt.NUnit1.Types.NUnitTestCollection::set_Item (int32 index, class NAnt.NUnit1.Types.NUnitTest 'value') 
+	}
+  } // end of class NAnt.NUnit1.Types.NUnitTestCollection
+}
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method NUnitTest::get_Assembly
+.namespace NAnt.NUnit1.Types
+{
+  .class public auto ansi beforefieldinit NUnitTestEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 23
-    .method public hidebysig specialname 
-           instance default void set_Assembly (string 'value')  cil managed 
+    // method line 15
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTestCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x231e
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.NUnit1.Types.NUnitTest::_assembly
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_Assembly
+        // Method begins at RVA 0x21d4
+	// 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.NUnitTestEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method NUnitTestEnumerator::.ctor
 
-    // method line 24
+    // method line 16
     .method public hidebysig specialname 
-           instance default bool get_Fork ()  cil managed 
+           instance default class NAnt.NUnit1.Types.NUnitTest get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2328
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x21f8
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.NUnit1.Types.NUnitTest	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit1.Types.NUnitTest::_fork
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnitTest::get_Fork
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.NUnit1.Types.NUnitTest
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 25
-    .method public hidebysig specialname 
-           instance default void set_Fork (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2343
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit1.Types.NUnitTest::_fork
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_Fork
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NUnitTestEnumerator::get_Current
 
-    // method line 26
-    .method public hidebysig specialname 
-           instance default bool get_HaltOnError ()  cil managed 
+    // method line 17
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2350
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2220
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit1.Types.NUnitTest::_haltonerror
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnitTest::get_HaltOnError
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 27
-    .method public hidebysig specialname 
-           instance default void set_HaltOnError (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x236b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit1.Types.NUnitTest::_haltonerror
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_HaltOnError
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnitTestEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 28
-    .method public hidebysig specialname 
-           instance default bool get_HaltOnFailure ()  cil managed 
+    // method line 18
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2378
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2240
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit1.Types.NUnitTest::_haltonfailure
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnitTest::get_HaltOnFailure
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 29
-    .method public hidebysig specialname 
-           instance default void set_HaltOnFailure (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2393
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit1.Types.NUnitTest::_haltonfailure
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_HaltOnFailure
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnitTestEnumerator::MoveNext
 
-    // method line 30
-    .method public hidebysig specialname 
-           instance default string get_AppConfigFile ()  cil managed 
+    // method line 19
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x23a0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2260
+	.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:  ldfld string NAnt.NUnit1.Types.NUnitTest::_appConfigFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_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 NUnitTest::get_AppConfigFile
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnitTestEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 31
-    .method public hidebysig specialname 
-           instance default void set_AppConfigFile (string 'value')  cil managed 
+    // method line 20
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x23bb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2280
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.NUnit1.Types.NUnitTest::_appConfigFile
-	IL_0008:  ret 
-    } // end of method NUnitTest::set_AppConfigFile
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method NUnitTestEnumerator::Reset
 
-    // method line 32
-    .method assembly hidebysig 
-           instance default class NAnt.NUnit1.Types.NUnitTestData GetTestData ()  cil managed 
+    // method line 21
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x23c8
-	// Code size 112 (0x70)
-	.maxstack 2
-	.locals init (
-		class NAnt.NUnit1.Types.NUnitTestData	V_0,
-		class NAnt.NUnit1.Types.NUnitTestData	V_1)
+        // Method begins at RVA 0x228e
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.NUnit1.Types.NUnitTestData::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance string class NAnt.NUnit1.Types.NUnitTest::get_OutFile()
-	IL_000e:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_OutFile(string)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance string class NAnt.NUnit1.Types.NUnitTest::get_ToDir()
-	IL_001a:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_ToDir(string)
-	IL_001f:  ldloc.0 
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance string class NAnt.NUnit1.Types.NUnitTest::get_Class()
-	IL_0026:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_Class(string)
-	IL_002b:  ldloc.0 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance string class NAnt.NUnit1.Types.NUnitTest::get_Assembly()
-	IL_0032:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_Assembly(string)
-	IL_0037:  ldloc.0 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance bool class NAnt.NUnit1.Types.NUnitTest::get_Fork()
-	IL_003e:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_Fork(bool)
-	IL_0043:  ldloc.0 
-	IL_0044:  ldarg.0 
-	IL_0045:  call instance bool class NAnt.NUnit1.Types.NUnitTest::get_HaltOnError()
-	IL_004a:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_HaltOnError(bool)
-	IL_004f:  ldloc.0 
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance bool class NAnt.NUnit1.Types.NUnitTest::get_HaltOnFailure()
-	IL_0056:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_HaltOnFailure(bool)
-	IL_005b:  ldloc.0 
-	IL_005c:  ldarg.0 
-	IL_005d:  call instance string class NAnt.NUnit1.Types.NUnitTest::get_AppConfigFile()
-	IL_0062:  callvirt instance void class NAnt.NUnit1.Types.NUnitTestData::set_AppConfigFile(string)
-	IL_0067:  ldloc.0 
-	IL_0068:  stloc.1 
-	IL_0069:  br IL_006e
-
-	IL_006e:  ldloc.1 
-	IL_006f:  ret 
-    } // end of method NUnitTest::GetTestData
-
-	.property instance string OutFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6F 75 74 66 69 6C 65 00 00 ) // ...outfile..
-
-		.get instance default string NAnt.NUnit1.Types.NUnitTest::get_OutFile () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_OutFile (string 'value') 
-	}
-	.property instance string ToDir ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 74 6F 64 69 72 00 00 ) // ...todir..
-
-		.get instance default string NAnt.NUnit1.Types.NUnitTest::get_ToDir () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_ToDir (string 'value') 
-	}
-	.property instance string Class ()
-	{
-		.custom instance void class [NAnt.Core]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 01                               ) // uired.
-
-		.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.NUnit1.Types.NUnitTest::get_Class () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_Class (string 'value') 
-	}
-	.property instance string Assembly ()
-	{
-		.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.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.NUnit1.Types.NUnitTest::get_Assembly () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_Assembly (string 'value') 
-	}
-	.property instance bool Fork ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 6F 72 6B 00 00 ) // ...fork..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.NUnit1.Types.NUnitTest::get_Fork () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_Fork (bool 'value') 
-	}
-	.property instance bool HaltOnError ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 68 61 6C 74 6F 6E 65 72 72 6F 72 00 00 ) // ...haltonerror..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method NUnitTestEnumerator::System.Collections.IEnumerator.Reset
 
-		.get instance default bool NAnt.NUnit1.Types.NUnitTest::get_HaltOnError () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_HaltOnError (bool 'value') 
-	}
-	.property instance bool HaltOnFailure ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 68 61 6C 74 6F 6E 66 61 69 6C 75 72 65   // ...haltonfailure
-		00 00                                           ) // ..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.NUnit1.Types.NUnitTest::get_HaltOnFailure () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_HaltOnFailure (bool 'value') 
+		.get instance default object NAnt.NUnit1.Types.NUnitTestEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance string AppConfigFile ()
+	.property instance class NAnt.NUnit1.Types.NUnitTest Current ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 61 70 70 63 6F 6E 66 69 67 00 00 ) // ...appconfig..
-
-		.get instance default string NAnt.NUnit1.Types.NUnitTest::get_AppConfigFile () 
-		.set instance default void NAnt.NUnit1.Types.NUnitTest::set_AppConfigFile (string 'value') 
+		.get instance default class NAnt.NUnit1.Types.NUnitTest NAnt.NUnit1.Types.NUnitTestEnumerator::get_Current () 
 	}
-  } // end of class NAnt.NUnit1.Types.NUnitTest
+  } // end of class NAnt.NUnit1.Types.NUnitTestEnumerator
 }
 
 .namespace NAnt.NUnit1.Types
 {
-  .class public auto ansi serializable beforefieldinit NUnitTestCollection
+  .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 33
+    // method line 22
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2444
+        // Method begins at RVA 0x229c
 	// 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 NUnitTestCollection::.ctor
+    } // end of method IResultFormatterCollection::.ctor
 
-    // method line 34
+    // method line 23
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTestCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.IResultFormatterCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x244d
+        // Method begins at RVA 0x22a5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -883,15 +552,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.NUnit1.Types.NUnitTestCollection::AddRange(class NAnt.NUnit1.Types.NUnitTestCollection)
+	IL_0009:  call instance void class NAnt.NUnit1.Types.IResultFormatterCollection::AddRange(class NAnt.NUnit1.Types.IResultFormatterCollection)
 	IL_000e:  ret 
-    } // end of method NUnitTestCollection::.ctor
+    } // end of method IResultFormatterCollection::.ctor
 
-    // method line 35
+    // method line 24
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTest[] 'value')  cil managed 
+           (null) cil managed 
     {
-        // Method begins at RVA 0x245d
+        // Method begins at RVA 0x22b5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -899,37 +568,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.NUnit1.Types.NUnitTestCollection::AddRange(class NAnt.NUnit1.Types.NUnitTest[])
+	IL_0009:  call instance void class NAnt.NUnit1.Types.IResultFormatterCollection::AddRange(class NAnt.NUnit1.Types.IResultFormatter[])
 	IL_000e:  ret 
-    } // end of method NUnitTestCollection::.ctor
+    } // end of method IResultFormatterCollection::<NULL METHOD SIGNATURE>
 
-    // method line 36
+    // method line 25
     .method public hidebysig specialname 
-           instance default class NAnt.NUnit1.Types.NUnitTest get_Item (int32 index)  cil managed 
+           instance default class NAnt.NUnit1.Types.IResultFormatter get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2470
+        // Method begins at RVA 0x22c8
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.NUnit1.Types.NUnitTest	V_0)
+		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.NUnitTest
+	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 NUnitTestCollection::get_Item
+    } // end of method IResultFormatterCollection::get_Item
 
-    // method line 37
+    // method line 26
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.NUnit1.Types.NUnitTest 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.NUnit1.Types.IResultFormatter 'value')  cil managed 
     {
-        // Method begins at RVA 0x2496
+        // Method begins at RVA 0x22ee
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -939,13 +608,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 NUnitTestCollection::set_Item
+    } // end of method IResultFormatterCollection::set_Item
 
-    // method line 38
+    // method line 27
     .method public hidebysig 
-           instance default int32 Add (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
+           instance default int32 Add (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
     {
-        // Method begins at RVA 0x24a8
+        // Method begins at RVA 0x2300
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -960,13 +629,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NUnitTestCollection::Add
+    } // end of method IResultFormatterCollection::Add
 
-    // method line 39
+    // method line 28
     .method public hidebysig 
-           instance default void AddRange (class NAnt.NUnit1.Types.NUnitTest[] items)  cil managed 
+           instance default void AddRange (class NAnt.NUnit1.Types.IResultFormatter[] items)  cil managed 
     {
-        // Method begins at RVA 0x24cc
+        // Method begins at RVA 0x2324
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -981,7 +650,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.NUnit1.Types.NUnitTestCollection::Add(class NAnt.NUnit1.Types.NUnitTest)
+	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 
@@ -995,13 +664,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method NUnitTestCollection::AddRange
+    } // end of method IResultFormatterCollection::AddRange
 
-    // method line 40
+    // method line 29
     .method public hidebysig 
-           instance default void AddRange (class NAnt.NUnit1.Types.NUnitTestCollection items)  cil managed 
+           instance default void AddRange (class NAnt.NUnit1.Types.IResultFormatterCollection items)  cil managed 
     {
-        // Method begins at RVA 0x24fc
+        // Method begins at RVA 0x2354
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1015,8 +684,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.NUnit1.Types.NUnitTest class NAnt.NUnit1.Types.NUnitTestCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.NUnit1.Types.NUnitTestCollection::Add(class NAnt.NUnit1.Types.NUnitTest)
+	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 
@@ -1029,13 +698,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method NUnitTestCollection::AddRange
+    } // end of method IResultFormatterCollection::AddRange
 
-    // method line 41
+    // method line 30
     .method public hidebysig 
-           instance default bool Contains (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
+           instance default bool Contains (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
     {
-        // Method begins at RVA 0x2534
+        // Method begins at RVA 0x238c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1050,13 +719,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NUnitTestCollection::Contains
+    } // end of method IResultFormatterCollection::Contains
 
-    // method line 42
+    // method line 31
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.NUnit1.Types.NUnitTest[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.NUnit1.Types.IResultFormatter[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2555
+        // Method begins at RVA 0x23ad
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1066,13 +735,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 NUnitTestCollection::CopyTo
+    } // end of method IResultFormatterCollection::CopyTo
 
-    // method line 43
+    // method line 32
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
+           instance default int32 IndexOf (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
     {
-        // Method begins at RVA 0x2568
+        // Method begins at RVA 0x23c0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1087,13 +756,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NUnitTestCollection::IndexOf
+    } // end of method IResultFormatterCollection::IndexOf
 
-    // method line 44
+    // method line 33
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
     {
-        // Method begins at RVA 0x2589
+        // Method begins at RVA 0x23e1
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1103,32 +772,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method NUnitTestCollection::Insert
+    } // end of method IResultFormatterCollection::Insert
 
-    // method line 45
+    // method line 34
     .method public hidebysig 
-           instance default class NAnt.NUnit1.Types.NUnitTestEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.NUnit1.Types.IResultFormatterEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x259c
+        // Method begins at RVA 0x23f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.NUnit1.Types.NUnitTestEnumerator	V_0)
+		class NAnt.NUnit1.Types.IResultFormatterEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.NUnit1.Types.NUnitTestEnumerator::'.ctor'(class NAnt.NUnit1.Types.NUnitTestCollection)
+	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 NUnitTestCollection::GetEnumerator
+    } // end of method IResultFormatterCollection::GetEnumerator
 
-    // method line 46
+    // method line 35
     .method public hidebysig 
-           instance default void Remove (class NAnt.NUnit1.Types.NUnitTest item)  cil managed 
+           instance default void Remove (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
     {
-        // Method begins at RVA 0x25b7
+        // Method begins at RVA 0x240f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1137,28 +806,28 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method NUnitTestCollection::Remove
+    } // end of method IResultFormatterCollection::Remove
 
-	.property instance class NAnt.NUnit1.Types.NUnitTest Item (int32)
+	.property instance class NAnt.NUnit1.Types.IResultFormatter Item (int32)
 	{
-		.get instance default class NAnt.NUnit1.Types.NUnitTest NAnt.NUnit1.Types.NUnitTestCollection::get_Item (int32 index) 
-		.set instance default void NAnt.NUnit1.Types.NUnitTestCollection::set_Item (int32 index, class NAnt.NUnit1.Types.NUnitTest 'value') 
+		.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.NUnitTestCollection
+  } // end of class NAnt.NUnit1.Types.IResultFormatterCollection
 }
 
 .namespace NAnt.NUnit1.Types
 {
-  .class public auto ansi beforefieldinit NUnitTestEnumerator
+  .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 47
+    // method line 36
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTestCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.IResultFormatterCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x25c8
+        // Method begins at RVA 0x2420
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1171,36 +840,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.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method NUnitTestEnumerator::.ctor
+    } // end of method IResultFormatterEnumerator::.ctor
 
-    // method line 48
+    // method line 37
     .method public hidebysig specialname 
-           instance default class NAnt.NUnit1.Types.NUnitTest get_Current ()  cil managed 
+           instance default class NAnt.NUnit1.Types.IResultFormatter get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x25ec
+        // Method begins at RVA 0x2444
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.NUnit1.Types.NUnitTest	V_0)
+		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.NUnitTestEnumerator::_baseEnumerator
+	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.NUnitTest
+	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 NUnitTestEnumerator::get_Current
+    } // end of method IResultFormatterEnumerator::get_Current
 
-    // method line 49
+    // method line 38
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2614
+        // Method begins at RVA 0x246c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1208,40 +877,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	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 NUnitTestEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method IResultFormatterEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 50
+    // method line 39
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2634
+        // Method begins at RVA 0x248c
 	// 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.NUnitTestEnumerator::_baseEnumerator
+	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 NUnitTestEnumerator::MoveNext
+    } // end of method IResultFormatterEnumerator::MoveNext
 
-    // method line 51
+    // method line 40
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2654
+        // Method begins at RVA 0x24ac
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1249,169 +918,792 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	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 NUnitTestEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method IResultFormatterEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 52
+    // method line 41
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2674
+        // Method begins at RVA 0x24cc
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.NUnitTestEnumerator::_baseEnumerator
+	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 NUnitTestEnumerator::Reset
+    } // end of method IResultFormatterEnumerator::Reset
 
-    // method line 53
+    // method line 42
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2682
+        // Method begins at RVA 0x24da
 	.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.NUnitTestEnumerator::_baseEnumerator
+	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 NUnitTestEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method IResultFormatterEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.NUnit1.Types.NUnitTestEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.NUnit1.Types.IResultFormatterEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.NUnit1.Types.NUnitTest Current ()
+	.property instance class NAnt.NUnit1.Types.IResultFormatter Current ()
 	{
-		.get instance default class NAnt.NUnit1.Types.NUnitTest NAnt.NUnit1.Types.NUnitTestEnumerator::get_Current () 
+		.get instance default class NAnt.NUnit1.Types.IResultFormatter NAnt.NUnit1.Types.IResultFormatterEnumerator::get_Current () 
 	}
-  } // end of class NAnt.NUnit1.Types.NUnitTestEnumerator
+  } // end of class NAnt.NUnit1.Types.IResultFormatterEnumerator
 }
 
-.namespace NAnt.NUnit1.Types
+.namespace NAnt.NUnit1.Tasks
 {
-  .class public auto ansi beforefieldinit XmlResultFormatter
-  	extends [mscorlib]System.Object
-  	implements NAnt.NUnit1.Types.IResultFormatter, [NUnitCore]NUnit.Framework.ITestListener  {
-    .field  private  class [mscorlib]System.IO.TextWriter _writer
-    .field  private  class [System.Xml]System.Xml.XmlDocument _document
-    .field  private  class [System.Xml]System.Xml.XmlElement _suiteElement
-    .field  private  class [System.Xml]System.Xml.XmlElement _currentTest
-    .field  private  valuetype [mscorlib]System.DateTime _testStartTime
-    .field private static literal  string ElementTestSuite = "testsuite"
-    .field private static literal  string ElementTestCase = "testcase"
-    .field private static literal  string ElementError = "error"
-    .field private static literal  string ElementFailure = "failure"
-    .field private static literal  string AttributeName = "name"
-    .field private static literal  string AttributeTime = "time"
-    .field private static literal  string AttributeErrors = "errors"
-    .field private static literal  string AttributeFailures = "failures"
-    .field private static literal  string AttributeTests = "tests"
-    .field private static literal  string AttributeType = "type"
-    .field private static literal  string AttributeMessage = "message"
-    .field private static literal  string AttributeClassname = "classname"
+  .class public auto ansi beforefieldinit NUnitTask
+  	extends [NAnt.Core]NAnt.Core.Task
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 6E 75 6E 69 74 00 00 ) // ...nunit..
 
-    // method line 54
+    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 75 49 6E 20 61 20 66 75 74 75 72 65 20 72   // ..uIn a future r
+		65 6C 65 61 73 65 2C 20 74 68 69 73 20 74 61 73   // elease, this tas
+		6B 20 77 69 6C 6C 20 62 65 20 6D 6F 76 65 64 20   // k will be moved 
+		74 6F 20 4E 41 6E 74 43 6F 6E 74 72 69 62 2E 20   // to NAntContrib. 
+		48 6F 77 65 76 65 72 2C 20 77 65 20 73 74 72 6F   // However, we stro
+		6E 67 6C 79 20 61 64 76 69 73 65 20 79 6F 75 20   // ngly advise you 
+		74 6F 20 75 70 67 72 61 64 65 20 74 6F 20 4E 55   // to upgrade to NU
+		6E 69 74 20 32 2E 78 2E 00 00                   ) // nit 2.x...
+
+    .field  private  bool _haltOnError
+    .field  private  bool _haltOnFailure
+    .field  private  int32 _timeout
+    .field  private  bool _failuresPresent
+    .field  private  bool _errorsPresent
+    .field  private  class NAnt.NUnit1.Types.NUnitTestCollection _tests
+    .field  private  class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection _formatterElements
+
+    // method line 43
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2690
-	// Code size 19 (0x13)
-	.maxstack 8
+        // Method begins at RVA 0x24e8
+	// Code size 64 (0x40)
+	.maxstack 2
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_haltOnError
 	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_000d:  stfld class [System.Xml]System.Xml.XmlDocument NAnt.NUnit1.Types.XmlResultFormatter::_document
-	IL_0012:  ret 
-    } // end of method XmlResultFormatter::.ctor
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_haltOnFailure
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stfld int32 NAnt.NUnit1.Tasks.NUnitTask::_timeout
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4.0 
+	IL_0017:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_failuresPresent
+	IL_001c:  ldarg.0 
+	IL_001d:  ldc.i4.0 
+	IL_001e:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_errorsPresent
+	IL_0023:  ldarg.0 
+	IL_0024:  newobj instance void class NAnt.NUnit1.Types.NUnitTestCollection::'.ctor'()
+	IL_0029:  stfld class NAnt.NUnit1.Types.NUnitTestCollection NAnt.NUnit1.Tasks.NUnitTask::_tests
+	IL_002e:  ldarg.0 
+	IL_002f:  newobj instance void class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection::'.ctor'()
+	IL_0034:  stfld class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection NAnt.NUnit1.Tasks.NUnitTask::_formatterElements
+	IL_0039:  ldarg.0 
+	IL_003a:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_003f:  ret 
+    } // end of method NUnitTask::.ctor
 
-    // method line 55
+    // method line 44
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_Writer ()  cil managed 
+           instance default bool get_HaltOnError ()  cil managed 
     {
-        // Method begins at RVA 0x26a4
+        // Method begins at RVA 0x2534
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.TextWriter	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.NUnit1.Types.XmlResultFormatter::_writer
+	IL_0002:  ldfld bool NAnt.NUnit1.Tasks.NUnitTask::_haltOnError
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlResultFormatter::get_Writer
+    } // end of method NUnitTask::get_HaltOnError
 
-    // method line 56
+    // method line 45
     .method public hidebysig specialname 
-           instance default void set_Writer (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+           instance default void set_HaltOnError (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x26bf
+        // Method begins at RVA 0x254f
 	// 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.NUnit1.Types.XmlResultFormatter::_writer
+	IL_0003:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_haltOnError
 	IL_0008:  ret 
-    } // end of method XmlResultFormatter::set_Writer
+    } // end of method NUnitTask::set_HaltOnError
 
-    // method line 57
-    .method public final virtual hidebysig newslot 
-           instance default void SetOutput (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 46
+    .method public hidebysig specialname 
+           instance default bool get_HaltOnFailure ()  cil managed 
+    {
+        // Method begins at RVA 0x255c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.NUnit1.Tasks.NUnitTask::_haltOnFailure
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnitTask::get_HaltOnFailure
+
+    // method line 47
+    .method public hidebysig specialname 
+           instance default void set_HaltOnFailure (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2577
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_haltOnFailure
+	IL_0008:  ret 
+    } // end of method NUnitTask::set_HaltOnFailure
+
+    // method line 48
+    .method public hidebysig specialname 
+           instance default int32 get_Timeout ()  cil managed 
     {
-        // Method begins at RVA 0x26c9
+        // Method begins at RVA 0x2584
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.NUnit1.Tasks.NUnitTask::_timeout
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnitTask::get_Timeout
+
+    // method line 49
+    .method public hidebysig specialname 
+           instance default void set_Timeout (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x259f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void(class [mscorlib]System.IO.TextWriter)
+	IL_0003:  stfld int32 NAnt.NUnit1.Tasks.NUnitTask::_timeout
 	IL_0008:  ret 
-    } // end of method XmlResultFormatter::SetOutput
+    } // end of method NUnitTask::set_Timeout
+
+    // method line 50
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit1.Types.NUnitTestCollection get_Tests ()  cil managed 
+    {
+        // Method begins at RVA 0x25ac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit1.Types.NUnitTestCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit1.Types.NUnitTestCollection NAnt.NUnit1.Tasks.NUnitTask::_tests
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnitTask::get_Tests
+
+    // method line 51
+    .method public hidebysig specialname 
+           instance default class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection get_FormatterElements ()  cil managed 
+    {
+        // Method begins at RVA 0x25c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection NAnt.NUnit1.Tasks.NUnitTask::_formatterElements
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnitTask::get_FormatterElements
+
+    // method line 52
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x25e4
+	// Code size 130 (0x82)
+	.maxstack 2
+	.locals init (
+		class NAnt.NUnit1.Types.NUnitTest	V_0,
+		class NAnt.NUnit1.Types.NUnitTestEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.NUnit1.Types.NUnitTestCollection NAnt.NUnit1.Tasks.NUnitTask::_tests
+	IL_0008:  callvirt instance class NAnt.NUnit1.Types.NUnitTestEnumerator class NAnt.NUnit1.Types.NUnitTestCollection::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_0023
+
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance class NAnt.NUnit1.Types.NUnitTest class NAnt.NUnit1.Types.NUnitTestEnumerator::get_Current()
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldarg.0 
+	  IL_001c:  ldloc.0 
+	  IL_001d:  call instance void class NAnt.NUnit1.Tasks.NUnitTask::ExecuteTest(class NAnt.NUnit1.Types.NUnitTest)
+	  IL_0022:  nop 
+	  IL_0023:  ldloc.1 
+	  IL_0024:  callvirt instance bool class NAnt.NUnit1.Types.NUnitTestEnumerator::MoveNext()
+	  IL_0029:  brtrue IL_0013
+
+	  IL_002e:  leave IL_0047
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0033:  ldloc.1 
+	  IL_0034:  isinst [mscorlib]System.IDisposable
+	  IL_0039:  dup 
+	  IL_003a:  stloc.2 
+	  IL_003b:  brfalse IL_0046
+
+	  IL_0040:  ldloc.2 
+	  IL_0041:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0046:  endfinally 
+	} // end handler 0
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld bool NAnt.NUnit1.Tasks.NUnitTask::_failuresPresent
+	IL_004d:  brfalse IL_0064
+
+	IL_0052:  nop 
+	IL_0053:  ldstr "Unit test failed, see build log."
+	IL_0058:  ldarg.0 
+	IL_0059:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_005e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0063:  throw 
+	IL_0064:  ldarg.0 
+	IL_0065:  ldfld bool NAnt.NUnit1.Tasks.NUnitTask::_errorsPresent
+	IL_006a:  brfalse IL_0081
+
+	IL_006f:  nop 
+	IL_0070:  ldstr "Unit test had errors, see build log."
+	IL_0075:  ldarg.0 
+	IL_0076:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_007b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0080:  throw 
+	IL_0081:  ret 
+    } // end of method NUnitTask::ExecuteTask
+
+    // method line 53
+    .method private hidebysig 
+           instance default void ExecuteTest (class NAnt.NUnit1.Types.NUnitTest test)  cil managed 
+    {
+        // Method begins at RVA 0x2684
+	// Code size 312 (0x138)
+	.maxstack 3
+	.locals init (
+		valuetype NAnt.NUnit1.Tasks.RunnerResult	V_0,
+		class NAnt.NUnit1.Types.NUnitTestData	V_1,
+		class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElement	V_2,
+		class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		bool	V_5,
+		bool	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  callvirt instance string class NAnt.NUnit1.Types.NUnitTest::get_ToDir()
+	IL_0009:  brtrue IL_0021
+
+	IL_000e:  nop 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldarg.0 
+	IL_0011:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_001b:  callvirt instance void class NAnt.NUnit1.Types.NUnitTest::set_ToDir(string)
+	IL_0020:  nop 
+	IL_0021:  ldarg.1 
+	IL_0022:  callvirt instance string class NAnt.NUnit1.Types.NUnitTest::get_OutFile()
+	IL_0027:  brtrue IL_0044
+
+	IL_002c:  nop 
+	IL_002d:  ldarg.1 
+	IL_002e:  ldstr "TEST-"
+	IL_0033:  ldarg.1 
+	IL_0034:  callvirt instance string class NAnt.NUnit1.Types.NUnitTest::get_Class()
+	IL_0039:  call string string::Concat(string, string)
+	IL_003e:  callvirt instance void class NAnt.NUnit1.Types.NUnitTest::set_OutFile(string)
+	IL_0043:  nop 
+	IL_0044:  ldarg.1 
+	IL_0045:  callvirt instance class NAnt.NUnit1.Types.NUnitTestData class NAnt.NUnit1.Types.NUnitTest::GetTestData()
+	IL_004a:  stloc.1 
+	IL_004b:  nop 
+	IL_004c:  ldarg.0 
+	IL_004d:  call instance class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection class NAnt.NUnit1.Tasks.NUnitTask::get_FormatterElements()
+	IL_0052:  callvirt instance class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementEnumerator class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection::GetEnumerator()
+	IL_0057:  stloc.3 
+	.try { // 0
+	  IL_0058:  br IL_0078
+
+	  IL_005d:  ldloc.3 
+	  IL_005e:  callvirt instance class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElement class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementEnumerator::get_Current()
+	  IL_0063:  stloc.2 
+	  IL_0064:  nop 
+	  IL_0065:  ldloc.1 
+	  IL_0066:  callvirt instance class [NAnt.NUnit]NAnt.NUnit.Types.FormatterDataCollection class NAnt.NUnit1.Types.NUnitTestData::get_Formatters()
+	  IL_006b:  ldloc.2 
+	  IL_006c:  callvirt instance class [NAnt.NUnit]NAnt.NUnit.Types.FormatterData class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElement::get_Data()
+	  IL_0071:  callvirt instance int32 class [NAnt.NUnit]NAnt.NUnit.Types.FormatterDataCollection::Add(class [NAnt.NUnit]NAnt.NUnit.Types.FormatterData)
+	  IL_0076:  pop 
+	  IL_0077:  nop 
+	  IL_0078:  ldloc.3 
+	  IL_0079:  callvirt instance bool class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementEnumerator::MoveNext()
+	  IL_007e:  brtrue IL_005d
+
+	  IL_0083:  leave IL_009e
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0088:  ldloc.3 
+	  IL_0089:  isinst [mscorlib]System.IDisposable
+	  IL_008e:  dup 
+	  IL_008f:  stloc.s 4
+	  IL_0091:  brfalse IL_009d
+
+	  IL_0096:  ldloc.s 4
+	  IL_0098:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009d:  endfinally 
+	} // end handler 0
+	IL_009e:  ldloc.1 
+	IL_009f:  callvirt instance bool class NAnt.NUnit1.Types.NUnitTestData::get_Fork()
+	IL_00a4:  brfalse IL_00b8
+
+	IL_00a9:  nop 
+	IL_00aa:  ldarg.0 
+	IL_00ab:  ldloc.1 
+	IL_00ac:  call instance valuetype NAnt.NUnit1.Tasks.RunnerResult class NAnt.NUnit1.Tasks.NUnitTask::ExecuteInAppDomain(class NAnt.NUnit1.Types.NUnitTestData)
+	IL_00b1:  stloc.0 
+	IL_00b2:  nop 
+	IL_00b3:  br IL_00c2
+
+	IL_00b8:  nop 
+	IL_00b9:  ldarg.0 
+	IL_00ba:  ldloc.1 
+	IL_00bb:  call instance valuetype NAnt.NUnit1.Tasks.RunnerResult class NAnt.NUnit1.Tasks.NUnitTask::ExecuteInProc(class NAnt.NUnit1.Types.NUnitTestData)
+	IL_00c0:  stloc.0 
+	IL_00c1:  nop 
+	IL_00c2:  ldloc.0 
+	IL_00c3:  ldc.i4.2 
+	IL_00c4:  ceq 
+	IL_00c6:  stloc.s 5
+	IL_00c8:  ldloc.0 
+	IL_00c9:  ldc.i4.0 
+	IL_00ca:  ceq 
+	IL_00cc:  ldc.i4.0 
+	IL_00cd:  ceq 
+	IL_00cf:  stloc.s 6
+	IL_00d1:  ldloc.s 5
+	IL_00d3:  brfalse IL_00e3
+
+	IL_00d8:  ldarg.1 
+	IL_00d9:  callvirt instance bool class NAnt.NUnit1.Types.NUnitTest::get_HaltOnError()
+	IL_00de:  brtrue IL_00f5
+
+	IL_00e3:  ldloc.s 6
+	IL_00e5:  brfalse IL_0117
+
+	IL_00ea:  ldarg.1 
+	IL_00eb:  callvirt instance bool class NAnt.NUnit1.Types.NUnitTest::get_HaltOnFailure()
+	IL_00f0:  brfalse IL_0117
+
+	IL_00f5:  nop 
+	IL_00f6:  ldstr "Test "
+	IL_00fb:  ldloc.1 
+	IL_00fc:  callvirt instance string class NAnt.NUnit1.Types.NUnitTestData::get_Class()
+	IL_0101:  ldstr " Failed"
+	IL_0106:  call string string::Concat(string, string, string)
+	IL_010b:  ldarg.0 
+	IL_010c:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_0111:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0116:  throw 
+	IL_0117:  ldloc.s 5
+	IL_0119:  brfalse IL_0127
+
+	IL_011e:  nop 
+	IL_011f:  ldarg.0 
+	IL_0120:  ldc.i4.1 
+	IL_0121:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_errorsPresent
+	IL_0126:  nop 
+	IL_0127:  ldloc.s 6
+	IL_0129:  brfalse IL_0137
+
+	IL_012e:  nop 
+	IL_012f:  ldarg.0 
+	IL_0130:  ldc.i4.1 
+	IL_0131:  stfld bool NAnt.NUnit1.Tasks.NUnitTask::_failuresPresent
+	IL_0136:  nop 
+	IL_0137:  ret 
+    } // end of method NUnitTask::ExecuteTest
+
+    // method line 54
+    .method private hidebysig 
+           instance default valuetype NAnt.NUnit1.Tasks.RunnerResult ExecuteInAppDomain (class NAnt.NUnit1.Types.NUnitTestData test)  cil managed 
+    {
+        // Method begins at RVA 0x27d8
+	// Code size 230 (0xe6)
+	.maxstack 10
+	.locals init (
+		class [mscorlib]System.AppDomainSetup	V_0,
+		class [mscorlib]System.Security.PermissionSet	V_1,
+		class [mscorlib]System.AppDomain	V_2,
+		class [mscorlib]System.Type	V_3,
+		class [mscorlib]System.Runtime.Remoting.ObjectHandle	V_4,
+		class NAnt.NUnit1.Tasks.RemoteNUnitTestRunner	V_5,
+		valuetype NAnt.NUnit1.Tasks.RunnerResult	V_6)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.AppDomainSetup::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_000d:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
+	IL_0012:  callvirt instance string class [mscorlib]System.AppDomainSetup::get_ApplicationBase()
+	IL_0017:  callvirt instance void class [mscorlib]System.AppDomainSetup::set_ApplicationBase(string)
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.0 
+	IL_001e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0023:  ldarg.1 
+	IL_0024:  callvirt instance string class NAnt.NUnit1.Types.NUnitTestData::get_AppConfigFile()
+	IL_0029:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
+	IL_002e:  callvirt instance void class [mscorlib]System.AppDomainSetup::set_ConfigurationFile(string)
+	IL_0033:  ldloc.0 
+	IL_0034:  ldstr "NAnt Remote Domain"
+	IL_0039:  callvirt instance void class [mscorlib]System.AppDomainSetup::set_ApplicationName(string)
+	IL_003e:  ldc.i4.1 
+	IL_003f:  newobj instance void class [mscorlib]System.Security.PermissionSet::'.ctor'(valuetype [mscorlib]System.Security.Permissions.PermissionState)
+	IL_0044:  stloc.1 
+	IL_0045:  ldloc.0 
+	IL_0046:  callvirt instance string class [mscorlib]System.AppDomainSetup::get_ApplicationName()
+	IL_004b:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0050:  callvirt instance class [mscorlib]System.Security.Policy.Evidence class [mscorlib]System.AppDomain::get_Evidence()
+	IL_0055:  ldloc.0 
+	IL_0056:  ldloc.1 
+	IL_0057:  call !!0[] class [mscorlib]System.Array::Empty<class [mscorlib]System.Security.Policy.StrongName> ()
+	IL_005c:  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_0061:  stloc.2 
+	IL_0062:  ldtoken NAnt.NUnit1.Tasks.RemoteNUnitTestRunner
+	IL_0067:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_006c:  stloc.3 
+	IL_006d:  ldloc.2 
+	IL_006e:  ldloc.3 
+	IL_006f:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
+	IL_0074:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_0079:  ldloc.3 
+	IL_007a:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_007f:  ldc.i4.0 
+	IL_0080:  ldc.i4.0 
+	IL_0081:  ldnull 
+	IL_0082:  ldc.i4.1 
+	IL_0083:  newarr [mscorlib]System.Object
+	IL_0088:  dup 
+	IL_0089:  ldc.i4.0 
+	IL_008a:  ldarg.1 
+	IL_008b:  stelem.ref 
+	IL_008c:  ldnull 
+	IL_008d:  ldnull 
+	IL_008e:  ldnull 
+	IL_008f:  callvirt instance class [mscorlib]System.Runtime.Remoting.ObjectHandle class [mscorlib]System.AppDomain::CreateInstance(string, string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[], class [mscorlib]System.Security.Policy.Evidence)
+	IL_0094:  stloc.s 4
+	IL_0096:  ldloc.s 4
+	IL_0098:  callvirt instance object class [mscorlib]System.Runtime.Remoting.ObjectHandle::Unwrap()
+	IL_009d:  castclass NAnt.NUnit1.Tasks.RemoteNUnitTestRunner
+	IL_00a2:  stloc.s 5
+	IL_00a4:  ldarg.0 
+	IL_00a5:  ldc.i4 3000
+	IL_00aa:  ldstr "Running '{0}'."
+	IL_00af:  ldc.i4.1 
+	IL_00b0:  newarr [mscorlib]System.Object
+	IL_00b5:  dup 
+	IL_00b6:  ldc.i4.0 
+	IL_00b7:  ldarg.1 
+	IL_00b8:  callvirt instance string class NAnt.NUnit1.Types.NUnitTestData::get_Class()
+	IL_00bd:  stelem.ref 
+	IL_00be:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00c3:  ldloc.s 5
+	IL_00c5:  ldsfld string [mscorlib]System.String::Empty
+	IL_00ca:  ldarg.0 
+	IL_00cb:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_00d0:  callvirt instance void class NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::Run(string, bool)
+	IL_00d5:  ldloc.s 5
+	IL_00d7:  callvirt instance valuetype NAnt.NUnit1.Tasks.RunnerResult class NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::get_ResultCode()
+	IL_00dc:  stloc.s 6
+	IL_00de:  br IL_00e3
+
+	IL_00e3:  ldloc.s 6
+	IL_00e5:  ret 
+    } // end of method NUnitTask::ExecuteInAppDomain
+
+    // method line 55
+    .method private hidebysig 
+           instance default valuetype NAnt.NUnit1.Tasks.RunnerResult ExecuteInProc (class NAnt.NUnit1.Types.NUnitTestData test)  cil managed 
+    {
+        // Method begins at RVA 0x28cc
+    } // end of method NUnitTask::ExecuteInProc
+
+	.property instance bool HaltOnError ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 68 61 6C 74 6F 6E 65 72 72 6F 72 00 00 ) // ...haltonerror..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.NUnit1.Tasks.NUnitTask::get_HaltOnError () 
+		.set instance default void NAnt.NUnit1.Tasks.NUnitTask::set_HaltOnError (bool 'value') 
+	}
+	.property instance bool HaltOnFailure ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 68 61 6C 74 6F 6E 66 61 69 6C 75 72 65   // ...haltonfailure
+		00 00                                           ) // ..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.NUnit1.Tasks.NUnitTask::get_HaltOnFailure () 
+		.set instance default void NAnt.NUnit1.Tasks.NUnitTask::set_HaltOnFailure (bool 'value') 
+	}
+	.property instance int32 Timeout ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 74 69 6D 65 6F 75 74 00 00 ) // ...timeout..
+
+		.get instance default int32 NAnt.NUnit1.Tasks.NUnitTask::get_Timeout () 
+		.set instance default void NAnt.NUnit1.Tasks.NUnitTask::set_Timeout (int32 'value') 
+	}
+	.property instance class NAnt.NUnit1.Types.NUnitTestCollection Tests ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 04 74 65 73 74 00 00 ) // ...test..
+
+		.get instance default class NAnt.NUnit1.Types.NUnitTestCollection NAnt.NUnit1.Tasks.NUnitTask::get_Tests () 
+	}
+	.property instance class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElementCollection FormatterElements ()
+	{
+		.custom instance void class [NAnt.Core]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.NUnit]NAnt.NUnit.Types.FormatterElementCollection NAnt.NUnit1.Tasks.NUnitTask::get_FormatterElements () 
+	}
+  } // end of class NAnt.NUnit1.Tasks.NUnitTask
+}
+
+.namespace NAnt.NUnit1.Types
+{
+  .class public auto ansi beforefieldinit LogFormatter
+  	extends [mscorlib]System.Object
+  	implements NAnt.NUnit1.Types.IResultFormatter, [NUnitCore]NUnit.Framework.ITestListener  {
+    .field  private  string _prefix
+    .field  private  bool _verbose
+
+    // method line 56
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string prefix, bool verbose)  cil managed 
+    {
+        // Method begins at RVA 0x2978
+	// Code size 48 (0x30)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brfalse IL_001b
+
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld string NAnt.NUnit1.Types.LogFormatter::_prefix
+	IL_0015:  nop 
+	IL_0016:  br IL_0028
+
+	IL_001b:  nop 
+	IL_001c:  ldarg.0 
+	IL_001d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0022:  stfld string NAnt.NUnit1.Types.LogFormatter::_prefix
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.2 
+	IL_002a:  stfld bool NAnt.NUnit1.Types.LogFormatter::_verbose
+	IL_002f:  ret 
+    } // end of method LogFormatter::.ctor
+
+    // method line 57
+    .method family hidebysig specialname 
+           instance default bool get_Verbose ()  cil managed 
+    {
+        // Method begins at RVA 0x29ac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.NUnit1.Types.LogFormatter::_verbose
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LogFormatter::get_Verbose
 
     // method line 58
+    .method family hidebysig specialname 
+           instance default string get_Prefix ()  cil managed 
+    {
+        // Method begins at RVA 0x29c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.NUnit1.Types.LogFormatter::_prefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LogFormatter::get_Prefix
+
+    // method line 59
+    .method public final virtual hidebysig newslot 
+           instance default void SetOutput (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x29e3
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method LogFormatter::SetOutput
+
+    // method line 60
     .method public final virtual hidebysig newslot 
            instance default void StartTestSuite (class NAnt.NUnit1.Types.NUnitTestData suite)  cil managed 
     {
-        // Method begins at RVA 0x26d4
-	// Code size 104 (0x68)
+        // Method begins at RVA 0x29e6
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool()
+	IL_0007:  brfalse IL_0023
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance string class NAnt.NUnit1.Types.LogFormatter::get_Prefix()
+	IL_0013:  ldstr "------------------------------------------"
+	IL_0018:  call string string::Concat(string, string)
+	IL_001d:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0022:  nop 
+	IL_0023:  ret 
+    } // end of method LogFormatter::StartTestSuite
+
+    // method line 61
+    .method public final virtual hidebysig newslot 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x2a0c
+	// Code size 142 (0x8e)
 	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlDeclaration	V_0,
-		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlDocument NAnt.NUnit1.Types.XmlResultFormatter::_document
-	IL_0007:  ldstr "1.0"
-	IL_000c:  ldnull 
-	IL_000d:  ldnull 
-	IL_000e:  callvirt instance class [System.Xml]System.Xml.XmlDeclaration class [System.Xml]System.Xml.XmlDocument::CreateXmlDeclaration(string, string, string)
-	IL_0013:  stloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class [System.Xml]System.Xml.XmlDocument NAnt.NUnit1.Types.XmlResultFormatter::_document
-	IL_001a:  ldloc.0 
-	IL_001b:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::AppendChild(class [System.Xml]System.Xml.XmlNode)
-	IL_0020:  pop 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldarg.0 
-	IL_0023:  ldfld class [System.Xml]System.Xml.XmlDocument NAnt.NUnit1.Types.XmlResultFormatter::_document
-	IL_0028:  ldstr "testsuite"
-	IL_002d:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::CreateElement(string)
-	IL_0032:  stfld class [System.Xml]System.Xml.XmlElement NAnt.NUnit1.Types.XmlResultFormatter::_suiteElement
-	IL_0037:  ldarg.1 
-	IL_0038:  callvirt Could not load signature of NAnt.NUnit1.Types.NUnitTestData:get_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_0002:  call instance bool class NAnt.NUnit1.Types.LogFormatter::get_Verbose()
+	IL_0007:  brfalse IL_0023
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance string class NAnt.NUnit1.Types.LogFormatter::get_Prefix()
+	IL_0013:  ldstr "------------------------------------------"
+	IL_0018:  call string string::Concat(string, string)
+	IL_001d:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0022:  nop 
+	IL_0023:  ldarg.1 
+	IL_0024:  callvirt instance bool [NUnitCore]NUnit.Framework.TestResult::get_WasSuccessful()
+	IL_0029:  brfalse IL_0055
+
+	IL_002e:  nop 
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance string class NAnt.NUnit1.Types.LogFormatter::get_Prefix()
+	IL_0035:  ldstr "{0} tests: ALL SUCCESSFUL"
+	IL_003a:  call string string::Concat(string, string)
+	IL_003f:  ldarg.1 
+	IL_0040:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_RunCount()
+	IL_0045:  box [mscorlib]System.Int32
+	IL_004a:  call void class [mscorlib]System.Console::WriteLine(string, object)
+	IL_004f:  nop 
+	IL_0050:  br IL_008d
+
+	IL_0055:  nop 
+	IL_0056:  ldarg.0 
+	IL_0057:  call instance string class NAnt.NUnit1.Types.LogFormatter::get_Prefix()
+	IL_005c:  ldstr "{0} tests: FAILURES: {1} ERRORS: {2}"
+	IL_0061:  call string string::Concat(string, string)
+	IL_0066:  ldarg.1 
+	IL_0067:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_RunCount()
+	IL_006c:  box [mscorlib]System.Int32
+	IL_0071:  ldarg.1 
+	IL_0072:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_FailureCount()
+	IL_0077:  box [mscorlib]System.Int32
+	IL_007c:  ldarg.1 
+	IL_007d:  callvirt instance int32 [NUnitCore]NUnit.Framework.TestResult::get_ErrorCount()
+	IL_0082:  box [mscorlib]System.Int32
+	IL_0087:  call void class [mscorlib]System.Console::WriteLine(string, object, object, object)
+	IL_008c:  nop 
+	IL_008d:  ret 
+    } // end of method LogFormatter::<NULL METHOD SIGNATURE>
+
+    // method line 62
+    .method public final virtual hidebysig newslot 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x2aa8
+	// Code size 75 (0x4b)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.NUnit1.Types.LogFormatter::get_Prefix()
+	IL_0007:  ldstr "ERROR: "
+	IL_000c:  ldarg.1 
+	IL_000d:  call Could not load signature of NAnt.NUnit1.Types.LogFormatter:GetTestSummary 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,88 +4,6 @@
         <name>NAnt.NUnit1Tasks</name>
     </assembly>
     <members>
-        <member name="M:NAnt.NUnit1.Types.IResultFormatter.StartTestSuite(NAnt.NUnit1.Types.NUnitTestData)">
-             <summary>
-             The whole test suite started.
-             </summary>
-            </member>
-        <member name="M:NAnt.NUnit1.Types.IResultFormatter.EndTestSuite(NAnt.NUnit1.Types.TestResultExtra)">
-             <summary>
-             The whole test suite ended.
-             </summary>
-            </member>
-        <member name="M:NAnt.NUnit1.Types.IResultFormatter.SetOutput(System.IO.TextWriter)">
-             <summary>
-             Sets the <see cref="T:System.IO.TextWriter" /> the formatter is supposed to write 
-             its results to.
-             </summary>
-            </member>
-        <member name="T:NAnt.NUnit1.Types.PlainTextFormatter">
-             <summary>
-             Prints information about running tests in plain text.
-             </summary>
-            </member>
-        <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.PlainTextFormatter.StartTestSuite(NAnt.NUnit1.Types.NUnitTestData)">
-             <summary>Called when the whole test suite has started.</summary>
-            </member>
-        <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.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.NUnitTest">
-             <summary>
-             Represents a test element of an <see cref="T:NAnt.NUnit1.Tasks.NUnitTask" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.OutFile">
-             <summary>
-             Base name of the test result. The full filename is determined by this 
-             attribute and the extension of formatter.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.ToDir">
-             <summary>
-             Directory to write the reports to.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.Class">
-             <summary>
-             Class name of the test.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.Assembly">
-             <summary>
-             Assembly to load the test from.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.Fork">
-             <summary>
-             Run the tests in a separate <see cref="T:System.AppDomain" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.HaltOnError">
-             <summary>
-             Stop the build process if an error occurs during the test run.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.HaltOnFailure">
-             <summary>
-             Stop the build process if a test fails (errors are considered failures 
-             as well).
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit1.Types.NUnitTest.AppConfigFile">
-             <summary>
-             The application configuration file to use for the NUnit test domain.
-             </summary>
-            </member>
         <member name="T:NAnt.NUnit1.Types.NUnitTestCollection">
              <summary>
              Contains a strongly typed collection of <see cref="T:NAnt.NUnit1.Types.NUnitTest" /> objects.
@@ -216,31 +134,134 @@
              first element in the collection.
              </summary>
             </member>
-        <member name="T:NAnt.NUnit1.Types.XmlResultFormatter">
+        <member name="T:NAnt.NUnit1.Types.IResultFormatterCollection">
              <summary>
-             Prints detailed information about running tests in XML format.
+             Contains a strongly typed collection of <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> objects.
              </summary>
             </member>
-        <member name="M:NAnt.NUnit1.Types.XmlResultFormatter.#ctor">
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.#ctor">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.XmlResultFormatter" />
-             class.
+             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> class.
              </summary>
             </member>
-        <member name="M:NAnt.NUnit1.Types.XmlResultFormatter.SetOutput(System.IO.TextWriter)">
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.#ctor(NAnt.NUnit1.Types.IResultFormatterCollection)">
              <summary>
-             Sets the <see cref="T:System.IO.TextWriter" /> the formatter is supposed to 
-             write its results to.
+             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.XmlResultFormatter.StartTestSuite(NAnt.NUnit1.Types.NUnitTestData)">
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.#ctor(NAnt.NUnit1.Types.IResultFormatter[])">
              <summary>
-             Called when the whole test suite has started.
+             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="M:NAnt.NUnit1.Types.XmlResultFormatter.EndTestSuite(NAnt.NUnit1.Types.TestResultExtra)">
+        <member name="P:NAnt.NUnit1.Types.IResultFormatterCollection.Item(System.Int32)">
              <summary>
-             Called when the whole test suite has ended.
+             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>
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)
@@ -3,11 +3,11 @@
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
-.assembly extern NAnt.NUnit
+.assembly extern NAnt.DotNetTasks
 {
   .ver 0:93:1:0
 }
-.assembly extern NAnt.DotNetTasks
+.assembly extern NAnt.NUnit
 {
   .ver 0:93:1:0
 }
@@ -15,6 +15,11 @@
 {
   .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 System.Xml
 {
   .ver 4:0:0:0
@@ -25,11 +30,6 @@
   .ver 2:6:0:12051
   .publickeytoken = (96 D0 9A 1E B7 F4 4A 77 ) // ......Jw
 }
-.assembly extern System
-{
-  .ver 4:0:0:0
-  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
-}
 .assembly extern nunit.util
 {
   .ver 2:6:0:12051
@@ -87,17 +87,252 @@
 
 .namespace NAnt.NUnit2.Types
 {
+  .class public auto ansi beforefieldinit Category
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _name
+    .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 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.NUnit2.Types.Category::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method Category::.ctor
+
+    // method line 2
+    .method public hidebysig specialname 
+           instance default string get_CategoryName ()  cil managed 
+    {
+        // Method begins at RVA 0x2060
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.NUnit2.Types.Category::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Category::get_CategoryName
+
+    // method line 3
+    .method public hidebysig specialname 
+           instance default void set_CategoryName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x207b
+	// 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.NUnit2.Types.Category::_name
+	IL_000d:  ret 
+    } // end of method Category::set_CategoryName
+
+    // method line 4
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x208c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.NUnit2.Types.Category::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Category::get_IfDefined
+
+    // method line 5
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool '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 bool NAnt.NUnit2.Types.Category::_ifDefined
+	IL_0008:  ret 
+    } // end of method Category::set_IfDefined
+
+    // method line 6
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  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.NUnit2.Types.Category::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Category::get_UnlessDefined
+
+    // method line 7
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (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.NUnit2.Types.Category::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Category::set_UnlessDefined
+
+	.property instance string CategoryName ()
+	{
+		.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.
+
+		.get instance default string NAnt.NUnit2.Types.Category::get_CategoryName () 
+		.set instance default void NAnt.NUnit2.Types.Category::set_CategoryName (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.NUnit2.Types.Category::get_IfDefined () 
+		.set instance default void NAnt.NUnit2.Types.Category::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.NUnit2.Types.Category::get_UnlessDefined () 
+		.set instance default void NAnt.NUnit2.Types.Category::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.NUnit2.Types.Category
+}
+
+.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>
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 1
+    // method line 11
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x212f
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -106,11 +341,11 @@
 	IL_0007:  ret 
     } // end of method CategoryCollection::.ctor
 
-    // method line 2
+    // method line 12
     .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 0x2059
+        // Method begins at RVA 0x2138
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -120,11 +355,11 @@
 	IL_0008:  ret 
     } // end of method CategoryCollection::.ctor
 
-    // method line 3
+    // method line 13
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit2.Types.CategoryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2063
+        // Method begins at RVA 0x2142
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -134,11 +369,11 @@
 	IL_0008:  ret 
     } // end of method CategoryCollection::.ctor
 
-    // method line 4
+    // method line 14
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit2.Types.Category[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x206d
+        // Method begins at RVA 0x214c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -150,11 +385,11 @@
 	IL_000e:  ret 
     } // end of method CategoryCollection::.ctor
 
-    // method line 5
+    // method line 15
     .method public virtual hidebysig 
            instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x2080
+        // Method begins at RVA 0x215c
 	// Code size 124 (0x7c)
 	.maxstack 2
 	.locals init (
@@ -219,11 +454,11 @@
 	IL_007b:  ret 
     } // end of method CategoryCollection::ToString
 
-    // method line 6
+    // method line 16
     .method public hidebysig specialname 
            instance default class NAnt.NUnit2.Types.Category get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2118
+        // Method begins at RVA 0x21f4
 	// Code size 94 (0x5e)
 	.maxstack 2
 	.locals init (
@@ -282,11 +517,11 @@
 	IL_005d:  ret 
     } // end of method CategoryCollection::get_Item
 
-    // method line 7
+    // method line 17
     .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 0x2194
+        // Method begins at RVA 0x2270
 	// Code size 60 (0x3c)
 	.maxstack 2
 	.locals init (
@@ -335,685 +570,418 @@
 
 .namespace NAnt.NUnit2.Types
 {
-  .class public auto ansi beforefieldinit Categories
-  	extends [NAnt.Core]NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit NUnit2Test
+  	extends [NAnt.Core]NAnt.Core.Element
   {
-    .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..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 04 74 65 73 74 00 00 ) // ...test..
 
-    .field  private  class NAnt.NUnit2.Types.CategoryCollection _includes
-    .field  private  class NAnt.NUnit2.Types.CategoryCollection _excludes
+    .field  private  class [mscorlib]System.IO.FileInfo _assemblyFile
+    .field  private  string _testname
+    .field  private  bool _haltOnFailure
+    .field  private  class [mscorlib]System.IO.FileInfo _xsltFile
+    .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _assemblies
+    .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _references
+    .field  private  class [mscorlib]System.IO.FileInfo _appConfigFile
+    .field  private  class NAnt.NUnit2.Types.Categories _categories
 
-    // method line 8
+    // method line 18
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x21ec
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x22c8
+	// Code size 47 (0x2f)
 	.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
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.NUnit2.Types.NUnit2Test::_haltOnFailure
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_000d:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_assemblies
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_0018:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_references
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class NAnt.NUnit2.Types.Categories::'.ctor'()
+	IL_0023:  stfld class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::_categories
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_002e:  ret 
+    } // end of method NUnit2Test::.ctor
 
-    // method line 9
+    // method line 19
     .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.CategoryCollection get_Includes ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
     {
-        // Method begins at RVA 0x220c
+        // Method begins at RVA 0x22f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.NUnit2.Types.CategoryCollection	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_includes
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_assemblyFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Categories::get_Includes
+    } // end of method NUnit2Test::get_AssemblyFile
 
-    // method line 10
+    // method line 20
     .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.CategoryCollection get_Excludes ()  cil managed 
+           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2228
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.NUnit2.Types.CategoryCollection	V_0)
+        // Method begins at RVA 0x2313
+	// Code size 9 (0x9)
+	.maxstack 8
 	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
-  {
-    .field  private  string _name
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-
-    // method line 11
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2243
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.NUnit2.Types.Category::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method Category::.ctor
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_assemblyFile
+	IL_0008:  ret 
+    } // end of method NUnit2Test::set_AssemblyFile
 
-    // method line 12
+    // method line 21
     .method public hidebysig specialname 
-           instance default string get_CategoryName ()  cil managed 
+           instance default string get_TestName ()  cil managed 
     {
-        // Method begins at RVA 0x2254
+        // Method begins at RVA 0x2320
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.NUnit2.Types.Category::_name
+	IL_0002:  ldfld string NAnt.NUnit2.Types.NUnit2Test::_testname
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Category::get_CategoryName
+    } // end of method NUnit2Test::get_TestName
 
-    // method line 13
+    // method line 22
     .method public hidebysig specialname 
-           instance default void set_CategoryName (string 'value')  cil managed 
+           instance default void set_TestName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x226f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x233b
+	// 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.NUnit2.Types.Category::_name
-	IL_000d:  ret 
-    } // end of method Category::set_CategoryName
+	IL_0003:  stfld string NAnt.NUnit2.Types.NUnit2Test::_testname
+	IL_0008:  ret 
+    } // end of method NUnit2Test::set_TestName
 
-    // method line 14
+    // method line 23
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x2280
+        // Method begins at RVA 0x2348
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit2.Types.Category::_ifDefined
+	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_assemblies
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Category::get_IfDefined
+    } // end of method NUnit2Test::get_Assemblies
 
-    // method line 15
+    // method line 24
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x229b
+        // Method begins at RVA 0x2363
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit2.Types.Category::_ifDefined
+	IL_0003:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_assemblies
 	IL_0008:  ret 
-    } // end of method Category::set_IfDefined
+    } // end of method NUnit2Test::set_Assemblies
 
-    // method line 16
+    // method line 25
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x22a8
+        // Method begins at RVA 0x2370
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit2.Types.Category::_unlessDefined
+	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_references
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Category::get_UnlessDefined
+    } // end of method NUnit2Test::get_References
 
-    // method line 17
+    // method line 26
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+           instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x22c3
+        // Method begins at RVA 0x238b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit2.Types.Category::_unlessDefined
+	IL_0003:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_references
 	IL_0008:  ret 
-    } // end of method Category::set_UnlessDefined
-
-	.property instance string CategoryName ()
-	{
-		.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.
-
-		.get instance default string NAnt.NUnit2.Types.Category::get_CategoryName () 
-		.set instance default void NAnt.NUnit2.Types.Category::set_CategoryName (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.NUnit2.Types.Category::get_IfDefined () 
-		.set instance default void NAnt.NUnit2.Types.Category::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.NUnit2.Types.Category::get_UnlessDefined () 
-		.set instance default void NAnt.NUnit2.Types.Category::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.NUnit2.Types.Category
-}
-
-.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 0x22cd
-	// 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 0x22d6
-	// 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 0x22e6
-	// 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
+    } // end of method NUnit2Test::set_References
 
-    // method line 21
+    // method line 27
     .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.NUnit2Test get_Item (int32 index)  cil managed 
+           instance default class NAnt.NUnit2.Types.Categories get_Categories ()  cil managed 
     {
-        // Method begins at RVA 0x22f8
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x2398
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.NUnit2.Types.NUnit2Test	V_0)
+		class NAnt.NUnit2.Types.Categories	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_0002:  ldfld class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::_categories
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method NUnit2TestCollection::get_Item
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnit2Test::get_Categories
 
-    // method line 22
+    // method line 28
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.NUnit2.Types.NUnit2Test 'value')  cil managed 
+           instance default void set_Categories (class NAnt.NUnit2.Types.Categories 'value')  cil managed 
     {
-        // Method begins at RVA 0x231e
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x23b3
+	// 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 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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::_categories
+	IL_0008:  ret 
+    } // end of method NUnit2Test::set_Categories
 
-    // method line 26
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    // method line 29
+    .method public hidebysig specialname 
+           instance default bool get_HaltOnFailure ()  cil managed 
     {
-        // Method begins at RVA 0x23bc
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x23c0
+	// 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.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
+	IL_0002:  ldfld bool NAnt.NUnit2.Types.NUnit2Test::_haltOnFailure
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // 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_000d:  ldloc.0 
 	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
+    } // end of method NUnit2Test::get_HaltOnFailure
 
-    // method line 29
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    // method line 30
+    .method public hidebysig specialname 
+           instance default void set_HaltOnFailure (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2411
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x23db
+	// 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 NUnit2TestCollection::Insert
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.NUnit2.Types.NUnit2Test::_haltOnFailure
+	IL_0008:  ret 
+    } // end of method NUnit2Test::set_HaltOnFailure
 
-    // method line 30
-    .method public hidebysig 
-           instance default class NAnt.NUnit2.Types.NUnit2TestEnumerator GetEnumerator ()  cil managed 
+    // method line 31
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_XsltFile ()  cil managed 
     {
-        // Method begins at RVA 0x2424
+        // Method begins at RVA 0x23e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.NUnit2.Types.NUnit2TestEnumerator	V_0)
+		class [mscorlib]System.IO.FileInfo	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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_xsltFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::GetEnumerator
+    } // end of method NUnit2Test::get_XsltFile
 
-    // method line 31
-    .method public hidebysig 
-           instance default void Remove (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    // method line 32
+    .method public hidebysig specialname 
+           instance default void set_XsltFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x243f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2403
+	// 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 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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_xsltFile
+	IL_0008:  ret 
+    } // end of method NUnit2Test::set_XsltFile
 
     // method line 33
     .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.NUnit2Test get_Current ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_AppConfigFile ()  cil managed 
     {
-        // Method begins at RVA 0x2474
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x2410
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.NUnit2.Types.NUnit2Test	V_0)
+		class [mscorlib]System.IO.FileInfo	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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_appConfigFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NUnit2TestEnumerator::get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnit2Test::get_AppConfigFile
 
     // method line 34
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    .method public hidebysig specialname 
+           instance default void set_AppConfigFile (class [mscorlib]System.IO.FileInfo 'value')  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)
+        // Method begins at RVA 0x242b
+	// Code size 9 (0x9)
+	.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 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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_appConfigFile
+	IL_0008:  ret 
+    } // end of method NUnit2Test::set_AppConfigFile
 
     // method line 35
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_TestAssemblies ()  cil managed 
     {
-        // Method begins at RVA 0x24bc
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x2438
+	// Code size 66 (0x42)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1)
 	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_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.NUnit2.Types.NUnit2Test::get_AssemblyFile()
+	IL_000d:  brfalse IL_002b
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method NUnit2TestEnumerator::MoveNext
+	IL_0012:  nop 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.NUnit2.Types.NUnit2Test::get_AssemblyFile()
+	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:  nop 
+	IL_0026:  br IL_0039
 
-    // 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_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.NUnit2.Types.NUnit2Test::get_Assemblies()
+	IL_0032:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0037:  stloc.0 
+	IL_0038:  nop 
+	IL_0039:  ldloc.0 
+	IL_003a:  stloc.1 
+	IL_003b:  br IL_0040
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0040:  ldloc.1 
+	IL_0041:  ret 
+    } // end of method NUnit2Test::get_TestAssemblies
 
-    // 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
+	.property instance class [mscorlib]System.IO.FileInfo AssemblyFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 61 73 73 65 6D 62 6C 79 6E 61 6D 65 00   // ...assemblyname.
+		00                                              ) // .
 
-    // 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
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::get_AssemblyFile () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string TestName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 74 65 73 74 6E 61 6D 65 00 00 ) // ...testname..
 
-	.property instance object System.Collections.IEnumerator.Current ()
+		.get instance default string NAnt.NUnit2.Types.NUnit2Test::get_TestName () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_TestName (string 'value') 
+	}
+	.property instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet Assemblies ()
 	{
-		.get instance default object NAnt.NUnit2.Types.NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current () 
+		.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 00 00 ) // ...assemblies..
+
+		.get instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::get_Assemblies () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value') 
 	}
-	.property instance class NAnt.NUnit2.Types.NUnit2Test Current ()
+	.property instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet References ()
 	{
-		.get instance default class NAnt.NUnit2.Types.NUnit2Test NAnt.NUnit2.Types.NUnit2TestEnumerator::get_Current () 
+		.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.NUnit2.Types.NUnit2Test::get_References () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value') 
 	}
-  } // end of class NAnt.NUnit2.Types.NUnit2TestEnumerator
+	.property instance class NAnt.NUnit2.Types.Categories Categories ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 63 61 74 65 67 6F 72 69 65 73 00 00 ) // ...categories..
+
+		.get instance default class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::get_Categories () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_Categories (class NAnt.NUnit2.Types.Categories 'value') 
+	}
+	.property instance bool HaltOnFailure ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 68 61 6C 74 6F 6E 66 61 69 6C 75 72 65   // ...haltonfailure
+		00 00                                           ) // ..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.NUnit2.Types.NUnit2Test::get_HaltOnFailure () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_HaltOnFailure (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo XsltFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 74 72 61 6E 73 66 6F 72 6D 66 69 6C 65   // ...transformfile
+		00 00                                           ) // ..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::get_XsltFile () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_XsltFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo AppConfigFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 61 70 70 63 6F 6E 66 69 67 00 00 ) // ...appconfig..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::get_AppConfigFile () 
+		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_AppConfigFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection TestAssemblies ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.NUnit2.Types.NUnit2Test::get_TestAssemblies () 
+	}
+  } // end of class NAnt.NUnit2.Types.NUnit2Test
 }
 
 .namespace NAnt.NUnit2.Tasks
@@ -1028,11 +996,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 36
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2518
+        // Method begins at RVA 0x2486
 	// Code size 43 (0x2b)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1052,11 +1020,11 @@
 	IL_002a:  ret 
     } // end of method NUnit2Task::.ctor
 
-    // method line 40
+    // method line 37
     .method public hidebysig specialname 
            instance default bool get_HaltOnFailure ()  cil managed 
     {
-        // Method begins at RVA 0x2544
+        // Method begins at RVA 0x24b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1071,11 +1039,11 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_HaltOnFailure
 
-    // method line 41
+    // method line 38
     .method public hidebysig specialname 
            instance default void set_HaltOnFailure (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x255f
+        // Method begins at RVA 0x24cf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1085,11 +1053,11 @@
 	IL_0008:  ret 
     } // end of method NUnit2Task::set_HaltOnFailure
 
-    // method line 42
+    // method line 39
     .method public hidebysig specialname 
            instance default bool get_Labels ()  cil managed 
     {
-        // Method begins at RVA 0x256c
+        // Method begins at RVA 0x24dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1104,11 +1072,11 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_Labels
 
-    // method line 43
+    // method line 40
     .method public hidebysig specialname 
            instance default void set_Labels (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2587
+        // Method begins at RVA 0x24f7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1118,11 +1086,11 @@
 	IL_0008:  ret 
     } // end of method NUnit2Task::set_Labels
 
-    // method line 44
+    // method line 41
     .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 0x2504
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1137,11 +1105,11 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_Tests
 
-    // method line 45
+    // method line 42
     .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 0x2520
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1156,39 +1124,39 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_FormatterElements
 
-    // method line 46
+    // method line 43
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x25cc
+        // Method begins at RVA 0x253c
     } // end of method NUnit2Task::ExecuteTask
 
-    // method line 47
+    // method line 44
     .method family virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2980
+        // Method begins at RVA 0x28f0
     } // end of method NUnit2Task::<NULL METHOD SIGNATURE>
 
-    // method line 48
+    // method line 45
     .method private hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x29a4
+        // Method begins at RVA 0x2914
     } // end of method NUnit2Task::<NULL METHOD SIGNATURE>
 
-    // method line 49
+    // method line 46
     .method private hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2a3c
+        // Method begins at RVA 0x29ac
     } // end of method NUnit2Task::<NULL METHOD SIGNATURE>
 
-    // method line 50
+    // method line 47
     .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 0x2c20
 	// Code size 39 (0x27)
 	.maxstack 4
 	.locals init (
@@ -1216,11 +1184,11 @@
 	IL_0026:  ret 
     } // end of method NUnit2Task::CreateSummaryDocument
 
-    // method line 51
+    // method line 48
     .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 0x2c54
 	// Code size 166 (0xa6)
 	.maxstack 3
 	.locals init (
@@ -1327,11 +1295,11 @@
     .field  private  string currentTestName
     .field  private  bool _printLabel
 
-    // method line 52
+    // method line 49
     .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 0x2d06
 	// Code size 11 (0xb)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1343,11 +1311,11 @@
 	IL_000a:  ret 
     } // end of method EventCollector::.ctor
 
-    // method line 53
+    // method line 50
     .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 0x2d12
 	// Code size 40 (0x28)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1368,44 +1336,44 @@
 	IL_0027:  ret 
     } // end of method EventCollector::.ctor
 
-    // method line 54
+    // method line 51
     .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 0x2d3b
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::RunStarted
 
-    // method line 55
+    // method line 52
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2dce
+        // Method begins at RVA 0x2d3e
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 56
+    // method line 53
     .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 0x2d41
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::RunFinished
 
-    // method line 57
+    // method line 54
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2dd4
+        // Method begins at RVA 0x2d44
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1415,11 +1383,11 @@
 	IL_000c:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 58
+    // method line 55
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2de2
+        // Method begins at RVA 0x2d52
 	// Code size 49 (0x31)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1442,33 +1410,33 @@
 	IL_0030:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 59
+    // method line 56
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2e14
+        // Method begins at RVA 0x2d84
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 60
+    // method line 57
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2e17
+        // Method begins at RVA 0x2d87
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 61
+    // method line 58
     .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 0x2d8c
 	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
@@ -1491,18 +1459,18 @@
 	IL_002f:  ret 
     } // end of method EventCollector::UnhandledException
 
-    // method line 62
+    // method line 59
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2e58
+        // Method begins at RVA 0x2dc8
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 63
+    // method line 60
     .method public virtual hidebysig 
            instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0x2eac
+        // Method begins at RVA 0x2e1c
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -1523,418 +1491,450 @@
 
 .namespace NAnt.NUnit2.Types
 {
-  .class public auto ansi beforefieldinit NUnit2Test
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class public auto ansi serializable beforefieldinit NUnit2TestCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 04 74 65 73 74 00 00 ) // ...test..
+    .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 _assemblyFile
-    .field  private  string _testname
-    .field  private  bool _haltOnFailure
-    .field  private  class [mscorlib]System.IO.FileInfo _xsltFile
-    .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _assemblies
-    .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _references
-    .field  private  class [mscorlib]System.IO.FileInfo _appConfigFile
-    .field  private  class NAnt.NUnit2.Types.Categories _categories
 
-    // method line 64
+    // method line 61
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ec2
-	// Code size 47 (0x2f)
+        // Method begins at RVA 0x2e32
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.NUnit2.Types.NUnit2Test::_haltOnFailure
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method NUnit2TestCollection::.ctor
+
+    // method line 62
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2TestCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2e3b
+	// 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:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_000d:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_assemblies
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_0018:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_references
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class NAnt.NUnit2.Types.Categories::'.ctor'()
-	IL_0023:  stfld class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::_categories
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_002e:  ret 
-    } // end of method NUnit2Test::.ctor
+	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 65
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
+    // method line 63
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2Test[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ef4
+        // Method begins at RVA 0x2e4b
 	// 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.NUnit2.Types.NUnit2TestCollection::AddRange(class NAnt.NUnit2.Types.NUnit2Test[])
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::.ctor
+
+    // method line 64
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit2.Types.NUnit2Test get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x2e5c
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.NUnit2.Types.NUnit2Test	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_assemblyFile
-	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.NUnit2.Types.NUnit2Test
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnit2Test::get_AssemblyFile
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method NUnit2TestCollection::get_Item
 
-    // method line 66
+    // method line 65
     .method public hidebysig specialname 
-           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.NUnit2.Types.NUnit2Test 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f0f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2e82
+	// 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.NUnit2.Types.NUnit2Test::_assemblyFile
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_AssemblyFile
+	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 67
-    .method public hidebysig specialname 
-           instance default string get_TestName ()  cil managed 
+    // method line 66
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
     {
-        // Method begins at RVA 0x2f1c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2e94
+	// 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.NUnit2.Types.NUnit2Test::_testname
-	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_000e:  ret 
-    } // end of method NUnit2Test::get_TestName
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnit2TestCollection::Add
+
+    // method line 67
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit2.Types.NUnit2Test[] items)  cil managed 
+    {
+        // Method begins at RVA 0x2eb8
+	// 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 68
-    .method public hidebysig specialname 
-           instance default void set_TestName (string 'value')  cil managed 
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit2.Types.NUnit2TestCollection items)  cil managed 
     {
-        // Method begins at RVA 0x2f37
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x2ee8
+	// 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 string NAnt.NUnit2.Types.NUnit2Test::_testname
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_TestName
+	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 69
-    .method public hidebysig specialname 
-           instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
     {
-        // Method begins at RVA 0x2f44
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2f20
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_assemblies
-	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 NUnit2Test::get_Assemblies
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnit2TestCollection::Contains
 
     // method line 70
-    .method public hidebysig specialname 
-           instance default void set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.NUnit2.Types.NUnit2Test[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2f5f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2f41
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_assemblies
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_Assemblies
+	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 71
-    .method public hidebysig specialname 
-           instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
     {
-        // Method begins at RVA 0x2f6c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2f54
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_references
-	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 NUnit2Test::get_References
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnit2TestCollection::IndexOf
 
     // method line 72
-    .method public hidebysig specialname 
-           instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
     {
-        // Method begins at RVA 0x2f87
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2f75
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::_references
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_References
+	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 73
-    .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.Categories get_Categories ()  cil managed 
+    .method public hidebysig 
+           instance default class NAnt.NUnit2.Types.NUnit2TestEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2f94
+        // Method begins at RVA 0x2f88
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.NUnit2.Types.Categories	V_0)
+		class NAnt.NUnit2.Types.NUnit2TestEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::_categories
+	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 NUnit2Test::get_Categories
+    } // end of method NUnit2TestCollection::GetEnumerator
 
     // method line 74
-    .method public hidebysig specialname 
-           instance default void set_Categories (class NAnt.NUnit2.Types.Categories 'value')  cil managed 
+    .method public hidebysig 
+           instance default void Remove (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
     {
-        // Method begins at RVA 0x2faf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2fa3
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::_categories
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_Categories
+	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 75
-    .method public hidebysig specialname 
-           instance default bool get_HaltOnFailure ()  cil managed 
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2TestCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2fbc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2fb4
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.NUnit2.Types.NUnit2Test::_haltOnFailure
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnit2Test::get_HaltOnFailure
+		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 76
     .method public hidebysig specialname 
-           instance default void set_HaltOnFailure (bool 'value')  cil managed 
+           instance default class NAnt.NUnit2.Types.NUnit2Test get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2fd7
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x2fd8
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit2.Types.NUnit2Test	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.NUnit2.Types.NUnit2Test::_haltOnFailure
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_HaltOnFailure
+	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 77
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_XsltFile ()  cil managed 
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2fe4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3000
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
 	.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.NUnit2.Types.NUnit2Test::_xsltFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnit2Test::get_XsltFile
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current
 
     // method line 78
-    .method public hidebysig specialname 
-           instance default void set_XsltFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2fff
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x3020
+	// Code size 20 (0x14)
+	.maxstack 1
+	.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.NUnit2.Types.NUnit2Test::_xsltFile
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_XsltFile
+	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 79
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AppConfigFile ()  cil managed 
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x300c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3040
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.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.NUnit2.Types.NUnit2Test::_appConfigFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnit2Test::get_AppConfigFile
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.MoveNext
 
     // method line 80
-    .method public hidebysig specialname 
-           instance default void set_AppConfigFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3027
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x3060
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::_appConfigFile
-	IL_0008:  ret 
-    } // end of method NUnit2Test::set_AppConfigFile
+	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 81
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_TestAssemblies ()  cil managed 
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3034
-	// Code size 66 (0x42)
-	.maxstack 2
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1)
+        // Method begins at RVA 0x306e
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
 	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.NUnit2.Types.NUnit2Test::get_AssemblyFile()
-	IL_000d:  brfalse IL_002b
-
-	IL_0012:  nop 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.NUnit2.Types.NUnit2Test::get_AssemblyFile()
-	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:  nop 
-	IL_0026:  br IL_0039
-
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.NUnit2.Types.NUnit2Test::get_Assemblies()
-	IL_0032:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0037:  stloc.0 
-	IL_0038:  nop 
-	IL_0039:  ldloc.0 
-	IL_003a:  stloc.1 
-	IL_003b:  br IL_0040
-
-	IL_0040:  ldloc.1 
-	IL_0041:  ret 
-    } // end of method NUnit2Test::get_TestAssemblies
-
-	.property instance class [mscorlib]System.IO.FileInfo AssemblyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 61 73 73 65 6D 62 6C 79 6E 61 6D 65 00   // ...assemblyname.
-		00                                              ) // .
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::get_AssemblyFile () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string TestName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 74 65 73 74 6E 61 6D 65 00 00 ) // ...testname..
-
-		.get instance default string NAnt.NUnit2.Types.NUnit2Test::get_TestName () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_TestName (string 'value') 
-	}
-	.property instance class [NAnt.DotNetTasks]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 00 00 ) // ...assemblies..
-
-		.get instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.NUnit2.Types.NUnit2Test::get_Assemblies () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet '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.NUnit2.Types.NUnit2Test::get_References () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-	.property instance class NAnt.NUnit2.Types.Categories Categories ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 63 61 74 65 67 6F 72 69 65 73 00 00 ) // ...categories..
-
-		.get instance default class NAnt.NUnit2.Types.Categories NAnt.NUnit2.Types.NUnit2Test::get_Categories () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_Categories (class NAnt.NUnit2.Types.Categories 'value') 
-	}
-	.property instance bool HaltOnFailure ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 68 61 6C 74 6F 6E 66 61 69 6C 75 72 65   // ...haltonfailure
-		00 00                                           ) // ..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.NUnit2.Types.NUnit2Test::get_HaltOnFailure () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_HaltOnFailure (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo XsltFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 74 72 61 6E 73 66 6F 72 6D 66 69 6C 65   // ...transformfile
-		00 00                                           ) // ..
+	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
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::get_XsltFile () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_XsltFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo AppConfigFile ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 61 70 70 63 6F 6E 66 69 67 00 00 ) // ...appconfig..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.NUnit2.Types.NUnit2Test::get_AppConfigFile () 
-		.set instance default void NAnt.NUnit2.Types.NUnit2Test::set_AppConfigFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default object NAnt.NUnit2.Types.NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class [System]System.Collections.Specialized.StringCollection TestAssemblies ()
+	.property instance class NAnt.NUnit2.Types.NUnit2Test Current ()
 	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.NUnit2.Types.NUnit2Test::get_TestAssemblies () 
+		.get instance default class NAnt.NUnit2.Types.NUnit2Test NAnt.NUnit2.Types.NUnit2TestEnumerator::get_Current () 
 	}
-  } // end of class NAnt.NUnit2.Types.NUnit2Test
+  } // end of class NAnt.NUnit2.Types.NUnit2TestEnumerator
 }
 
 .namespace NAnt.NUnit2.Tasks
@@ -1948,7 +1948,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3082
+        // Method begins at RVA 0x307c
 	// 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 0x3088
     } // 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 0x3198
 	// 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 0x31f4
 	// 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 0x327c
     } // 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 0x32cc
 	// 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 0x3328
 	// 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 0x3500
 	// 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 0x3584
 	// 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,68 +4,27 @@
         <name>NAnt.NUnit2Tasks</name>
     </assembly>
     <members>
-        <member name="T:NAnt.NUnit2.Types.CategoryCollection">
-             <summary>
-             Contains a collection of <see cref="T:NAnt.NUnit2.Types.Category" /> elements.
-             </summary>
-            </member>
-        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor">
-             <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class.
-             </summary>
-            </member>
-        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor(System.Collections.Generic.IList{NAnt.NUnit2.Types.Category})">
-             <summary>
-             Initializes a new instance of the
-             <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class as a wrapper for
-             the specified list.
-             </summary>
-             <param name="value">
-             The list that is wrapped by the newly created instance.
-             </param>
-            </member>
-        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor(NAnt.NUnit2.Types.CategoryCollection)">
-             <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class
-             with the specified <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> instance.
-             </summary>
-             <param name="value">
-             The collection to use to initialize the new instance with.
-             </param>
-            </member>
-        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor(NAnt.NUnit2.Types.Category[])">
+        <member name="T:NAnt.NUnit2.Types.Category">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class
-             with the specified array of <see cref="T:NAnt.NUnit2.Types.Category" /> instances.
+             Represents a certain group of test cases or fixtures.
              </summary>
-             <param name="value">
-             The collection to use to initialize the new instance with.
-             </param>
             </member>
-        <member name="M:NAnt.NUnit2.Types.CategoryCollection.ToString">
+        <member name="P:NAnt.NUnit2.Types.Category.CategoryName">
              <summary>
-             Returns a comma-delimited list of categories.
+             A name of a category, or comma-separated list of names.
              </summary>
-             <returns>
-             A comma-delimited list of categories, or an empty 
-             <see cref="T:System.String" /> if there are no categories.
-             </returns>
             </member>
-        <member name="P:NAnt.NUnit2.Types.CategoryCollection.Item(System.String)">
+        <member name="P:NAnt.NUnit2.Types.Category.IfDefined">
              <summary>
-             Gets the <see cref="T:NAnt.NUnit2.Types.Category" /> with the specified name.
+             If <see langword="true" /> then the category will be processed;
+             otherwise, skipped. The default is <see langword="true" />.
              </summary>
-             <param name="value">The name of the <see cref="T:NAnt.NUnit2.Types.Category" /> to get.</param>
             </member>
-        <member name="M:NAnt.NUnit2.Types.CategoryCollection.AddRange(System.Collections.Generic.IEnumerable{NAnt.NUnit2.Types.Category})">
+        <member name="P:NAnt.NUnit2.Types.Category.UnlessDefined">
              <summary>
-             Adds the elements of a <see cref="T:NAnt.NUnit2.Types.Category" /> array to the end of the
-             collection.
+             If <see langword="true" /> then the category will be skipped;
+             otherwise, processed. The default is <see langword="false" />.
              </summary>
-             <param name="items">
-             The array of <see cref="T:NAnt.NUnit2.Types.Category" /> elements to be added to the end of
-             the collection.
-             </param>
             </member>
         <member name="T:NAnt.NUnit2.Types.Categories">
              <summary>
@@ -106,158 +65,126 @@
              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.NUnit2TestCollection">
+        <member name="T:NAnt.NUnit2.Types.CategoryCollection">
              <summary>
-             Contains a strongly typed collection of <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> objects.
+             Contains a collection of <see cref="T:NAnt.NUnit2.Types.Category" /> elements.
              </summary>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.#ctor">
+        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.NUnit2TestCollection" /> class.
+             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class.
              </summary>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.#ctor(NAnt.NUnit2.Types.NUnit2TestCollection)">
+        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor(System.Collections.Generic.IList{NAnt.NUnit2.Types.Category})">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.NUnit2TestCollection" /> class
-             with the specified <see cref="T:NAnt.NUnit2.Types.NUnit2TestCollection" /> instance.
+             Initializes a new instance of the
+             <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class as a wrapper for
+             the specified list.
              </summary>
+             <param name="value">
+             The list that is wrapped by the newly created instance.
+             </param>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.#ctor(NAnt.NUnit2.Types.NUnit2Test[])">
+        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor(NAnt.NUnit2.Types.CategoryCollection)">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.NUnit2TestCollection" /> class
-             with the specified array of <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> instances.
+             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class
+             with the specified <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> instance.
              </summary>
+             <param name="value">
+             The collection to use to initialize the new instance with.
+             </param>
             </member>
-        <member name="P:NAnt.NUnit2.Types.NUnit2TestCollection.Item(System.Int32)">
+        <member name="M:NAnt.NUnit2.Types.CategoryCollection.#ctor(NAnt.NUnit2.Types.Category[])">
              <summary>
-             Gets or sets the element at the specified index.
+             Initializes a new instance of the <see cref="T:NAnt.NUnit2.Types.CategoryCollection" /> class
+             with the specified array of <see cref="T:NAnt.NUnit2.Types.Category" /> instances.
              </summary>
-             <param name="index">The zero-based index of the element to get or set.</param>
+             <param name="value">
+             The collection to use to initialize the new instance with.
+             </param>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.Add(NAnt.NUnit2.Types.NUnit2Test)">
+        <member name="M:NAnt.NUnit2.Types.CategoryCollection.ToString">
              <summary>
-             Adds a <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> to the end of the collection.
+             Returns a comma-delimited list of categories.
              </summary>
-             <param name="item">The <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> to be added to the end of the collection.</param> 
-             <returns>The position into which the new element was inserted.</returns>
+             <returns>
+             A comma-delimited list of categories, or an empty 
+             <see cref="T:System.String" /> if there are no categories.
+             </returns>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.AddRange(NAnt.NUnit2.Types.NUnit2Test[])">
+        <member name="P:NAnt.NUnit2.Types.CategoryCollection.Item(System.String)">
              <summary>
-             Adds the elements of a <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> array to the end of the collection.
+             Gets the <see cref="T:NAnt.NUnit2.Types.Category" /> with the specified name.
              </summary>
-             <param name="items">The array of <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> elements to be added to the end of the collection.</param> 
+             <param name="value">The name of the <see cref="T:NAnt.NUnit2.Types.Category" /> to get.</param>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.AddRange(NAnt.NUnit2.Types.NUnit2TestCollection)">
+        <member name="M:NAnt.NUnit2.Types.CategoryCollection.AddRange(System.Collections.Generic.IEnumerable{NAnt.NUnit2.Types.Category})">
              <summary>
-             Adds the elements of a <see cref="T:NAnt.NUnit2.Types.NUnit2TestCollection" /> to the end of the collection.
+             Adds the elements of a <see cref="T:NAnt.NUnit2.Types.Category" /> array to the end of the
+             collection.
              </summary>
-             <param name="items">The <see cref="T:NAnt.NUnit2.Types.NUnit2TestCollection" /> to be added to the end of the collection.</param> 
+             <param name="items">
+             The array of <see cref="T:NAnt.NUnit2.Types.Category" /> elements to be added to the end of
+             the collection.
+             </param>
             </member>
-        <member name="M:NAnt.NUnit2.Types.NUnit2TestCollection.Contains(NAnt.NUnit2.Types.NUnit2Test)">
+        <member name="T:NAnt.NUnit2.Types.NUnit2Test">
              <summary>
-             Determines whether a <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> is in the collection.
+             Represents a <c>test</c> element of an <see cref="T:NAnt.NUnit2.Tasks.NUnit2Task" />.
              </summary>
-             <param name="item">The <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> to locate in the collection.</param> 
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)
@@ -12,15 +12,15 @@
   .ver 1:2:10:0
   .publickeytoken = (1B 44 E1 D4 26 11 58 21 ) // .D..&.X!
 }
+.assembly extern ICSharpCode.SharpCvsLib
+{
+  .ver 0:36:5:0
+}
 .assembly extern System
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
-.assembly extern ICSharpCode.SharpCvsLib
-{
-  .ver 0:36:5:0
-}
 .assembly 'NAnt.SourceControlTasks'
 {
   .custom instance void class [mscorlib]System.Reflection.AssemblyDelaySignAttribute::'.ctor'(bool) =  (01 00 00 00 00 ) // .....
@@ -68,6 +68,305 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
+  .class public auto ansi beforefieldinit ChangeLogTask
+  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
+		01 00 0D 63 76 73 2D 63 68 61 6E 67 65 6C 6F 67   // ...cvs-changelog
+		00 00                                           ) // ..
+
+    .field private static literal  string CvsCommandName = "xml"
+
+    // method line 1
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x32a8
+	// 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 ChangeLogTask::.ctor
+
+    // method line 2
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
+    {
+        // Method begins at RVA 0x32b0
+	// Code size 69 (0x45)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	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 "destfile"
+	IL_000c:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_0011:  brtrue IL_001e
+
+	IL_0016:  nop 
+	IL_0017:  ldnull 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_0043
+
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0024:  ldstr "destfile"
+	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:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_003d:  stloc.0 
+	IL_003e:  br IL_0043
+
+	IL_0043:  ldloc.0 
+	IL_0044:  ret 
+    } // end of method ChangeLogTask::get_DestFile
+
+    // method line 3
+    .method public hidebysig specialname 
+           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3304
+	// Code size 65 (0x41)
+	.maxstack 5
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_DestinationDirectory()
+	IL_0007:  brtrue IL_001f
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	IL_0014:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0019:  callvirt instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_DestinationDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldstr "destfile"
+	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002a:  ldstr "\"-oxml\" \"{0}\""
+	IL_002f:  ldarg.1 
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	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:  ret 
+    } // end of method ChangeLogTask::set_DestFile
+
+    // method line 4
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_StartDate ()  cil managed 
+    {
+        // Method begins at RVA 0x3354
+	// 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 "start"
+	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 ChangeLogTask::get_StartDate
+
+    // method line 5
+    .method public hidebysig specialname 
+           instance default void set_StartDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3388
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "start"
+	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 ChangeLogTask::set_StartDate
+
+    // method line 6
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_EndDate ()  cil managed 
+    {
+        // Method begins at RVA 0x33b0
+	// 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 "end"
+	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 ChangeLogTask::get_EndDate
+
+    // method line 7
+    .method public hidebysig specialname 
+           instance default void set_EndDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    {
+        // Method begins at RVA 0x33e4
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "end"
+	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 ChangeLogTask::set_EndDate
+
+    // method line 8
+    .method public virtual hidebysig specialname 
+           instance default string get_CommandName ()  cil managed 
+    {
+        // Method begins at RVA 0x340c
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "xml"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method ChangeLogTask::get_CommandName
+
+    // method line 9
+    .method public virtual hidebysig specialname 
+           instance default bool get_UseSharpCvsLib ()  cil managed 
+    {
+        // Method begins at RVA 0x3428
+	// 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 ChangeLogTask::get_UseSharpCvsLib
+
+    // method line 10
+    .method public virtual hidebysig specialname 
+           instance default void set_UseSharpCvsLib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x343e
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method ChangeLogTask::set_UseSharpCvsLib
+
+    // method line 11
+    .method public virtual hidebysig specialname 
+           instance default string get_Root ()  cil managed 
+    {
+        // Method begins at RVA 0x3444
+    } // end of method ChangeLogTask::get_Root
+
+    // method line 12
+    .method public virtual hidebysig specialname 
+           instance default void set_Root (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x34d0
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::set_Root(string)
+	IL_0008:  ret 
+    } // end of method ChangeLogTask::set_Root
+
+	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 78 6D 6C 66 69 6C 65 01 00 54 02 08 52   // ...xmlfile..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.ChangeLogTask::get_DestFile () 
+		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_DestFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime StartDate ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 73 74 61 72 74 01 00 54 02 08 52 65 71   // ...start..T..Req
+		75 69 72 65 64 01                               ) // uired.
+
+		.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.ChangeLogTask::get_StartDate () 
+		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_StartDate (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime EndDate ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 65 6E 64 01 00 54 02 08 52 65 71 75 69   // ...end..T..Requi
+		72 65 64 01                                     ) // red.
+
+		.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.ChangeLogTask::get_EndDate () 
+		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_EndDate (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance string CommandName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.ChangeLogTask::get_CommandName () 
+	}
+	.property instance bool UseSharpCvsLib ()
+	{
+		.get instance default bool NAnt.SourceControl.Tasks.ChangeLogTask::get_UseSharpCvsLib () 
+		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_UseSharpCvsLib (bool 'value') 
+	}
+	.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.
+
+		.get instance default string NAnt.SourceControl.Tasks.ChangeLogTask::get_Root () 
+		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_Root (string 'value') 
+	}
+  } // end of class NAnt.SourceControl.Tasks.ChangeLogTask
+}
+
+.namespace NAnt.SourceControl.Tasks
+{
   .class public auto ansi beforefieldinit CheckoutTask
   	extends NAnt.SourceControl.Tasks.AbstractCvsTask
   {
@@ -77,11 +376,11 @@
 
     .field assembly static literal  string CvsCommandName = "checkout"
 
-    // method line 1
+    // method line 13
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x32a8
+        // Method begins at RVA 0x34da
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -90,11 +389,11 @@
 	IL_0007:  ret 
     } // end of method CheckoutTask::.ctor
 
-    // method line 2
+    // method line 14
     .method public hidebysig specialname 
            instance default string get_Revision ()  cil managed 
     {
-        // Method begins at RVA 0x32b4
+        // Method begins at RVA 0x34e4
 	// Code size 64 (0x40)
 	.maxstack 2
 	.locals init (
@@ -124,11 +423,11 @@
 	IL_003f:  ret 
     } // end of method CheckoutTask::get_Revision
 
-    // method line 3
+    // method line 15
     .method public hidebysig specialname 
            instance default void set_Revision (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3300
+        // Method begins at RVA 0x3530
 	// Code size 66 (0x42)
 	.maxstack 5
 	IL_0000:  nop 
@@ -157,11 +456,11 @@
 	IL_0041:  ret 
     } // end of method CheckoutTask::set_Revision
 
-    // method line 4
+    // method line 16
     .method public hidebysig specialname 
            instance default string get_StickyTag ()  cil managed 
     {
-        // Method begins at RVA 0x3350
+        // Method begins at RVA 0x3580
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -176,11 +475,11 @@
 	IL_000e:  ret 
     } // end of method CheckoutTask::get_StickyTag
 
-    // method line 5
+    // method line 17
     .method public hidebysig specialname 
            instance default void set_StickyTag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x336b
+        // Method begins at RVA 0x359b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -190,11 +489,11 @@
 	IL_0008:  ret 
     } // end of method CheckoutTask::set_StickyTag
 
-    // method line 6
+    // method line 18
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
     {
-        // Method begins at RVA 0x3378
+        // Method begins at RVA 0x35a8
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -214,11 +513,11 @@
 	IL_0027:  ret 
     } // end of method CheckoutTask::get_Date
 
-    // method line 7
+    // method line 19
     .method public hidebysig specialname 
            instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x33ac
+        // Method begins at RVA 0x35dc
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
@@ -235,11 +534,11 @@
 	IL_0023:  ret 
     } // end of method CheckoutTask::set_Date
 
-    // method line 8
+    // method line 20
     .method public hidebysig specialname 
            instance default string get_OverrideDir ()  cil managed 
     {
-        // Method begins at RVA 0x33d4
+        // Method begins at RVA 0x3604
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -258,11 +557,11 @@
 	IL_0022:  ret 
     } // end of method CheckoutTask::get_OverrideDir
 
-    // method line 9
+    // method line 21
     .method public hidebysig specialname 
            instance default void set_OverrideDir (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3403
+        // Method begins at RVA 0x3633
 	// Code size 30 (0x1e)
 	.maxstack 8
 	IL_0000:  nop 
@@ -277,11 +576,11 @@
 	IL_001d:  ret 
     } // end of method CheckoutTask::set_OverrideDir
 
-    // method line 10
+    // method line 22
     .method public hidebysig specialname 
            instance default string get_OverrideDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x3424
+        // Method begins at RVA 0x3654
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -296,11 +595,11 @@
 	IL_000e:  ret 
     } // end of method CheckoutTask::get_OverrideDirectory
 
-    // method line 11
+    // method line 23
     .method public hidebysig specialname 
            instance default void set_OverrideDirectory (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x343f
+        // Method begins at RVA 0x366f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -310,11 +609,11 @@
 	IL_0008:  ret 
     } // end of method CheckoutTask::set_OverrideDirectory
 
-    // method line 12
+    // method line 24
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x344c
+        // Method begins at RVA 0x367c
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -401,1234 +700,999 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
-  .class public auto ansi abstract beforefieldinit AbstractSourceControlTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi beforefieldinit RTagTask
+  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
   {
-    .field family static literal  string EnvHome = "HOME"
-    .field family static literal  string AppData = "APPDATA"
-    .field family static literal  string PathVariable = "PATH"
-    .field family static literal  string CvsPassFileVariable = "CVS_PASSFILE"
-    .field family static literal  string PropExeName = "sourcecontrol.exename"
-    .field  private  string _exeName
-    .field  private  string _root
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _destinationDirectory
-    .field  private  string _password
-    .field  private  class [mscorlib]System.IO.FileInfo _passFile
-    .field  private  string _commandName
-    .field  private  string _commandLine
-    .field  private  class [mscorlib]System.Collections.Hashtable _commandOptions
-    .field  private  string _commandLineArguments
-    .field  private  class [mscorlib]System.Collections.Hashtable _globalOptions
-    .field  private  class [mscorlib]System.IO.FileInfo _ssh
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _fileset
-    .field  private static initonly  class [log4net]log4net.ILog Logger
+    .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..
 
-    // method line 13
-    .method family hidebysig specialname rtspecialname 
+    .field  private  string _tag
+    .field private static literal  string CvsCommandName = "rtag"
+
+    // method line 25
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2050
-	// Code size 48 (0x30)
+        // Method begins at RVA 0x3696
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLine
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandOptions
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0018:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_globalOptions
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0023:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::_fileset
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_002e:  nop 
-	IL_002f:  ret 
-    } // end of method AbstractSourceControlTask::.ctor
-
-    // method line 14
-    .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 15
-    .method family hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_VcsHome ()  cil managed 
-    {
-        // Method begins at RVA 0x2084
-	// Code size 54 (0x36)
-	.maxstack 1
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHomeEnv()
-	IL_0007:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_002d
-
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_001a:  brfalse IL_002c
-
-	IL_001f:  nop 
-	IL_0020:  ldloc.0 
-	IL_0021:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0026:  stloc.1 
-	IL_0027:  br IL_0034
-
-	IL_002c:  nop 
-	IL_002d:  ldnull 
-	IL_002e:  stloc.1 
-	IL_002f:  br IL_0034
-
-	IL_0034:  ldloc.1 
-	IL_0035:  ret 
-    } // end of method AbstractSourceControlTask::get_VcsHome
-
-    // method line 16
-    .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 17
-    .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
+	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 virtual hidebysig newslot specialname 
-           instance default string get_Root ()  cil managed 
+    // method line 26
+    .method public hidebysig specialname 
+           instance default string get_Tag ()  cil managed 
     {
-        // Method begins at RVA 0x20c8
+        // Method begins at RVA 0x36a0
 	// 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.AbstractSourceControlTask::_root
+	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 AbstractSourceControlTask::get_Root
+    } // end of method RTagTask::get_Tag
 
-    // method line 19
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Root (string 'value')  cil managed 
+    // method line 27
+    .method public hidebysig specialname 
+           instance default void set_Tag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20e3
+        // Method begins at RVA 0x36bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_root
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.RTagTask::_tag
 	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_Root
+    } // end of method RTagTask::set_Tag
 
-    // method line 20
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
+    // method line 28
+    .method public hidebysig specialname 
+           instance default bool get_Remove ()  cil managed 
     {
-        // Method begins at RVA 0x20f0
-	// Code size 44 (0x2c)
+        // Method begins at RVA 0x36c8
+	// Code size 35 (0x23)
 	.maxstack 2
 	.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.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
-	IL_0007:  brtrue IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
-	IL_0013:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0018:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
-	IL_001d:  nop 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_002a
+	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_002a:  ldloc.0 
-	IL_002b:  ret 
-    } // end of method AbstractSourceControlTask::get_DestinationDirectory
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_Remove
 
-    // method line 21
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 29
+    .method public hidebysig specialname 
+           instance default void set_Remove (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2128
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x36f7
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_DestinationDirectory
+	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 virtual hidebysig newslot specialname 
-           instance default string get_Password ()  cil managed 
+    // method line 30
+    .method public hidebysig specialname 
+           instance default bool get_MoveIfExists ()  cil managed 
     {
-        // Method begins at RVA 0x2134
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x370c
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_password
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_Password
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_MoveIfExists
 
-    // method line 23
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Password (string 'value')  cil managed 
+    // method line 31
+    .method public hidebysig specialname 
+           instance default void set_MoveIfExists (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x214f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x373b
+	// Code size 19 (0x13)
 	.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.SourceControl.Tasks.AbstractSourceControlTask::_password
-	IL_000d:  ret 
-    } // end of method AbstractSourceControlTask::set_Password
+	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 virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
+    // method line 32
+    .method public hidebysig specialname 
+           instance default bool get_Recursive ()  cil managed 
     {
-        // Method begins at RVA 0x2160
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x3750
+	// Code size 35 (0x23)
+	.maxstack 2
 	.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.SourceControl.Tasks.AbstractSourceControlTask::_passFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_PassFile
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_Recursive
 
-    // method line 25
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 33
+    .method public hidebysig specialname 
+           instance default void set_Recursive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x217b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x377f
+	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_passFile
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_PassFile
+	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 line 34
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_GlobalOptions ()  cil managed 
+           instance default string get_ActOnTag ()  cil managed 
     {
-        // Method begins at RVA 0x2188
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x37a8
+	// Code size 35 (0x23)
+	.maxstack 2
 	.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.SourceControl.Tasks.AbstractSourceControlTask::_globalOptions
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_GlobalOptions
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_ActOnTag
 
-    // method line 27
+    // method line 35
     .method public hidebysig specialname 
-           instance default void set_GlobalOptions (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
+           instance default void set_ActOnTag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x21a3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x37d7
+	// Code size 30 (0x1e)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_globalOptions
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_GlobalOptions
+	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 line 36
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_CommandOptions ()  cil managed 
+           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
     {
-        // Method begins at RVA 0x21b0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x37f8
+	// Code size 40 (0x28)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandOptions
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_CommandOptions
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method RTagTask::get_ActOnDate
 
-    // method line 29
+    // method line 37
     .method public hidebysig specialname 
-           instance default void set_CommandOptions (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
+           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x21cb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x382c
+	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandOptions
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_CommandOptions
+	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 line 38
     .method public hidebysig specialname 
-           instance default string get_CommandLineArguments ()  cil managed 
+           instance default bool get_ForceHead ()  cil managed 
     {
-        // Method begins at RVA 0x21d8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x3854
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLineArguments
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_CommandLineArguments
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_ForceHead
 
-    // method line 31
+    // method line 39
     .method public hidebysig specialname 
-           instance default void set_CommandLineArguments (string 'value')  cil managed 
+           instance default void set_ForceHead (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x21f3
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x3883
+	// Code size 19 (0x13)
 	.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.SourceControl.Tasks.AbstractSourceControlTask::_commandLineArguments
-	IL_000d:  ret 
-    } // end of method AbstractSourceControlTask::set_CommandLineArguments
+	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 newslot specialname 
+    // method line 40
+    .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x2204
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3898
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldstr "rtag"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_CommandName
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method RTagTask::get_CommandName
 
-    // method line 33
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_CommandName (string 'value')  cil managed 
+    // method line 41
+    .method family virtual hidebysig 
+           instance default void AppendSubCommandArgs ()  cil managed 
     {
-        // Method begins at RVA 0x221f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x38b2
+	// Code size 54 (0x36)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandName
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_CommandName
+	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
 
-    // method line 34
-    .method public virtual hidebysig newslot specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_VcsFileSet ()  cil managed 
+	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 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 42
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x222c
+        // Method begins at RVA 0x38e9
+	// 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 43
+    .method public hidebysig specialname 
+           instance default string get_Tag ()  cil managed 
+    {
+        // Method begins at RVA 0x38f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::_fileset
+	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 AbstractSourceControlTask::get_VcsFileSet
+    } // end of method TagTask::get_Tag
 
-    // method line 35
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_VcsFileSet (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 44
+    .method public hidebysig specialname 
+           instance default void set_Tag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2247
+        // Method begins at RVA 0x390f
 	// 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.SourceControl.Tasks.AbstractSourceControlTask::_fileset
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.TagTask::_tag
 	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_VcsFileSet
+    } // end of method TagTask::set_Tag
 
-    // method line 36
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Ssh ()  cil managed 
+    // method line 45
+    .method public hidebysig specialname 
+           instance default bool get_Remove ()  cil managed 
     {
-        // Method begins at RVA 0x2254
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x391c
+	// Code size 35 (0x23)
+	.maxstack 2
 	.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.SourceControl.Tasks.AbstractSourceControlTask::_ssh
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_Ssh
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_Remove
 
-    // method line 37
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Ssh (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 46
+    .method public hidebysig specialname 
+           instance default void set_Remove (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x226f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x394b
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_ssh
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_Ssh
-
-    // method line 38
-    .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
+	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 39
-    .method public virtual hidebysig specialname 
-           instance default string get_ExeName ()  cil managed 
+    // method line 47
+    .method public hidebysig specialname 
+           instance default bool get_MoveIfExists ()  cil managed 
     {
-        // Method begins at RVA 0x227c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x3960
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_exeName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_ExeName
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_MoveIfExists
 
-    // method line 40
-    .method public virtual hidebysig specialname 
-           instance default void set_ExeName (string 'value')  cil managed 
+    // method line 48
+    .method public hidebysig specialname 
+           instance default void set_MoveIfExists (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2297
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x398f
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_exeName
-	IL_0008:  ret 
-    } // end of method AbstractSourceControlTask::set_ExeName
+	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 41
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    // method line 49
+    .method public hidebysig specialname 
+           instance default bool get_Recursive ()  cil managed 
     {
-        // Method begins at RVA 0x22a4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x39a4
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLine
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AbstractSourceControlTask::get_ProgramArguments
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_Recursive
 
-    // method line 42
-    .method family virtual hidebysig 
-           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
+    // method line 50
+    .method public hidebysig specialname 
+           instance default void set_Recursive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x22bf
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x39d3
+	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  callvirt instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetEnvironment(class [System]System.Diagnostics.Process)
-	IL_000f:  ret 
-    } // end of method AbstractSourceControlTask::PrepareProcess
+	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 43
-    .method family hidebysig 
-           instance default void SetGlobalOption (string name, string 'value', bool 'on')  cil managed 
+    // method line 51
+    .method public hidebysig specialname 
+           instance default string get_ActOnTag ()  cil managed 
     {
-        // Method begins at RVA 0x22d0
-	// Code size 174 (0xae)
-	.maxstack 7
+        // Method begins at RVA 0x39fc
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.Option	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 1000
-	IL_0007:  ldstr "Name: {0}"
-	IL_000c:  ldc.i4.1 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  stelem.ref 
-	IL_0016:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_001b:  ldarg.0 
-	IL_001c:  ldc.i4 1000
-	IL_0021:  ldstr "Value: {0}"
-	IL_0026:  ldc.i4.1 
-	IL_0027:  newarr [mscorlib]System.Object
-	IL_002c:  dup 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  ldarg.2 
-	IL_002f:  stelem.ref 
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0035:  ldarg.0 
-	IL_0036:  ldc.i4 1000
-	IL_003b:  ldstr "On: {0}"
-	IL_0040:  ldc.i4.1 
-	IL_0041:  newarr [mscorlib]System.Object
-	IL_0046:  dup 
-	IL_0047:  ldc.i4.0 
-	IL_0048:  ldarg.3 
-	IL_0049:  box [mscorlib]System.Boolean
-	IL_004e:  stelem.ref 
-	IL_004f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0054:  ldarg.0 
-	IL_0055:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions()
-	IL_005a:  ldarg.1 
-	IL_005b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_0060:  brfalse IL_007e
+	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_0065:  nop 
-	IL_0066:  ldarg.0 
-	IL_0067:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions()
-	IL_006c:  ldarg.1 
-	IL_006d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0072:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0077:  stloc.0 
-	IL_0078:  nop 
-	IL_0079:  br IL_00a6
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_ActOnTag
 
-	IL_007e:  nop 
-	IL_007f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Option::'.ctor'()
-	IL_0084:  stloc.0 
-	IL_0085:  ldloc.0 
-	IL_0086:  ldarg.1 
-	IL_0087:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_OptionName(string)
-	IL_008c:  ldloc.0 
-	IL_008d:  ldarg.2 
-	IL_008e:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_Value(string)
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions()
-	IL_0099:  ldloc.0 
-	IL_009a:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	IL_009f:  ldloc.0 
-	IL_00a0:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_00a5:  nop 
-	IL_00a6:  ldloc.0 
-	IL_00a7:  ldarg.3 
-	IL_00a8:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_IfDefined(bool)
-	IL_00ad:  ret 
-    } // end of method AbstractSourceControlTask::SetGlobalOption
+    // method line 52
+    .method public hidebysig specialname 
+           instance default void set_ActOnTag (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3a2b
+	// 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 44
-    .method family hidebysig 
-           instance default void SetCommandOption (string name, string 'value', bool 'on')  cil managed 
+    // method line 53
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
     {
-        // Method begins at RVA 0x238c
-	// Code size 86 (0x56)
-	.maxstack 3
+        // Method begins at RVA 0x3a4c
+	// Code size 40 (0x28)
+	.maxstack 2
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.Option	V_0)
+		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:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_000d:  brfalse IL_002b
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_001f:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0024:  stloc.0 
-	IL_0025:  nop 
-	IL_0026:  br IL_004e
+	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_002b:  nop 
-	IL_002c:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Option::'.ctor'()
-	IL_0031:  stloc.0 
-	IL_0032:  ldloc.0 
-	IL_0033:  ldarg.1 
-	IL_0034:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_OptionName(string)
-	IL_0039:  ldloc.0 
-	IL_003a:  ldarg.2 
-	IL_003b:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_Value(string)
-	IL_0040:  ldarg.0 
-	IL_0041:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0046:  ldarg.1 
-	IL_0047:  ldloc.0 
-	IL_0048:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_004d:  nop 
-	IL_004e:  ldloc.0 
-	IL_004f:  ldarg.3 
-	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_IfDefined(bool)
-	IL_0055:  ret 
-    } // end of method AbstractSourceControlTask::SetCommandOption
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method TagTask::get_ActOnDate
 
-    // method line 45
-    .method family virtual hidebysig newslot 
-           instance default void SetEnvironment (class [System]System.Diagnostics.Process process)  cil managed 
+    // method line 54
+    .method public hidebysig specialname 
+           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x23f0
-	// Code size 392 (0x188)
+        // Method begins at RVA 0x3a80
+	// Code size 36 (0x24)
 	.maxstack 8
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		class [mscorlib]System.ArgumentException	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
-	IL_0007:  brfalse IL_006d
-
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
-	IL_0012:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0017:  brtrue IL_006d
-
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldstr "PATH"
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
-	IL_0029:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_002e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
-	IL_0033:  stloc.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  brtrue IL_005d
-
-	IL_003a:  nop 
-	IL_003b:  ldarg.0 
-	IL_003c:  ldstr "PATH"
-	IL_0041:  ldarg.0 
-	IL_0042:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
-	IL_0047:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_004c:  ldstr ".exe"
-	IL_0051:  call string string::Concat(string, string)
-	IL_0056:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
-	IL_005b:  stloc.0 
-	IL_005c:  nop 
-	IL_005d:  ldloc.0 
-	IL_005e:  brfalse IL_006c
-
-	IL_0063:  nop 
-	IL_0064:  ldarg.0 
-	IL_0065:  ldloc.0 
-	IL_0066:  callvirt instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Ssh(class [mscorlib]System.IO.FileInfo)
-	IL_006b:  nop 
-	IL_006c:  nop 
-	IL_006d:  ldarg.0 
-	IL_006e:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
-	IL_0073:  brfalse IL_00ba
-
-	IL_0078:  nop 
-	.try { // 0
-	  IL_0079:  nop 
-	  IL_007a:  ldarg.1 
-	  IL_007b:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0080:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_0085:  ldarg.0 
-	  IL_0086:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_SshEnv()
-	  IL_008b:  ldarg.0 
-	  IL_008c:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
-	  IL_0091:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0096:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
-	  IL_009b:  nop 
-	  IL_009c:  leave IL_00b9
-
-	} // end .try 0
-	catch class [mscorlib]System.ArgumentException { // 0
-	  IL_00a1:  stloc.1 
-	  IL_00a2:  nop 
-	  IL_00a3:  ldsfld class [log4net]log4net.ILog NAnt.SourceControl.Tasks.AbstractSourceControlTask::Logger
-	  IL_00a8:  ldstr "Possibility cvs_rsh key has already been added."
-	  IL_00ad:  ldloc.1 
-	  IL_00ae:  callvirt instance void class [log4net]log4net.ILog::Warn(object, class [mscorlib]System.Exception)
-	  IL_00b3:  nop 
-	  IL_00b4:  leave IL_00b9
-
-	} // end handler 0
-	IL_00b9:  nop 
-	IL_00ba:  ldarg.0 
-	IL_00bb:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile()
-	IL_00c0:  brfalse IL_012a
-
-	IL_00c5:  nop 
-	IL_00c6:  ldarg.1 
-	IL_00c7:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00cc:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	IL_00d1:  ldstr "CVS_PASSFILE"
-	IL_00d6:  callvirt instance bool class [System]System.Collections.Specialized.StringDictionary::ContainsKey(string)
-	IL_00db:  brfalse IL_0107
-
-	IL_00e0:  nop 
-	IL_00e1:  ldarg.1 
-	IL_00e2:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00e7:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	IL_00ec:  ldstr "CVS_PASSFILE"
-	IL_00f1:  ldarg.0 
-	IL_00f2:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile()
-	IL_00f7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00fc:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	IL_0101:  nop 
-	IL_0102:  br IL_0129
-
-	IL_0107:  nop 
-	IL_0108:  ldarg.1 
-	IL_0109:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_010e:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	IL_0113:  ldstr "CVS_PASSFILE"
-	IL_0118:  ldarg.0 
-	IL_0119:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile()
-	IL_011e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0123:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
-	IL_0128:  nop 
-	IL_0129:  nop 
-	IL_012a:  ldarg.0 
-	IL_012b:  ldc.i4 2000
-	IL_0130:  ldstr "Using ssh binary: {0}"
-	IL_0135:  ldc.i4.1 
-	IL_0136:  newarr [mscorlib]System.Object
-	IL_013b:  dup 
-	IL_013c:  ldc.i4.0 
-	IL_013d:  ldarg.1 
-	IL_013e:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_0143:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	IL_0148:  ldarg.0 
-	IL_0149:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_SshEnv()
-	IL_014e:  callvirt instance string class [System]System.Collections.Specialized.StringDictionary::get_Item(string)
-	IL_0153:  stelem.ref 
-	IL_0154:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0159:  ldarg.0 
-	IL_015a:  ldc.i4 2000
-	IL_015f:  ldstr "Using .cvspass file: {0}"
-	IL_0164:  ldc.i4.1 
-	IL_0165:  newarr [mscorlib]System.Object
-	IL_016a:  dup 
-	IL_016b:  ldc.i4.0 
-	IL_016c:  ldarg.1 
-	IL_016d:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_0172:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	IL_0177:  ldstr "CVS_PASSFILE"
-	IL_017c:  callvirt instance string class [System]System.Collections.Specialized.StringDictionary::get_Item(string)
-	IL_0181:  stelem.ref 
-	IL_0182:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0187:  ret 
-    } // end of method AbstractSourceControlTask::SetEnvironment
+	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 46
-    .method family hidebysig 
-           instance default void AppendFiles ()  cil managed 
+    // method line 55
+    .method public hidebysig specialname 
+           instance default bool get_ForceHead ()  cil managed 
     {
-        // Method begins at RVA 0x2594
-	// Code size 187 (0xbb)
-	.maxstack 4
+        // Method begins at RVA 0x3aa8
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		string	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsFileSet()
-	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_000d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0012:  stloc.1 
-	.try { // 0
-	  IL_0013:  br IL_0096
-
-	  IL_0018:  ldloc.1 
-	  IL_0019:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_001e:  stloc.0 
-	  IL_001f:  nop 
-	  IL_0020:  ldloc.0 
-	  IL_0021:  ldarg.0 
-	  IL_0022:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_DestinationDirectory()
-	  IL_0027:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_002c:  ldstr ""
-	  IL_0031:  callvirt instance string string::Replace(string, string)
-	  IL_0036:  stloc.2 
-	  IL_0037:  ldloc.2 
-	  IL_0038:  ldc.i4.s 0x2f
-	  IL_003a:  callvirt instance int32 string::IndexOf(char)
-	  IL_003f:  brfalse IL_0051
-
-	  IL_0044:  ldloc.2 
-	  IL_0045:  ldc.i4.s 0x5c
-	  IL_0047:  callvirt instance int32 string::IndexOf(char)
-	  IL_004c:  brtrue IL_0063
-
-	  IL_0051:  nop 
-	  IL_0052:  ldloc.2 
-	  IL_0053:  ldc.i4.1 
-	  IL_0054:  ldloc.2 
-	  IL_0055:  callvirt instance int32 string::get_Length()
-	  IL_005a:  ldc.i4.1 
-	  IL_005b:  sub 
-	  IL_005c:  callvirt instance string string::Substring(int32, int32)
-	  IL_0061:  stloc.2 
-	  IL_0062:  nop 
-	  IL_0063:  ldloc.2 
-	  IL_0064:  ldstr "\\"
-	  IL_0069:  ldstr "/"
-	  IL_006e:  callvirt instance string string::Replace(string, string)
-	  IL_0073:  stloc.2 
-	  IL_0074:  ldarg.0 
-	  IL_0075:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	  IL_007a:  ldstr "\""
-	  IL_007f:  ldloc.2 
-	  IL_0080:  ldstr "\""
-	  IL_0085:  call string string::Concat(string, string, string)
-	  IL_008a:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	  IL_008f:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	  IL_0094:  pop 
-	  IL_0095:  nop 
-	  IL_0096:  ldloc.1 
-	  IL_0097:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_009c:  brtrue IL_0018
-
-	  IL_00a1:  leave IL_00ba
+	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
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00a6:  ldloc.1 
-	  IL_00a7:  isinst [mscorlib]System.IDisposable
-	  IL_00ac:  dup 
-	  IL_00ad:  stloc.3 
-	  IL_00ae:  brfalse IL_00b9
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_ForceHead
 
-	  IL_00b3:  ldloc.3 
-	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00b9:  endfinally 
-	} // end handler 0
-	IL_00ba:  ret 
-    } // end of method AbstractSourceControlTask::AppendFiles
+    // method line 56
+    .method public hidebysig specialname 
+           instance default void set_ForceHead (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3ad7
+	// 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 47
-    .method family hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo DeriveVcsFromEnvironment ()  cil managed 
+    // method line 57
+    .method public hidebysig specialname 
+           instance default bool get_FailIfModified ()  cil managed 
     {
-        // Method begins at RVA 0x266c
-	// Code size 55 (0x37)
-	.maxstack 3
+        // Method begins at RVA 0x3aec
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHomeEnv()
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsExeName()
-	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
-	IL_0013:  stloc.0 
-	IL_0014:  ldloc.0 
-	IL_0015:  brtrue IL_002e
+	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_001a:  nop 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldstr "PATH"
-	IL_0021:  ldarg.0 
-	IL_0022:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsExeName()
-	IL_0027:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
-	IL_002c:  stloc.0 
-	IL_002d:  nop 
-	IL_002e:  ldloc.0 
-	IL_002f:  stloc.1 
-	IL_0030:  br IL_0035
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_FailIfModified
 
-	IL_0035:  ldloc.1 
-	IL_0036:  ret 
-    } // end of method AbstractSourceControlTask::DeriveVcsFromEnvironment
+    // method line 58
+    .method public hidebysig specialname 
+           instance default void set_FailIfModified (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3b1b
+	// 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 48
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo DeriveFullPathFromEnv (string environmentVar, string fileName)  cil managed 
+    // method line 59
+    .method public virtual hidebysig specialname 
+           instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x26b0
-	// Code size 391 (0x187)
-	.maxstack 7
+        // Method begins at RVA 0x3b30
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string[]	V_1,
-		string	V_2,
-		string[]	V_3,
-		int32	V_4,
-		string	V_5,
-		string	V_6,
-		class [mscorlib]System.IO.FileInfo	V_7)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_0007:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldc.i4 1000
-	IL_0013:  ldstr "Environment variable: {0}"
-	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:  stelem.ref 
-	IL_0022:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0027:  ldarg.0 
-	IL_0028:  ldc.i4 1000
-	IL_002d:  ldstr "Environment value: {0}"
-	IL_0032:  ldc.i4.1 
-	IL_0033:  newarr [mscorlib]System.Object
-	IL_0038:  dup 
-	IL_0039:  ldc.i4.0 
-	IL_003a:  ldloc.0 
-	IL_003b:  stelem.ref 
-	IL_003c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0041:  ldloc.0 
-	IL_0042:  brfalse IL_017c
-
-	IL_0047:  nop 
-	IL_0048:  ldloc.0 
-	IL_0049:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
-	IL_004e:  ldc.i4.0 
-	IL_004f:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0054:  stloc.1 
-	IL_0055:  nop 
-	IL_0056:  ldloc.1 
-	IL_0057:  stloc.3 
-	IL_0058:  ldc.i4.0 
-	IL_0059:  stloc.s 4
-	IL_005b:  br IL_0171
-
-	IL_0060:  ldloc.3 
-	IL_0061:  ldloc.s 4
-	IL_0063:  ldelem.ref 
-	IL_0064:  stloc.2 
-	IL_0065:  nop 
-	IL_0066:  ldloc.2 
-	IL_0067:  brtrue IL_0072
-
-	IL_006c:  nop 
-	IL_006d:  br IL_016b
-
-	IL_0072:  ldloc.2 
-	IL_0073:  ldc.i4.s 0x22
-	IL_0075:  callvirt instance string string::Trim(char)
-	IL_007a:  stloc.s 5
-	IL_007c:  ldarg.0 
-	IL_007d:  ldc.i4 1000
-	IL_0082:  ldstr "Environment Path: {0}"
-	IL_0087:  ldc.i4.1 
-	IL_0088:  newarr [mscorlib]System.Object
-	IL_008d:  dup 
-	IL_008e:  ldc.i4.0 
-	IL_008f:  ldloc.s 5
-	IL_0091:  stelem.ref 
-	IL_0092:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0097:  ldarg.0 
-	IL_0098:  ldc.i4 1000
-	IL_009d:  ldstr "FileName: {0}"
-	IL_00a2:  ldc.i4.1 
-	IL_00a3:  newarr [mscorlib]System.Object
-	IL_00a8:  dup 
-	IL_00a9:  ldc.i4.0 
-	IL_00aa:  ldarg.2 
-	IL_00ab:  stelem.ref 
-	IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00b1:  ldloc.s 5
-	IL_00b3:  ldarg.2 
-	IL_00b4:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_00b9:  stloc.s 6
-	IL_00bb:  ldarg.0 
-	IL_00bc:  ldc.i4 1000
-	IL_00c1:  ldstr "FileFullName: {0}"
-	IL_00c6:  ldc.i4.1 
-	IL_00c7:  newarr [mscorlib]System.Object
-	IL_00cc:  dup 
-	IL_00cd:  ldc.i4.0 
-	IL_00ce:  ldloc.s 6
-	IL_00d0:  stelem.ref 
-	IL_00d1:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00d6:  ldloc.2 
-	IL_00d7:  ldarg.2 
-	IL_00d8:  callvirt instance int32 string::IndexOf(string)
-	IL_00dd:  ldc.i4.m1 
-	IL_00de:  ble IL_011e
-
-	IL_00e3:  ldarg.2 
-	IL_00e4:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_00e9:  brfalse IL_011e
-
-	IL_00ee:  nop 
-	IL_00ef:  ldarg.2 
-	IL_00f0:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00f5:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_00fa:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
-	IL_00ff:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0104:  callvirt instance int32 string::IndexOf(string)
-	IL_0109:  ldc.i4.1 
-	IL_010a:  bgt IL_011d
-
-	IL_010f:  nop 
-	IL_0110:  ldarg.2 
-	IL_0111:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0116:  stloc.s 7
-	IL_0118:  br IL_0184
+	IL_0001:  ldstr "tag"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_011d:  nop 
-	IL_011e:  ldloc.s 6
-	IL_0120:  ldarg.2 
-	IL_0121:  callvirt instance int32 string::IndexOf(string)
-	IL_0126:  ldc.i4.m1 
-	IL_0127:  ble IL_016a
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TagTask::get_CommandName
 
-	IL_012c:  ldloc.s 6
-	IL_012e:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0133:  brfalse IL_016a
+    // method line 60
+    .method public virtual hidebysig specialname 
+           instance default string get_Module ()  cil managed 
+    {
+        // Method begins at RVA 0x3b4c
+	// 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_0138:  nop 
-	IL_0139:  ldloc.s 6
-	IL_013b:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0140:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0145:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
-	IL_014a:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_014f:  callvirt instance int32 string::IndexOf(string)
-	IL_0154:  ldc.i4.m1 
-	IL_0155:  bne.un IL_0169
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method TagTask::get_Module
 
-	IL_015a:  nop 
-	IL_015b:  ldloc.s 6
-	IL_015d:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0162:  stloc.s 7
-	IL_0164:  br IL_0184
+    // method line 61
+    .method public virtual hidebysig specialname 
+           instance default void set_Module (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3b62
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method TagTask::set_Module
 
-	IL_0169:  nop 
-	IL_016a:  nop 
-	IL_016b:  ldloc.s 4
-	IL_016d:  ldc.i4.1 
-	IL_016e:  add 
-	IL_016f:  stloc.s 4
-	IL_0171:  ldloc.s 4
-	IL_0173:  ldloc.3 
-	IL_0174:  ldlen 
-	IL_0175:  conv.i4 
-	IL_0176:  blt IL_0060
+    // method line 62
+    .method family virtual hidebysig 
+           instance default void AppendSubCommandArgs ()  cil managed 
+    {
+        // Method begins at RVA 0x3b65
+	// 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_017b:  nop 
-	IL_017c:  ldnull 
-	IL_017d:  stloc.s 7
-	IL_017f:  br IL_0184
+	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_0184:  ldloc.s 7
-	IL_0186:  ret 
-    } // end of method AbstractSourceControlTask::DeriveFullPathFromEnv
+	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 49
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 63
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsModuleNeeded ()  cil managed 
     {
-        // Method begins at RVA 0x2843
-	// 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.SourceControl.Tasks.AbstractSourceControlTask::Logger
-	IL_0014:  ret 
-    } // end of method AbstractSourceControlTask::.cctor
+        // Method begins at RVA 0x3b9c
+	// 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
 
-	.property instance string PassFileName ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFileName () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo VcsHome ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHome () 
-	}
-	.property instance string VcsHomeEnv ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHomeEnv () 
-	}
-	.property instance string VcsExeName ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsExeName () 
-	}
-	.property instance string Root ()
+	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 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+		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.AbstractSourceControlTask::get_Root () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Root (string 'value') 
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Tag () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Tag (string 'value') 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo DestinationDirectory ()
+	.property instance bool Remove ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 64 65 73 74 69 6E 61 74 69 6F 6E 01 00   // ...destination..
-		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+		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.
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_DestinationDirectory () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+		.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 string Password ()
+	.property instance bool MoveIfExists ()
 	{
 		.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 00                      ) // Required.
+		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 [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1C 55 73 65 20 3C 63 76 73 2D 70 61 73 73   // ...Use <cvs-pass
-		3E 20 74 61 73 6B 20 69 6E 73 74 65 61 64 2E 01   // > task instead..
-		00 00                                           ) // ..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Password () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Password (string 'value') 
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_MoveIfExists () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_MoveIfExists (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo PassFile ()
+	.property instance bool Recursive ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 61 73 73 66 69 6C 65 00 00 ) // ...passfile..
+		.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.
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_PassFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable GlobalOptions ()
-	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_GlobalOptions (class [mscorlib]System.Collections.Hashtable 'value') 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable CommandOptions ()
-	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_CommandOptions (class [mscorlib]System.Collections.Hashtable 'value') 
+		.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 CommandLineArguments ()
+	.property instance string ActOnTag ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 63 6F 6D 6D 61 6E 64 6C 69 6E 65 00 00 ) // ...commandline..
+		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.
 
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandLineArguments () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_CommandLineArguments (string 'value') 
+		.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 string CommandName ()
+	.property instance valuetype [mscorlib]System.DateTime ActOnDate ()
 	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandName () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_CommandName (string 'value') 
+		.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 class [NAnt.Core]NAnt.Core.Types.FileSet VcsFileSet ()
+	.property instance bool ForceHead ()
 	{
-		.custom instance void class [NAnt.Core]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]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.
 
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsFileSet () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_VcsFileSet (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+		.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 class [mscorlib]System.IO.FileInfo Ssh ()
+	.property instance bool FailIfModified ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 73 73 68 01 00 54 02 08 52 65 71 75 69   // ...ssh..T..Requi
-		72 65 64 00                                     ) // red.
+		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                                              ) // .
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Ssh (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.SourceControl.Tasks.TagTask::get_FailIfModified () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_FailIfModified (bool 'value') 
 	}
-	.property instance string SshEnv ()
+	.property instance string CommandName ()
 	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_SshEnv () 
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_CommandName () 
 	}
-	.property instance string ExeName ()
+	.property instance string Module ()
 	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_ExeName () 
-		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_ExeName (string 'value') 
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Module () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Module (string 'value') 
 	}
-	.property instance string ProgramArguments ()
+	.property instance bool IsModuleNeeded ()
 	{
-		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_ProgramArguments () 
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_IsModuleNeeded () 
 	}
-  } // end of class NAnt.SourceControl.Tasks.AbstractSourceControlTask
+  } // end of class NAnt.SourceControl.Tasks.TagTask
 }
 
 .namespace NAnt.SourceControl.Tasks
@@ -1640,11 +1704,11 @@
 
     .field  private  string _commandName
 
-    // method line 50
+    // method line 64
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3466
+        // Method begins at RVA 0x3bb2
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1652,11 +1716,11 @@
 	IL_0006:  ret 
     } // end of method CvsTask::.ctor
 
-    // method line 51
+    // method line 65
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x3470
+        // Method begins at RVA 0x3bbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1671,11 +1735,11 @@
 	IL_000e:  ret 
     } // end of method CvsTask::get_CommandName
 
-    // method line 52
+    // method line 66
     .method public virtual hidebysig specialname 
            instance default void set_CommandName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x348b
+        // Method begins at RVA 0x3bd7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1685,11 +1749,11 @@
 	IL_0008:  ret 
     } // end of method CvsTask::set_CommandName
 
-    // method line 53
+    // method line 67
     .method family virtual hidebysig specialname 
            instance default bool get_IsModuleNeeded ()  cil managed 
     {
-        // Method begins at RVA 0x3498
+        // Method begins at RVA 0x3be4
 	// Code size 127 (0x7f)
 	.maxstack 2
 	.locals init (
@@ -1778,11 +1842,11 @@
 
     .field assembly static literal  string CvsCommandName = "update"
 
-    // method line 54
+    // method line 68
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3523
+        // Method begins at RVA 0x3c6f
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1797,11 +1861,11 @@
 	IL_0015:  ret 
     } // end of method UpdateTask::.ctor
 
-    // method line 55
+    // method line 69
     .method public hidebysig specialname 
            instance default bool get_BuildDirs ()  cil managed 
     {
-        // Method begins at RVA 0x353c
+        // Method begins at RVA 0x3c88
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -1820,11 +1884,11 @@
 	IL_0022:  ret 
     } // end of method UpdateTask::get_BuildDirs
 
-    // method line 56
+    // method line 70
     .method public hidebysig specialname 
            instance default void set_BuildDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x356b
+        // Method begins at RVA 0x3cb7
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1836,11 +1900,11 @@
 	IL_0012:  ret 
     } // end of method UpdateTask::set_BuildDirs
 
-    // method line 57
+    // method line 71
     .method public hidebysig specialname 
            instance default bool get_PruneEmpty ()  cil managed 
     {
-        // Method begins at RVA 0x3580
+        // Method begins at RVA 0x3ccc
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -1859,11 +1923,11 @@
 	IL_0022:  ret 
     } // end of method UpdateTask::get_PruneEmpty
 
-    // method line 58
+    // method line 72
     .method public hidebysig specialname 
            instance default void set_PruneEmpty (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x35af
+        // Method begins at RVA 0x3cfb
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1875,11 +1939,11 @@
 	IL_0012:  ret 
     } // end of method UpdateTask::set_PruneEmpty
 
-    // method line 59
+    // method line 73
     .method public hidebysig specialname 
            instance default bool get_OverwriteLocal ()  cil managed 
     {
-        // Method begins at RVA 0x35c4
+        // Method begins at RVA 0x3d10
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -1898,11 +1962,11 @@
 	IL_0022:  ret 
     } // end of method UpdateTask::get_OverwriteLocal
 
-    // method line 60
+    // method line 74
     .method public hidebysig specialname 
            instance default void set_OverwriteLocal (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x35f3
+        // Method begins at RVA 0x3d3f
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1914,11 +1978,11 @@
 	IL_0012:  ret 
     } // end of method UpdateTask::set_OverwriteLocal
 
-    // method line 61
+    // method line 75
     .method public hidebysig specialname 
            instance default bool get_Recursive ()  cil managed 
     {
-        // Method begins at RVA 0x3608
+        // Method begins at RVA 0x3d54
 	// Code size 67 (0x43)
 	.maxstack 2
 	.locals init (
@@ -1953,11 +2017,11 @@
 	IL_0042:  ret 
     } // end of method UpdateTask::get_Recursive
 
-    // method line 62
+    // method line 76
     .method public hidebysig specialname 
            instance default void set_Recursive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3657
+        // Method begins at RVA 0x3da3
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1983,11 +2047,11 @@
 	IL_0032:  ret 
     } // end of method UpdateTask::set_Recursive
 
-    // method line 63
+    // method line 77
     .method public hidebysig specialname 
            instance default string get_Revision ()  cil managed 
     {
-        // Method begins at RVA 0x368c
+        // Method begins at RVA 0x3dd8
 	// Code size 64 (0x40)
 	.maxstack 2
 	.locals init (
@@ -2017,11 +2081,11 @@
 	IL_003f:  ret 
     } // end of method UpdateTask::get_Revision
 
-    // method line 64
+    // method line 78
     .method public hidebysig specialname 
            instance default void set_Revision (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x36d8
+        // Method begins at RVA 0x3e24
 	// Code size 66 (0x42)
 	.maxstack 5
 	IL_0000:  nop 
@@ -2050,11 +2114,11 @@
 	IL_0041:  ret 
     } // end of method UpdateTask::set_Revision
 
-    // method line 65
+    // method line 79
     .method public hidebysig specialname 
            instance default string get_StickyTag ()  cil managed 
     {
-        // Method begins at RVA 0x3728
+        // Method begins at RVA 0x3e74
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2069,11 +2133,11 @@
 	IL_000e:  ret 
     } // end of method UpdateTask::get_StickyTag
 
-    // method line 66
+    // method line 80
     .method public hidebysig specialname 
            instance default void set_StickyTag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3743
+        // Method begins at RVA 0x3e8f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2083,11 +2147,11 @@
 	IL_0008:  ret 
     } // end of method UpdateTask::set_StickyTag
 
-    // method line 67
+    // method line 81
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
     {
-        // Method begins at RVA 0x3750
+        // Method begins at RVA 0x3e9c
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -2107,11 +2171,11 @@
 	IL_0027:  ret 
     } // end of method UpdateTask::get_Date
 
-    // method line 68
+    // method line 82
     .method public hidebysig specialname 
            instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x3784
+        // Method begins at RVA 0x3ed0
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2128,11 +2192,11 @@
 	IL_0023:  ret 
     } // end of method UpdateTask::set_Date
 
-    // method line 69
+    // method line 83
     .method family virtual hidebysig specialname 
            instance default bool get_IsModuleNeeded ()  cil managed 
     {
-        // Method begins at RVA 0x37ac
+        // Method begins at RVA 0x3ef8
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -2146,11 +2210,11 @@
 	IL_0009:  ret 
     } // end of method UpdateTask::get_IsModuleNeeded
 
-    // method line 70
+    // method line 84
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x37c4
+        // Method begins at RVA 0x3f10
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -2256,408 +2320,6 @@
 
 .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 71
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x37de
-	// 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 72
-    .method public hidebysig specialname 
-           instance default bool get_NoShortening ()  cil managed 
-    {
-        // Method begins at RVA 0x37f0
-	// 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 73
-    .method public hidebysig specialname 
-           instance default void set_NoShortening (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x381f
-	// 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 74
-    .method public hidebysig specialname 
-           instance default bool get_ForceHead ()  cil managed 
-    {
-        // Method begins at RVA 0x3834
-	// 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 75
-    .method public hidebysig specialname 
-           instance default void set_ForceHead (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3863
-	// 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 76
-    .method public hidebysig specialname 
-           instance default bool get_Recursive ()  cil managed 
-    {
-        // Method begins at RVA 0x3878
-	// 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 77
-    .method public hidebysig specialname 
-           instance default void set_Recursive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x38a7
-	// 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 78
-    .method public hidebysig specialname 
-           instance default string get_Revision ()  cil managed 
-    {
-        // Method begins at RVA 0x38d0
-	// 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 79
-    .method public hidebysig specialname 
-           instance default void set_Revision (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x391c
-	// 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 80
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
-    {
-        // Method begins at RVA 0x396c
-	// 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 81
-    .method public hidebysig specialname 
-           instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        // Method begins at RVA 0x39a0
-	// 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 82
-    .method public hidebysig specialname 
-           instance default string get_OverrideDir ()  cil managed 
-    {
-        // Method begins at RVA 0x39c8
-	// 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 83
-    .method public hidebysig specialname 
-           instance default void set_OverrideDir (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x39f7
-	// 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 84
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
-    {
-        // Method begins at RVA 0x3a18
-	// 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
   {
@@ -3996,65 +3658,241 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
-  .class public auto ansi beforefieldinit RTagTask
-  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
+  .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 72 74 61 67 00 00 ) // ...cvs-rtag..
+    .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 _tag
-    .field private static literal  string CvsCommandName = "rtag"
+    .field  private  string _password
+    .field  private  class [mscorlib]System.IO.FileInfo _passFile
+    .field  private  string _cvsRoot
 
     // method line 122
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3a32
-	// Code size 8 (0x8)
+        // Method begins at RVA 0x3f2a
+	// Code size 7 (0x7)
 	.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
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method CvsPass::.ctor
 
     // method line 123
     .method public hidebysig specialname 
-           instance default string get_Tag ()  cil managed 
+           instance default string get_Password ()  cil managed 
     {
-        // Method begins at RVA 0x3a3c
+        // Method begins at RVA 0x3f34
 	// 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_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 RTagTask::get_Tag
+    } // end of method CvsPass::get_Password
 
     // method line 124
     .method public hidebysig specialname 
-           instance default void set_Tag (string 'value')  cil managed 
+           instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a57
+        // Method begins at RVA 0x3f4f
 	// 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_0003:  stfld string NAnt.SourceControl.Tasks.CvsPass::_password
 	IL_0008:  ret 
-    } // end of method RTagTask::set_Tag
+    } // end of method CvsPass::set_Password
 
     // method line 125
     .method public hidebysig specialname 
-           instance default bool get_Remove ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3f5c
+	// 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 126
+    .method public hidebysig specialname 
+           instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3f77
+	// 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 127
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x3f84
+	// 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 128
+    .method public hidebysig specialname 
+           instance default string get_Root ()  cil managed 
+    {
+        // Method begins at RVA 0x3fa4
+	// 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 129
+    .method public hidebysig specialname 
+           instance default void set_Root (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3fbf
+	// 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 130
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x3fc9
+	// 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 131
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x3fec
+    } // 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 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 132
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x4072
+	// 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 133
+    .method public hidebysig specialname 
+           instance default bool get_NoShortening ()  cil managed 
     {
-        // Method begins at RVA 0x3a64
+        // Method begins at RVA 0x4084
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -4062,7 +3900,7 @@
 	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_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()
@@ -4071,29 +3909,29 @@
 
 	IL_0021:  ldloc.0 
 	IL_0022:  ret 
-    } // end of method RTagTask::get_Remove
+    } // end of method ExportTask::get_NoShortening
 
-    // method line 126
+    // method line 134
     .method public hidebysig specialname 
-           instance default void set_Remove (bool 'value')  cil managed 
+           instance default void set_NoShortening (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a93
+        // Method begins at RVA 0x40b3
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "remove"
-	IL_0007:  ldstr "-d"
+	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 RTagTask::set_Remove
+    } // end of method ExportTask::set_NoShortening
 
-    // method line 127
+    // method line 135
     .method public hidebysig specialname 
-           instance default bool get_MoveIfExists ()  cil managed 
+           instance default bool get_ForceHead ()  cil managed 
     {
-        // Method begins at RVA 0x3aa8
+        // Method begins at RVA 0x40c8
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -4101,7 +3939,7 @@
 	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_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()
@@ -4110,29 +3948,29 @@
 
 	IL_0021:  ldloc.0 
 	IL_0022:  ret 
-    } // end of method RTagTask::get_MoveIfExists
+    } // end of method ExportTask::get_ForceHead
 
-    // method line 128
+    // method line 136
     .method public hidebysig specialname 
-           instance default void set_MoveIfExists (bool 'value')  cil managed 
+           instance default void set_ForceHead (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3ad7
+        // Method begins at RVA 0x40f7
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "move-if-exists"
-	IL_0007:  ldstr "-F"
+	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_MoveIfExists
+    } // end of method ExportTask::set_ForceHead
 
-    // method line 129
+    // method line 137
     .method public hidebysig specialname 
            instance default bool get_Recursive ()  cil managed 
     {
-        // Method begins at RVA 0x3aec
+        // Method begins at RVA 0x410c
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -4149,13 +3987,13 @@
 
 	IL_0021:  ldloc.0 
 	IL_0022:  ret 
-    } // end of method RTagTask::get_Recursive
+    } // end of method ExportTask::get_Recursive
 
-    // method line 130
+    // method line 138
     .method public hidebysig specialname 
            instance default void set_Recursive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b1b
+        // Method begins at RVA 0x413b
 	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4172,55 +4010,80 @@
 	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
+    } // end of method ExportTask::set_Recursive
 
-    // method line 131
+    // method line 139
     .method public hidebysig specialname 
-           instance default string get_ActOnTag ()  cil managed 
+           instance default string get_Revision ()  cil managed 
     {
-        // Method begins at RVA 0x3b44
-	// Code size 35 (0x23)
+        // Method begins at RVA 0x4164
+	// 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 "act-on-tag"
+	IL_0007:  ldstr "revision"
 	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_0011:  brtrue IL_001e
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method RTagTask::get_ActOnTag
+	IL_0016:  nop 
+	IL_0017:  ldnull 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_003e
 
-    // method line 132
+	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 140
     .method public hidebysig specialname 
-           instance default void set_ActOnTag (string 'value')  cil managed 
+           instance default void set_Revision (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b73
-	// Code size 30 (0x1e)
-	.maxstack 8
+        // Method begins at RVA 0x41b0
+	// Code size 66 (0x42)
+	.maxstack 5
 	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
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brfalse IL_0023
 
-    // method line 133
+	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 141
     .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
+           instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
     {
-        // Method begins at RVA 0x3b94
+        // Method begins at RVA 0x4200
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -4228,7 +4091,7 @@
 	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_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()
@@ -4238,20 +4101,20 @@
 
 	IL_0026:  ldloc.0 
 	IL_0027:  ret 
-    } // end of method RTagTask::get_ActOnDate
+    } // end of method ExportTask::get_Date
 
-    // method line 134
+    // method line 142
     .method public hidebysig specialname 
-           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+           instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x3bc8
+        // Method begins at RVA 0x4234
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "act-on-date"
+	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_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)
@@ -4259,130 +4122,89 @@
 	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
+    } // end of method ExportTask::set_Date
 
-    // method line 135
+    // method line 143
     .method public hidebysig specialname 
-           instance default bool get_ForceHead ()  cil managed 
+           instance default string get_OverrideDir ()  cil managed 
     {
-        // Method begins at RVA 0x3bf0
+        // Method begins at RVA 0x425c
 	// Code size 35 (0x23)
 	.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.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "force-head"
+	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 bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	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_ForceHead
+    } // end of method ExportTask::get_OverrideDir
 
-    // method line 136
+    // method line 144
     .method public hidebysig specialname 
-           instance default void set_ForceHead (bool 'value')  cil managed 
+           instance default void set_OverrideDir (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3c1f
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x428b
+	// Code size 30 (0x1e)
 	.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
+	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 137
+    // method line 145
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x3c34
+        // Method begins at RVA 0x42ac
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "rtag"
+	IL_0001:  ldstr "export"
 	IL_0006:  stloc.0 
 	IL_0007:  br IL_000c
 
 	IL_000c:  ldloc.0 
 	IL_000d:  ret 
-    } // end of method RTagTask::get_CommandName
-
-    // method line 138
-    .method family virtual hidebysig 
-           instance default void AppendSubCommandArgs ()  cil managed 
-    {
-        // Method begins at RVA 0x3c4e
-	// 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._\-]*$
+    } // end of method ExportTask::get_CommandName
 
-		.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 ()
+	.property instance bool NoShortening ()
 	{
 		.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.
+		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.RTagTask::get_Remove () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Remove (bool 'value') 
+		.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 MoveIfExists ()
+	.property instance bool ForceHead ()
 	{
 		.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.
+		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_MoveIfExists () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_MoveIfExists (bool 'value') 
+		.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 ()
 	{
@@ -4392,1109 +4214,1287 @@
 
 		.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') 
+		.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 ActOnTag ()
+	.property instance string Revision ()
 	{
 		.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.
+		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 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		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.RTagTask::get_ActOnTag () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ActOnTag (string 'value') 
+		.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 ActOnDate ()
+	.property instance valuetype [mscorlib]System.DateTime Date ()
 	{
 		.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.
+		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.RTagTask::get_ActOnDate () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ActOnDate (valuetype [mscorlib]System.DateTime 'value') 
+		.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 bool ForceHead ()
+	.property instance string OverrideDir ()
 	{
 		.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.
+		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.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.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 bool NAnt.SourceControl.Tasks.RTagTask::get_ForceHead () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ForceHead (bool 'value') 
+		.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.RTagTask::get_CommandName () 
+		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_CommandName () 
 	}
-  } // end of class NAnt.SourceControl.Tasks.RTagTask
+  } // end of class NAnt.SourceControl.Tasks.ExportTask
 }
 
 .namespace NAnt.SourceControl.Tasks
 {
-  .class public auto ansi beforefieldinit CvsPass
-  	extends [NAnt.Core]NAnt.Core.Task
+  .class public auto ansi abstract beforefieldinit AbstractSourceControlTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
-    .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 family static literal  string EnvHome = "HOME"
+    .field family static literal  string AppData = "APPDATA"
+    .field family static literal  string PathVariable = "PATH"
+    .field family static literal  string CvsPassFileVariable = "CVS_PASSFILE"
+    .field family static literal  string PropExeName = "sourcecontrol.exename"
+    .field  private  string _exeName
+    .field  private  string _root
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _destinationDirectory
     .field  private  string _password
     .field  private  class [mscorlib]System.IO.FileInfo _passFile
-    .field  private  string _cvsRoot
+    .field  private  string _commandName
+    .field  private  string _commandLine
+    .field  private  class [mscorlib]System.Collections.Hashtable _commandOptions
+    .field  private  string _commandLineArguments
+    .field  private  class [mscorlib]System.Collections.Hashtable _globalOptions
+    .field  private  class [mscorlib]System.IO.FileInfo _ssh
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _fileset
+    .field  private static initonly  class [log4net]log4net.ILog Logger
 
-    // method line 139
-    .method public hidebysig specialname rtspecialname 
+    // method line 146
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3c85
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x2050
+	// Code size 48 (0x30)
 	.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
+	IL_0001:  ldnull 
+	IL_0002:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLine
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandOptions
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0018:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_globalOptions
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0023:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::_fileset
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_002e:  nop 
+	IL_002f:  ret 
+    } // end of method AbstractSourceControlTask::.ctor
 
-    // method line 140
-    .method public hidebysig specialname 
-           instance default string get_Password ()  cil managed 
+    // method line 147
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_PassFileName ()  cil managed 
     {
-        // Method begins at RVA 0x3c90
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x0
+    } // end of method AbstractSourceControlTask::get_PassFileName
+
+    // method line 148
+    .method family hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_VcsHome ()  cil managed 
+    {
+        // Method begins at RVA 0x2084
+	// Code size 54 (0x36)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		string	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1)
 	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_0002:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHomeEnv()
+	IL_0007:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_000c:  stloc.0 
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CvsPass::get_Password
+	IL_000e:  brfalse IL_002d
 
-    // method line 141
-    .method public hidebysig specialname 
-           instance default void set_Password (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3cab
-	// 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
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_001a:  brfalse IL_002c
 
-    // method line 142
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3cb8
-	// 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_001f:  nop 
+	IL_0020:  ldloc.0 
+	IL_0021:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0026:  stloc.1 
+	IL_0027:  br IL_0034
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CvsPass::get_PassFile
+	IL_002c:  nop 
+	IL_002d:  ldnull 
+	IL_002e:  stloc.1 
+	IL_002f:  br IL_0034
 
-    // method line 143
-    .method public hidebysig specialname 
-           instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3cd3
-	// 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
+	IL_0034:  ldloc.1 
+	IL_0035:  ret 
+    } // end of method AbstractSourceControlTask::get_VcsHome
 
-    // method line 144
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
+    // method line 149
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_VcsHomeEnv ()  cil managed 
     {
-        // Method begins at RVA 0x3ce0
-	// 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
+        // Method begins at RVA 0x0
+    } // end of method AbstractSourceControlTask::get_VcsHomeEnv
 
-	IL_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method CvsPass::get_DestinationDirectory
+    // method line 150
+    .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 145
-    .method public hidebysig specialname 
+    // method line 151
+    .method public virtual hidebysig newslot specialname 
            instance default string get_Root ()  cil managed 
     {
-        // Method begins at RVA 0x3d00
+        // Method begins at RVA 0x20c8
 	// 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_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_root
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CvsPass::get_Root
+    } // end of method AbstractSourceControlTask::get_Root
 
-    // method line 146
-    .method public hidebysig specialname 
+    // method line 152
+    .method public virtual hidebysig newslot specialname 
            instance default void set_Root (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3d1b
+        // Method begins at RVA 0x20e3
 	// 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_0003:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_root
 	IL_0008:  ret 
-    } // end of method CvsPass::set_Root
-
-    // method line 147
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x3d25
-	// 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 148
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x3d48
-    } // 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 ChangeLogTask
-  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
-		01 00 0D 63 76 73 2D 63 68 61 6E 67 65 6C 6F 67   // ...cvs-changelog
-		00 00                                           ) // ..
-
-    .field private static literal  string CvsCommandName = "xml"
-
-    // method line 149
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3dce
-	// 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 ChangeLogTask::.ctor
+    } // end of method AbstractSourceControlTask::set_Root
 
-    // method line 150
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
+    // method line 153
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x3dd8
-	// Code size 69 (0x45)
+        // Method begins at RVA 0x20f0
+	// Code size 44 (0x2c)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	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 "destfile"
-	IL_000c:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_0011:  brtrue IL_001e
-
-	IL_0016:  nop 
-	IL_0017:  ldnull 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0043
-
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0024:  ldstr "destfile"
-	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:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_003d:  stloc.0 
-	IL_003e:  br IL_0043
-
-	IL_0043:  ldloc.0 
-	IL_0044:  ret 
-    } // end of method ChangeLogTask::get_DestFile
-
-    // method line 151
-    .method public hidebysig specialname 
-           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3e2c
-	// Code size 65 (0x41)
-	.maxstack 5
+		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.SourceControl.Tasks.AbstractSourceControlTask::get_DestinationDirectory()
-	IL_0007:  brtrue IL_001f
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
+	IL_0007:  brtrue IL_001e
 
 	IL_000c:  nop 
 	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	IL_0014:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0019:  callvirt instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_DestinationDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldstr "destfile"
-	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002a:  ldstr "\"-oxml\" \"{0}\""
-	IL_002f:  ldarg.1 
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	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:  ret 
-    } // end of method ChangeLogTask::set_DestFile
-
-    // method line 152
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_StartDate ()  cil managed 
-    {
-        // Method begins at RVA 0x3e7c
-	// 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 "start"
-	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_000e:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
+	IL_0013:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0018:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
+	IL_001d:  nop 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_002a
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method ChangeLogTask::get_StartDate
+	IL_002a:  ldloc.0 
+	IL_002b:  ret 
+    } // end of method AbstractSourceControlTask::get_DestinationDirectory
 
-    // method line 153
-    .method public hidebysig specialname 
-           instance default void set_StartDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    // method line 154
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3eb0
-	// Code size 36 (0x24)
+        // Method begins at RVA 0x2128
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "start"
-	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 ChangeLogTask::set_StartDate
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_destinationDirectory
+	IL_0008:  ret 
+    } // end of method AbstractSourceControlTask::set_DestinationDirectory
 
-    // method line 154
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_EndDate ()  cil managed 
+    // method line 155
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Password ()  cil managed 
     {
-        // Method begins at RVA 0x3ed8
-	// Code size 40 (0x28)
-	.maxstack 2
+        // Method begins at RVA 0x2134
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		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 "end"
-	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 ChangeLogTask::get_EndDate
+	IL_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_password
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 155
-    .method public hidebysig specialname 
-           instance default void set_EndDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3f0c
-	// Code size 36 (0x24)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "end"
-	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 ChangeLogTask::set_EndDate
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_Password
 
     // method line 156
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3f34
+        // Method begins at RVA 0x214f
 	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldstr "xml"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
+	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.SourceControl.Tasks.AbstractSourceControlTask::_password
 	IL_000d:  ret 
-    } // end of method ChangeLogTask::get_CommandName
+    } // end of method AbstractSourceControlTask::set_Password
 
     // method line 157
-    .method public virtual hidebysig specialname 
-           instance default bool get_UseSharpCvsLib ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
     {
-        // Method begins at RVA 0x3f50
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x2160
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	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:  ldfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_passFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ChangeLogTask::get_UseSharpCvsLib
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_PassFile
 
     // method line 158
-    .method public virtual hidebysig specialname 
-           instance default void set_UseSharpCvsLib (bool 'value')  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3f66
-	// Code size 2 (0x2)
+        // Method begins at RVA 0x217b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ChangeLogTask::set_UseSharpCvsLib
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_passFile
+	IL_0008:  ret 
+    } // end of method AbstractSourceControlTask::set_PassFile
 
     // method line 159
-    .method public virtual hidebysig specialname 
-           instance default string get_Root ()  cil managed 
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_GlobalOptions ()  cil managed 
     {
-        // Method begins at RVA 0x3f6c
-    } // end of method ChangeLogTask::get_Root
+        // Method begins at RVA 0x2188
+	// 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.SourceControl.Tasks.AbstractSourceControlTask::_globalOptions
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_GlobalOptions
 
     // method line 160
-    .method public virtual hidebysig specialname 
-           instance default void set_Root (string 'value')  cil managed 
+    .method public hidebysig specialname 
+           instance default void set_GlobalOptions (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
     {
-        // Method begins at RVA 0x3ff8
+        // Method begins at RVA 0x21a3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::set_Root(string)
+	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_globalOptions
 	IL_0008:  ret 
-    } // end of method ChangeLogTask::set_Root
-
-	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 78 6D 6C 66 69 6C 65 01 00 54 02 08 52   // ...xmlfile..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.ChangeLogTask::get_DestFile () 
-		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_DestFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime StartDate ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 73 74 61 72 74 01 00 54 02 08 52 65 71   // ...start..T..Req
-		75 69 72 65 64 01                               ) // uired.
-
-		.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.ChangeLogTask::get_StartDate () 
-		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_StartDate (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime EndDate ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 65 6E 64 01 00 54 02 08 52 65 71 75 69   // ...end..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.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.ChangeLogTask::get_EndDate () 
-		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_EndDate (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance string CommandName ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.ChangeLogTask::get_CommandName () 
-	}
-	.property instance bool UseSharpCvsLib ()
-	{
-		.get instance default bool NAnt.SourceControl.Tasks.ChangeLogTask::get_UseSharpCvsLib () 
-		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_UseSharpCvsLib (bool 'value') 
-	}
-	.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.
-
-		.get instance default string NAnt.SourceControl.Tasks.ChangeLogTask::get_Root () 
-		.set instance default void NAnt.SourceControl.Tasks.ChangeLogTask::set_Root (string 'value') 
-	}
-  } // end of class NAnt.SourceControl.Tasks.ChangeLogTask
-}
-
-.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"
+    } // end of method AbstractSourceControlTask::set_GlobalOptions
 
     // method line 161
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x4002
-	// 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 162
     .method public hidebysig specialname 
-           instance default string get_Tag ()  cil managed 
+           instance default class [mscorlib]System.Collections.Hashtable get_CommandOptions ()  cil managed 
     {
-        // Method begins at RVA 0x400c
+        // Method begins at RVA 0x21b0
 	// 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.SourceControl.Tasks.TagTask::_tag
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandOptions
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TagTask::get_Tag
+    } // end of method AbstractSourceControlTask::get_CommandOptions
 
-    // method line 163
+    // method line 162
     .method public hidebysig specialname 
-           instance default void set_Tag (string 'value')  cil managed 
+           instance default void set_CommandOptions (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
     {
-        // Method begins at RVA 0x4027
+        // Method begins at RVA 0x21cb
 	// 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_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandOptions
 	IL_0008:  ret 
-    } // end of method TagTask::set_Tag
+    } // end of method AbstractSourceControlTask::set_CommandOptions
 
-    // method line 164
+    // method line 163
     .method public hidebysig specialname 
-           instance default bool get_Remove ()  cil managed 
+           instance default string get_CommandLineArguments ()  cil managed 
     {
-        // Method begins at RVA 0x4034
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x21d8
+	// 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 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_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLineArguments
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_Remove
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_CommandLineArguments
 
-    // method line 165
+    // method line 164
     .method public hidebysig specialname 
-           instance default void set_Remove (bool 'value')  cil managed 
+           instance default void set_CommandLineArguments (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4063
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x21f3
+	// Code size 14 (0xe)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLineArguments
+	IL_000d:  ret 
+    } // end of method AbstractSourceControlTask::set_CommandLineArguments
 
-    // method line 166
-    .method public hidebysig specialname 
-           instance default bool get_MoveIfExists ()  cil managed 
+    // method line 165
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x4078
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x2204
+	// 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 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_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_MoveIfExists
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_CommandName
 
-    // method line 167
-    .method public hidebysig specialname 
-           instance default void set_MoveIfExists (bool 'value')  cil managed 
+    // method line 166
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_CommandName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x40a7
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x221f
+	// Code size 9 (0x9)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandName
+	IL_0008:  ret 
+    } // end of method AbstractSourceControlTask::set_CommandName
 
-    // method line 168
-    .method public hidebysig specialname 
-           instance default bool get_Recursive ()  cil managed 
+    // method line 167
+    .method public virtual hidebysig newslot specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_VcsFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x40bc
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x222c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.FileSet	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_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::_fileset
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_Recursive
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_VcsFileSet
 
-    // method line 169
-    .method public hidebysig specialname 
-           instance default void set_Recursive (bool 'value')  cil managed 
+    // method line 168
+    .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 0x40eb
-	// Code size 39 (0x27)
+        // Method begins at RVA 0x2247
+	// Code size 9 (0x9)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::_fileset
+	IL_0008:  ret 
+    } // end of method AbstractSourceControlTask::set_VcsFileSet
 
-    // method line 170
-    .method public hidebysig specialname 
-           instance default string get_ActOnTag ()  cil managed 
+    // method line 169
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Ssh ()  cil managed 
     {
-        // Method begins at RVA 0x4114
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x2254
+	// 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:  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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_ssh
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_ActOnTag
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_Ssh
 
-    // method line 171
-    .method public hidebysig specialname 
-           instance default void set_ActOnTag (string 'value')  cil managed 
+    // method line 170
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Ssh (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4143
-	// Code size 30 (0x1e)
+        // Method begins at RVA 0x226f
+	// Code size 9 (0x9)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::_ssh
+	IL_0008:  ret 
+    } // end of method AbstractSourceControlTask::set_Ssh
+
+    // method line 171
+    .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 172
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
+    .method public virtual hidebysig specialname 
+           instance default string get_ExeName ()  cil managed 
     {
-        // Method begins at RVA 0x4164
-	// Code size 40 (0x28)
-	.maxstack 2
+        // Method begins at RVA 0x227c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		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-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_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_exeName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method TagTask::get_ActOnDate
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_ExeName
 
     // method line 173
-    .method public hidebysig specialname 
-           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    .method public virtual hidebysig specialname 
+           instance default void set_ExeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4198
-	// Code size 36 (0x24)
+        // Method begins at RVA 0x2297
+	// Code size 9 (0x9)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_exeName
+	IL_0008:  ret 
+    } // end of method AbstractSourceControlTask::set_ExeName
 
     // method line 174
-    .method public hidebysig specialname 
-           instance default bool get_ForceHead ()  cil managed 
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x41c0
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x22a4
+	// 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 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_0002:  ldfld string NAnt.SourceControl.Tasks.AbstractSourceControlTask::_commandLine
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_ForceHead
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AbstractSourceControlTask::get_ProgramArguments
 
     // method line 175
-    .method public hidebysig specialname 
-           instance default void set_ForceHead (bool 'value')  cil managed 
+    .method family virtual hidebysig 
+           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x41ef
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x22bf
+	// Code size 16 (0x10)
 	.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
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  callvirt instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetEnvironment(class [System]System.Diagnostics.Process)
+	IL_000f:  ret 
+    } // end of method AbstractSourceControlTask::PrepareProcess
 
     // method line 176
-    .method public hidebysig specialname 
-           instance default bool get_FailIfModified ()  cil managed 
+    .method family hidebysig 
+           instance default void SetGlobalOption (string name, string 'value', bool 'on')  cil managed 
     {
-        // Method begins at RVA 0x4204
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x22d0
+	// Code size 174 (0xae)
+	.maxstack 7
 	.locals init (
-		bool	V_0)
+		class [NAnt.Core]NAnt.Core.Types.Option	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_0002:  ldc.i4 1000
+	IL_0007:  ldstr "Name: {0}"
+	IL_000c:  ldc.i4.1 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  stelem.ref 
+	IL_0016:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_001b:  ldarg.0 
+	IL_001c:  ldc.i4 1000
+	IL_0021:  ldstr "Value: {0}"
+	IL_0026:  ldc.i4.1 
+	IL_0027:  newarr [mscorlib]System.Object
+	IL_002c:  dup 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  ldarg.2 
+	IL_002f:  stelem.ref 
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0035:  ldarg.0 
+	IL_0036:  ldc.i4 1000
+	IL_003b:  ldstr "On: {0}"
+	IL_0040:  ldc.i4.1 
+	IL_0041:  newarr [mscorlib]System.Object
+	IL_0046:  dup 
+	IL_0047:  ldc.i4.0 
+	IL_0048:  ldarg.3 
+	IL_0049:  box [mscorlib]System.Boolean
+	IL_004e:  stelem.ref 
+	IL_004f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0054:  ldarg.0 
+	IL_0055:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions()
+	IL_005a:  ldarg.1 
+	IL_005b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_0060:  brfalse IL_007e
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_FailIfModified
+	IL_0065:  nop 
+	IL_0066:  ldarg.0 
+	IL_0067:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions()
+	IL_006c:  ldarg.1 
+	IL_006d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0072:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0077:  stloc.0 
+	IL_0078:  nop 
+	IL_0079:  br IL_00a6
+
+	IL_007e:  nop 
+	IL_007f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Option::'.ctor'()
+	IL_0084:  stloc.0 
+	IL_0085:  ldloc.0 
+	IL_0086:  ldarg.1 
+	IL_0087:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_OptionName(string)
+	IL_008c:  ldloc.0 
+	IL_008d:  ldarg.2 
+	IL_008e:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_Value(string)
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions()
+	IL_0099:  ldloc.0 
+	IL_009a:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	IL_009f:  ldloc.0 
+	IL_00a0:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_00a5:  nop 
+	IL_00a6:  ldloc.0 
+	IL_00a7:  ldarg.3 
+	IL_00a8:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_IfDefined(bool)
+	IL_00ad:  ret 
+    } // end of method AbstractSourceControlTask::SetGlobalOption
 
     // method line 177
-    .method public hidebysig specialname 
-           instance default void set_FailIfModified (bool 'value')  cil managed 
+    .method family hidebysig 
+           instance default void SetCommandOption (string name, string 'value', bool 'on')  cil managed 
     {
-        // Method begins at RVA 0x4233
-	// Code size 19 (0x13)
-	.maxstack 8
+        // Method begins at RVA 0x238c
+	// Code size 86 (0x56)
+	.maxstack 3
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.Option	V_0)
 	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
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_000d:  brfalse IL_002b
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_001f:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0024:  stloc.0 
+	IL_0025:  nop 
+	IL_0026:  br IL_004e
+
+	IL_002b:  nop 
+	IL_002c:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Option::'.ctor'()
+	IL_0031:  stloc.0 
+	IL_0032:  ldloc.0 
+	IL_0033:  ldarg.1 
+	IL_0034:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_OptionName(string)
+	IL_0039:  ldloc.0 
+	IL_003a:  ldarg.2 
+	IL_003b:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_Value(string)
+	IL_0040:  ldarg.0 
+	IL_0041:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0046:  ldarg.1 
+	IL_0047:  ldloc.0 
+	IL_0048:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_004d:  nop 
+	IL_004e:  ldloc.0 
+	IL_004f:  ldarg.3 
+	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.Option::set_IfDefined(bool)
+	IL_0055:  ret 
+    } // end of method AbstractSourceControlTask::SetCommandOption
 
     // method line 178
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
+    .method family virtual hidebysig newslot 
+           instance default void SetEnvironment (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x4248
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x23f0
+	// Code size 392 (0x188)
+	.maxstack 8
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0,
+		class [mscorlib]System.ArgumentException	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldstr "tag"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
+	IL_0007:  brfalse IL_006d
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TagTask::get_CommandName
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
+	IL_0012:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0017:  brtrue IL_006d
+
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldstr "PATH"
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
+	IL_0029:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_002e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
+	IL_0033:  stloc.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  brtrue IL_005d
+
+	IL_003a:  nop 
+	IL_003b:  ldarg.0 
+	IL_003c:  ldstr "PATH"
+	IL_0041:  ldarg.0 
+	IL_0042:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
+	IL_0047:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_004c:  ldstr ".exe"
+	IL_0051:  call string string::Concat(string, string)
+	IL_0056:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
+	IL_005b:  stloc.0 
+	IL_005c:  nop 
+	IL_005d:  ldloc.0 
+	IL_005e:  brfalse IL_006c
+
+	IL_0063:  nop 
+	IL_0064:  ldarg.0 
+	IL_0065:  ldloc.0 
+	IL_0066:  callvirt instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Ssh(class [mscorlib]System.IO.FileInfo)
+	IL_006b:  nop 
+	IL_006c:  nop 
+	IL_006d:  ldarg.0 
+	IL_006e:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
+	IL_0073:  brfalse IL_00ba
+
+	IL_0078:  nop 
+	.try { // 0
+	  IL_0079:  nop 
+	  IL_007a:  ldarg.1 
+	  IL_007b:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0080:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_0085:  ldarg.0 
+	  IL_0086:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_SshEnv()
+	  IL_008b:  ldarg.0 
+	  IL_008c:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh()
+	  IL_0091:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0096:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
+	  IL_009b:  nop 
+	  IL_009c:  leave IL_00b9
+
+	} // end .try 0
+	catch class [mscorlib]System.ArgumentException { // 0
+	  IL_00a1:  stloc.1 
+	  IL_00a2:  nop 
+	  IL_00a3:  ldsfld class [log4net]log4net.ILog NAnt.SourceControl.Tasks.AbstractSourceControlTask::Logger
+	  IL_00a8:  ldstr "Possibility cvs_rsh key has already been added."
+	  IL_00ad:  ldloc.1 
+	  IL_00ae:  callvirt instance void class [log4net]log4net.ILog::Warn(object, class [mscorlib]System.Exception)
+	  IL_00b3:  nop 
+	  IL_00b4:  leave IL_00b9
+
+	} // end handler 0
+	IL_00b9:  nop 
+	IL_00ba:  ldarg.0 
+	IL_00bb:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile()
+	IL_00c0:  brfalse IL_012a
+
+	IL_00c5:  nop 
+	IL_00c6:  ldarg.1 
+	IL_00c7:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00cc:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	IL_00d1:  ldstr "CVS_PASSFILE"
+	IL_00d6:  callvirt instance bool class [System]System.Collections.Specialized.StringDictionary::ContainsKey(string)
+	IL_00db:  brfalse IL_0107
+
+	IL_00e0:  nop 
+	IL_00e1:  ldarg.1 
+	IL_00e2:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00e7:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	IL_00ec:  ldstr "CVS_PASSFILE"
+	IL_00f1:  ldarg.0 
+	IL_00f2:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile()
+	IL_00f7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00fc:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	IL_0101:  nop 
+	IL_0102:  br IL_0129
+
+	IL_0107:  nop 
+	IL_0108:  ldarg.1 
+	IL_0109:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_010e:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	IL_0113:  ldstr "CVS_PASSFILE"
+	IL_0118:  ldarg.0 
+	IL_0119:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile()
+	IL_011e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0123:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
+	IL_0128:  nop 
+	IL_0129:  nop 
+	IL_012a:  ldarg.0 
+	IL_012b:  ldc.i4 2000
+	IL_0130:  ldstr "Using ssh binary: {0}"
+	IL_0135:  ldc.i4.1 
+	IL_0136:  newarr [mscorlib]System.Object
+	IL_013b:  dup 
+	IL_013c:  ldc.i4.0 
+	IL_013d:  ldarg.1 
+	IL_013e:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_0143:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	IL_0148:  ldarg.0 
+	IL_0149:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_SshEnv()
+	IL_014e:  callvirt instance string class [System]System.Collections.Specialized.StringDictionary::get_Item(string)
+	IL_0153:  stelem.ref 
+	IL_0154:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0159:  ldarg.0 
+	IL_015a:  ldc.i4 2000
+	IL_015f:  ldstr "Using .cvspass file: {0}"
+	IL_0164:  ldc.i4.1 
+	IL_0165:  newarr [mscorlib]System.Object
+	IL_016a:  dup 
+	IL_016b:  ldc.i4.0 
+	IL_016c:  ldarg.1 
+	IL_016d:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_0172:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	IL_0177:  ldstr "CVS_PASSFILE"
+	IL_017c:  callvirt instance string class [System]System.Collections.Specialized.StringDictionary::get_Item(string)
+	IL_0181:  stelem.ref 
+	IL_0182:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0187:  ret 
+    } // end of method AbstractSourceControlTask::SetEnvironment
 
     // method line 179
-    .method public virtual hidebysig specialname 
-           instance default string get_Module ()  cil managed 
+    .method family hidebysig 
+           instance default void AppendFiles ()  cil managed 
     {
-        // Method begins at RVA 0x4264
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x2594
+	// Code size 187 (0xbb)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		string	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsFileSet()
+	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_000d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0012:  stloc.1 
+	.try { // 0
+	  IL_0013:  br IL_0096
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method TagTask::get_Module
+	  IL_0018:  ldloc.1 
+	  IL_0019:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_001e:  stloc.0 
+	  IL_001f:  nop 
+	  IL_0020:  ldloc.0 
+	  IL_0021:  ldarg.0 
+	  IL_0022:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_DestinationDirectory()
+	  IL_0027:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_002c:  ldstr ""
+	  IL_0031:  callvirt instance string string::Replace(string, string)
+	  IL_0036:  stloc.2 
+	  IL_0037:  ldloc.2 
+	  IL_0038:  ldc.i4.s 0x2f
+	  IL_003a:  callvirt instance int32 string::IndexOf(char)
+	  IL_003f:  brfalse IL_0051
+
+	  IL_0044:  ldloc.2 
+	  IL_0045:  ldc.i4.s 0x5c
+	  IL_0047:  callvirt instance int32 string::IndexOf(char)
+	  IL_004c:  brtrue IL_0063
+
+	  IL_0051:  nop 
+	  IL_0052:  ldloc.2 
+	  IL_0053:  ldc.i4.1 
+	  IL_0054:  ldloc.2 
+	  IL_0055:  callvirt instance int32 string::get_Length()
+	  IL_005a:  ldc.i4.1 
+	  IL_005b:  sub 
+	  IL_005c:  callvirt instance string string::Substring(int32, int32)
+	  IL_0061:  stloc.2 
+	  IL_0062:  nop 
+	  IL_0063:  ldloc.2 
+	  IL_0064:  ldstr "\\"
+	  IL_0069:  ldstr "/"
+	  IL_006e:  callvirt instance string string::Replace(string, string)
+	  IL_0073:  stloc.2 
+	  IL_0074:  ldarg.0 
+	  IL_0075:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	  IL_007a:  ldstr "\""
+	  IL_007f:  ldloc.2 
+	  IL_0080:  ldstr "\""
+	  IL_0085:  call string string::Concat(string, string, string)
+	  IL_008a:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	  IL_008f:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	  IL_0094:  pop 
+	  IL_0095:  nop 
+	  IL_0096:  ldloc.1 
+	  IL_0097:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_009c:  brtrue IL_0018
+
+	  IL_00a1:  leave IL_00ba
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00a6:  ldloc.1 
+	  IL_00a7:  isinst [mscorlib]System.IDisposable
+	  IL_00ac:  dup 
+	  IL_00ad:  stloc.3 
+	  IL_00ae:  brfalse IL_00b9
+
+	  IL_00b3:  ldloc.3 
+	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b9:  endfinally 
+	} // end handler 0
+	IL_00ba:  ret 
+    } // end of method AbstractSourceControlTask::AppendFiles
 
     // method line 180
-    .method public virtual hidebysig specialname 
-           instance default void set_Module (string 'value')  cil managed 
+    .method family hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo DeriveVcsFromEnvironment ()  cil managed 
     {
-        // Method begins at RVA 0x427a
-	// Code size 2 (0x2)
-	.maxstack 8
+        // Method begins at RVA 0x266c
+	// Code size 55 (0x37)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1)
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method TagTask::set_Module
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHomeEnv()
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsExeName()
+	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
+	IL_0013:  stloc.0 
+	IL_0014:  ldloc.0 
+	IL_0015:  brtrue IL_002e
+
+	IL_001a:  nop 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldstr "PATH"
+	IL_0021:  ldarg.0 
+	IL_0022:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsExeName()
+	IL_0027:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.AbstractSourceControlTask::DeriveFullPathFromEnv(string, string)
+	IL_002c:  stloc.0 
+	IL_002d:  nop 
+	IL_002e:  ldloc.0 
+	IL_002f:  stloc.1 
+	IL_0030:  br IL_0035
+
+	IL_0035:  ldloc.1 
+	IL_0036:  ret 
+    } // end of method AbstractSourceControlTask::DeriveVcsFromEnvironment
 
     // method line 181
-    .method family virtual hidebysig 
-           instance default void AppendSubCommandArgs ()  cil managed 
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo DeriveFullPathFromEnv (string environmentVar, string fileName)  cil managed 
     {
-        // Method begins at RVA 0x427d
-	// Code size 54 (0x36)
-	.maxstack 8
+        // Method begins at RVA 0x26b0
+	// Code size 391 (0x187)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string[]	V_1,
+		string	V_2,
+		string[]	V_3,
+		int32	V_4,
+		string	V_5,
+		string	V_6,
+		class [mscorlib]System.IO.FileInfo	V_7)
 	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_0001:  ldarg.1 
+	IL_0002:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_0007:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldc.i4 1000
+	IL_0013:  ldstr "Environment variable: {0}"
+	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:  stelem.ref 
+	IL_0022:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0027:  ldarg.0 
+	IL_0028:  ldc.i4 1000
+	IL_002d:  ldstr "Environment value: {0}"
+	IL_0032:  ldc.i4.1 
+	IL_0033:  newarr [mscorlib]System.Object
+	IL_0038:  dup 
+	IL_0039:  ldc.i4.0 
+	IL_003a:  ldloc.0 
+	IL_003b:  stelem.ref 
+	IL_003c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0041:  ldloc.0 
+	IL_0042:  brfalse IL_017c
 
-	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_0047:  nop 
+	IL_0048:  ldloc.0 
+	IL_0049:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
+	IL_004e:  ldc.i4.0 
+	IL_004f:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0054:  stloc.1 
+	IL_0055:  nop 
+	IL_0056:  ldloc.1 
+	IL_0057:  stloc.3 
+	IL_0058:  ldc.i4.0 
+	IL_0059:  stloc.s 4
+	IL_005b:  br IL_0171
 
-	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
+	IL_0060:  ldloc.3 
+	IL_0061:  ldloc.s 4
+	IL_0063:  ldelem.ref 
+	IL_0064:  stloc.2 
+	IL_0065:  nop 
+	IL_0066:  ldloc.2 
+	IL_0067:  brtrue IL_0072
+
+	IL_006c:  nop 
+	IL_006d:  br IL_016b
+
+	IL_0072:  ldloc.2 
+	IL_0073:  ldc.i4.s 0x22
+	IL_0075:  callvirt instance string string::Trim(char)
+	IL_007a:  stloc.s 5
+	IL_007c:  ldarg.0 
+	IL_007d:  ldc.i4 1000
+	IL_0082:  ldstr "Environment Path: {0}"
+	IL_0087:  ldc.i4.1 
+	IL_0088:  newarr [mscorlib]System.Object
+	IL_008d:  dup 
+	IL_008e:  ldc.i4.0 
+	IL_008f:  ldloc.s 5
+	IL_0091:  stelem.ref 
+	IL_0092:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0097:  ldarg.0 
+	IL_0098:  ldc.i4 1000
+	IL_009d:  ldstr "FileName: {0}"
+	IL_00a2:  ldc.i4.1 
+	IL_00a3:  newarr [mscorlib]System.Object
+	IL_00a8:  dup 
+	IL_00a9:  ldc.i4.0 
+	IL_00aa:  ldarg.2 
+	IL_00ab:  stelem.ref 
+	IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00b1:  ldloc.s 5
+	IL_00b3:  ldarg.2 
+	IL_00b4:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_00b9:  stloc.s 6
+	IL_00bb:  ldarg.0 
+	IL_00bc:  ldc.i4 1000
+	IL_00c1:  ldstr "FileFullName: {0}"
+	IL_00c6:  ldc.i4.1 
+	IL_00c7:  newarr [mscorlib]System.Object
+	IL_00cc:  dup 
+	IL_00cd:  ldc.i4.0 
+	IL_00ce:  ldloc.s 6
+	IL_00d0:  stelem.ref 
+	IL_00d1:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00d6:  ldloc.2 
+	IL_00d7:  ldarg.2 
+	IL_00d8:  callvirt instance int32 string::IndexOf(string)
+	IL_00dd:  ldc.i4.m1 
+	IL_00de:  ble IL_011e
+
+	IL_00e3:  ldarg.2 
+	IL_00e4:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_00e9:  brfalse IL_011e
+
+	IL_00ee:  nop 
+	IL_00ef:  ldarg.2 
+	IL_00f0:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00f5:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_00fa:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
+	IL_00ff:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0104:  callvirt instance int32 string::IndexOf(string)
+	IL_0109:  ldc.i4.1 
+	IL_010a:  bgt IL_011d
+
+	IL_010f:  nop 
+	IL_0110:  ldarg.2 
+	IL_0111:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0116:  stloc.s 7
+	IL_0118:  br IL_0184
+
+	IL_011d:  nop 
+	IL_011e:  ldloc.s 6
+	IL_0120:  ldarg.2 
+	IL_0121:  callvirt instance int32 string::IndexOf(string)
+	IL_0126:  ldc.i4.m1 
+	IL_0127:  ble IL_016a
+
+	IL_012c:  ldloc.s 6
+	IL_012e:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0133:  brfalse IL_016a
+
+	IL_0138:  nop 
+	IL_0139:  ldloc.s 6
+	IL_013b:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0140:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0145:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
+	IL_014a:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_014f:  callvirt instance int32 string::IndexOf(string)
+	IL_0154:  ldc.i4.m1 
+	IL_0155:  bne.un IL_0169
+
+	IL_015a:  nop 
+	IL_015b:  ldloc.s 6
+	IL_015d:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0162:  stloc.s 7
+	IL_0164:  br IL_0184
+
+	IL_0169:  nop 
+	IL_016a:  nop 
+	IL_016b:  ldloc.s 4
+	IL_016d:  ldc.i4.1 
+	IL_016e:  add 
+	IL_016f:  stloc.s 4
+	IL_0171:  ldloc.s 4
+	IL_0173:  ldloc.3 
+	IL_0174:  ldlen 
+	IL_0175:  conv.i4 
+	IL_0176:  blt IL_0060
+
+	IL_017b:  nop 
+	IL_017c:  ldnull 
+	IL_017d:  stloc.s 7
+	IL_017f:  br IL_0184
+
+	IL_0184:  ldloc.s 7
+	IL_0186:  ret 
+    } // end of method AbstractSourceControlTask::DeriveFullPathFromEnv
 
     // method line 182
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsModuleNeeded ()  cil managed 
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x42b4
-	// 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
+        // Method begins at RVA 0x2843
+	// 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.SourceControl.Tasks.AbstractSourceControlTask::Logger
+	IL_0014:  ret 
+    } // end of method AbstractSourceControlTask::.cctor
 
-	.property instance string Tag ()
+	.property instance string PassFileName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFileName () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo VcsHome ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHome () 
+	}
+	.property instance string VcsHomeEnv ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsHomeEnv () 
+	}
+	.property instance string VcsExeName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsExeName () 
+	}
+	.property instance string Root ()
 	{
-		.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._\-]*$
+		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.TagTask::get_Tag () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Tag (string 'value') 
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Root () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Root (string 'value') 
 	}
-	.property instance bool Remove ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo DestinationDirectory ()
 	{
 		.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 ) // ....
+		01 00 0B 64 65 73 74 69 6E 61 74 69 6F 6E 01 00   // ...destination..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
 
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_Remove () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Remove (bool 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_DestinationDirectory () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance bool MoveIfExists ()
+	.property instance string Password ()
 	{
 		.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.
+		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]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1C 55 73 65 20 3C 63 76 73 2D 70 61 73 73   // ...Use <cvs-pass
+		3E 20 74 61 73 6B 20 69 6E 73 74 65 61 64 2E 01   // > task instead..
+		00 00                                           ) // ..
 
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_MoveIfExists () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_MoveIfExists (bool 'value') 
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Password () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Password (string 'value') 
 	}
-	.property instance bool Recursive ()
+	.property instance class [mscorlib]System.IO.FileInfo PassFile ()
 	{
-		.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 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 61 73 73 66 69 6C 65 00 00 ) // ...passfile..
 
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_Recursive () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Recursive (bool 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_PassFile () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_PassFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string ActOnTag ()
+	.property instance class [mscorlib]System.Collections.Hashtable GlobalOptions ()
 	{
-		.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') 
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_GlobalOptions () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_GlobalOptions (class [mscorlib]System.Collections.Hashtable 'value') 
 	}
-	.property instance valuetype [mscorlib]System.DateTime ActOnDate ()
+	.property instance class [mscorlib]System.Collections.Hashtable CommandOptions ()
 	{
-		.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') 
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_CommandOptions (class [mscorlib]System.Collections.Hashtable 'value') 
 	}
-	.property instance bool ForceHead ()
+	.property instance string CommandLineArguments ()
 	{
 		.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.
+		01 00 0B 63 6F 6D 6D 61 6E 64 6C 69 6E 65 00 00 ) // ...commandline..
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandLineArguments () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_CommandLineArguments (string 'value') 
+	}
+	.property instance string CommandName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandName () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_CommandName (string 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet VcsFileSet ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_ForceHead () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ForceHead (bool 'value') 
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_VcsFileSet () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_VcsFileSet (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
 	}
-	.property instance bool FailIfModified ()
+	.property instance class [mscorlib]System.IO.FileInfo Ssh ()
 	{
 		.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 ) // ....
+		01 00 03 73 73 68 01 00 54 02 08 52 65 71 75 69   // ...ssh..T..Requi
+		72 65 64 00                                     ) // red.
 
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_FailIfModified () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_FailIfModified (bool 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_Ssh () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_Ssh (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string CommandName ()
+	.property instance string SshEnv ()
 	{
-		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_CommandName () 
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_SshEnv () 
 	}
-	.property instance string Module ()
+	.property instance string ExeName ()
 	{
-		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Module () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Module (string 'value') 
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_ExeName () 
+		.set instance default void NAnt.SourceControl.Tasks.AbstractSourceControlTask::set_ExeName (string 'value') 
 	}
-	.property instance bool IsModuleNeeded ()
+	.property instance string ProgramArguments ()
 	{
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_IsModuleNeeded () 
+		.get instance default string NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_ProgramArguments () 
 	}
-  } // end of class NAnt.SourceControl.Tasks.TagTask
+  } // end of class NAnt.SourceControl.Tasks.AbstractSourceControlTask
 }
 
 .namespace NAnt.SourceControl.Types
@@ -5510,7 +5510,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x42ca
+        // Method begins at RVA 0x42c6
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5525,7 +5525,7 @@
     .method public hidebysig specialname 
            instance default bool get_UseCvsIgnore ()  cil managed 
     {
-        // Method begins at RVA 0x42dc
+        // Method begins at RVA 0x42d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5544,7 +5544,7 @@
     .method public hidebysig specialname 
            instance default void set_UseCvsIgnore (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x42f7
+        // Method begins at RVA 0x42f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5558,7 +5558,7 @@
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x4304
+        // Method begins at RVA 0x4300
 	// Code size 116 (0x74)
 	.maxstack 3
 	.locals init (
@@ -5625,7 +5625,7 @@
     .method private hidebysig 
            instance default void ScanCvsIgnores (class [mscorlib]System.IO.DirectoryInfo dir, class [mscorlib]System.Collections.ArrayList ignoreFiles)  cil managed 
     {
-        // Method begins at RVA 0x4394
+        // Method begins at RVA 0x4390
 	// Code size 99 (0x63)
 	.maxstack 3
 	.locals init (
@@ -5700,7 +5700,7 @@
     .method private hidebysig 
            instance default void AddCvsIgnores (class [mscorlib]System.IO.FileInfo file, class [mscorlib]System.Collections.ArrayList ignoreFiles)  cil managed 
     {
-        // Method begins at RVA 0x4404
+        // Method begins at RVA 0x4400
 	// Code size 127 (0x7f)
 	.maxstack 4
 	.locals init (
/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
@@ -4,6 +4,84 @@
         <name>NAnt.SourceControlTasks</name>
     </assembly>
     <members>
+        <member name="T:NAnt.SourceControl.Tasks.ChangeLogTask">
+             <summary>
+             Produces an XML report that represents the cvs changes from the given 
+             start day, to a given end date.
+             </summary>
+             <example>
+               <para>Report changes in NAnt from 1st of June 2004 until 25th of July 2004.</para>
+               <code>
+                 <![CDATA[
+             <cvs-changelog
+                 destination="e:/test/nant/sourcecontrol/"
+                 cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant"
+                 module="nant"
+                 start="2004/06/01"
+                 end="2004/07/25"
+                 xmlfile="e:/test/nant/sourcecontrol/changelog-nant.xml"
+             />
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="F:NAnt.SourceControl.Tasks.ChangeLogTask.CvsCommandName">
+             <summary>
+             The command being executed.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.ChangeLogTask.DestFile">
+             <summary>
+             Name of the xml file that will contain the cvs log information.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.ChangeLogTask.StartDate">
+             <summary>
+             The earliest change to use in the cvs log command.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.ChangeLogTask.EndDate">
+             <summary>
+             The latest date to use in the cvs log command.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.ChangeLogTask.CommandName">
+             <summary>
+             The cvs command to execute.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.ChangeLogTask.UseSharpCvsLib">
+             <summary>
+             Override use of sharpcvslib, needs to be true.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.ChangeLogTask.Root">
+             <summary>
+             <para>
+             The cvs root variable has the following components:
+             </para>
+             <para>
+                 <code>[protocol]:[username]@[servername]:[server path]</code>
+                 <ul>
+                     <li>protocol:       ext, pserver, ssh (sharpcvslib); if you are not using sharpcvslib consult your cvs documentation.</li>
+                     <li>username:       [username]</li>
+                     <li>servername:     cvs.sourceforge.net</li>
+                     <li>server path:    /cvsroot/nant</li>
+                 </ul>
+             </para>
+             <para>
+             If the cvsroot is not specified then the directory specified by the 
+             <see cref="P:NAnt.SourceControl.Tasks.AbstractSourceControlTask.DestinationDirectory" /> attribute 
+             is searched for CVS\Root.
+             </para>
+             </summary>
+             <example>
+               <para>NAnt anonymous cvsroot:</para>
+               <code>
+               :pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant
+               </code>
+             </example>
+            </member>
         <member name="T:NAnt.SourceControl.Tasks.CheckoutTask">
              <summary>
              Checks out a CVS module to the required directory.
@@ -101,225 +179,288 @@
              The name of the cvs command that is going to be executed.
              </summary>
             </member>
-        <member name="T:NAnt.SourceControl.Tasks.AbstractSourceControlTask">
-             <summary>
-             A base class for creating tasks for executing CVS client commands on a 
-             CVS repository.
-             </summary>
-            </member>
-        <member name="F:NAnt.SourceControl.Tasks.AbstractSourceControlTask.EnvHome">
+        <member name="T:NAnt.SourceControl.Tasks.RTagTask">
              <summary>
-             Name of the environmental variable specifying a users' home
-                 in a *nix environment.
+             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="F:NAnt.SourceControl.Tasks.AbstractSourceControlTask.AppData">
+        <member name="M:NAnt.SourceControl.Tasks.RTagTask.#ctor">
              <summary>
-             Used on windows to specify the location of application data.
+             Initializes a new instance of the <see cref="T:NAnt.SourceControl.Tasks.RTagTask" /> 
+             class.
              </summary>
             </member>
-        <member name="F:NAnt.SourceControl.Tasks.AbstractSourceControlTask.PathVariable">
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.Tag">
              <summary>
-             The environment variable that holds path information.
+             The name of the tag to assign or remove.
              </summary>
+             <value>
+             The name of the tag to assign or remove.
+             </value>
             </member>
-        <member name="F:NAnt.SourceControl.Tasks.AbstractSourceControlTask.CvsPassFileVariable">
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.Remove">
              <summary>
-             The environment variable that holds the location of the
-             .cvspass file.
+             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="F:NAnt.SourceControl.Tasks.AbstractSourceControlTask.PropExeName">
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.MoveIfExists">
              <summary>
-             Property name used to specify the source control executable.  This is 
-                 used as a readonly property.
+             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="M:NAnt.SourceControl.Tasks.AbstractSourceControlTask.#ctor">
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.Recursive">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.SourceControl.Tasks.AbstractCvsTask" /> 
-             class.
+             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.AbstractSourceControlTask.PassFileName">
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)
@@ -17,11 +17,11 @@
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
-.assembly extern NAnt.DotNetTasks
+.assembly extern NAnt.VisualCppTasks
 {
   .ver 0:93:1:0
 }
-.assembly extern NAnt.VisualCppTasks
+.assembly extern NAnt.DotNetTasks
 {
   .ver 0:93:1:0
 }
@@ -1991,479 +1991,291 @@
   } // end of class NAnt.VSNet.Rainier.SolutionProvider
 }
 
-.namespace NAnt.VSNet.Everett
+.namespace NAnt.VSNet.Types
 {
-  .class private auto ansi beforefieldinit Solution
-  	extends NAnt.VSNet.SolutionBase
+  .class public auto ansi sealed UseOfATL
+  	extends [mscorlib]System.Enum
   {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.Types.UseOfATL NotUsing = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.Types.UseOfATL Static = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.Types.UseOfATL Shared = int32(0x00000002)
 
-    // method line 38
-    .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 0x45a0
-	// 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
+  } // end of class NAnt.VSNet.Types.UseOfATL
+}
 
-	  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
+.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.Everett.Solution
+  } // end of class NAnt.VSNet.Types.UseOfMFC
 }
 
-.namespace NAnt.VSNet.Everett
+.namespace NAnt.VSNet.Types
 {
-  .class private auto ansi beforefieldinit SolutionProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+  .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 39
+    // method line 38
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x48e8
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x459d
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method SolutionProvider::.ctor
+	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 40
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string fileContents)  cil managed 
+    // method line 39
+    .method public hidebysig specialname 
+           instance default string get_Url ()  cil managed 
     {
-        // Method begins at RVA 0x48f0
-	// Code size 101 (0x65)
-	.maxstack 2
+        // Method begins at RVA 0x45ac
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
-		int32	V_2,
-		string	V_3)
+		string	V_0)
 	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_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.Types.WebMap::_url
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_005c:  ldc.i4.0 
-	IL_005d:  stloc.2 
-	IL_005e:  br IL_0063
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_Url
 
-	IL_0063:  ldloc.2 
-	IL_0064:  ret 
-    } // end of method SolutionProvider::IsSupported
+    // method line 40
+    .method public hidebysig specialname 
+           instance default void set_Url (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x45c7
+	// 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 41
-    .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 public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x4964
-	// Code size 21 (0x15)
-	.maxstack 5
+        // Method begins at RVA 0x45d8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.SolutionBase	V_0)
+		class [mscorlib]System.IO.FileInfo	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
-}
+	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
 
-.namespace NAnt.VSNet.Extensibility
-{
-  .class interface public auto ansi abstract IProjectBuildProvider
-  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_Path
 
     // method line 42
-    .method public virtual hidebysig newslot abstract 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    .method public hidebysig specialname 
+           instance default void set_Path (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IProjectBuildProvider::IsSupported
+        // Method begins at RVA 0x45f3
+	// 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 43
-    .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 public hidebysig specialname 
+           instance default bool get_CaseSensitive ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IProjectBuildProvider::GetInstance
+        // Method begins at RVA 0x4600
+	// 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 44
-    .method public virtual hidebysig newslot abstract 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    .method public hidebysig specialname 
+           instance default void set_CaseSensitive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IProjectBuildProvider::LoadGuid
-
-  } // end of class NAnt.VSNet.Extensibility.IProjectBuildProvider
-}
-
-.namespace NAnt.VSNet.Extensibility
-{
-  .class interface public auto ansi abstract ISolutionBuildProvider
-  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+        // Method begins at RVA 0x461b
+	// 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 45
-    .method public virtual hidebysig newslot abstract 
-           instance default int32 IsSupported (string fileContents)  cil managed 
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ISolutionBuildProvider::IsSupported
+        // Method begins at RVA 0x4628
+	// 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 46
-    .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 public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ISolutionBuildProvider::GetInstance
+        // Method begins at RVA 0x4643
+	// 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
 
-  } // end of class NAnt.VSNet.Extensibility.ISolutionBuildProvider
+    // method line 47
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x4650
+	// 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 48
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x466b
+	// 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
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader Unspecified = int32(0xffffffff)
+    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader No = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader Create = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader AutoCreate = int32(0x00000002)
+    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader Use = int32(0x00000003)
+
+  } // end of class NAnt.VSNet.Types.UsePrecompiledHeader
 }
 
 .namespace NAnt.VSNet.Types
@@ -2474,11 +2286,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 47
+    // method line 49
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x4985
+        // Method begins at RVA 0x4675
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2487,11 +2299,11 @@
 	IL_0007:  ret 
     } // end of method WebMapCollection::.ctor
 
-    // method line 48
+    // method line 50
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Types.WebMapCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x498e
+        // Method begins at RVA 0x467e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2503,11 +2315,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::.ctor
 
-    // method line 49
+    // method line 51
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Types.WebMap[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x499e
+        // Method begins at RVA 0x468e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2519,11 +2331,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::.ctor
 
-    // method line 50
+    // method line 52
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMap get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x49b0
+        // Method begins at RVA 0x46a0
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -2541,11 +2353,11 @@
 	IL_0019:  ret 
     } // end of method WebMapCollection::get_Item
 
-    // method line 51
+    // method line 53
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.VSNet.Types.WebMap 'value')  cil managed 
     {
-        // Method begins at RVA 0x49d6
+        // Method begins at RVA 0x46c6
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2557,11 +2369,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::set_Item
 
-    // method line 52
+    // method line 54
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMap get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x49e8
+        // Method begins at RVA 0x46d8
 	// Code size 125 (0x7d)
 	.maxstack 4
 	.locals init (
@@ -2631,11 +2443,11 @@
 	IL_007c:  ret 
     } // end of method WebMapCollection::get_Item
 
-    // method line 53
+    // method line 55
     .method public hidebysig 
            instance default string FindBestMatch (string uri)  cil managed 
     {
-        // Method begins at RVA 0x4a84
+        // Method begins at RVA 0x4774
 	// Code size 254 (0xfe)
 	.maxstack 3
 	.locals init (
@@ -2750,11 +2562,11 @@
 	IL_00fd:  ret 
     } // end of method WebMapCollection::FindBestMatch
 
-    // method line 54
+    // method line 56
     .method public hidebysig 
            instance default int32 Add (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x4ba0
+        // Method begins at RVA 0x4890
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2771,11 +2583,11 @@
 	IL_0014:  ret 
     } // end of method WebMapCollection::Add
 
-    // method line 55
+    // method line 57
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.Types.WebMap[] items)  cil managed 
     {
-        // Method begins at RVA 0x4bc4
+        // Method begins at RVA 0x48b4
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -2806,11 +2618,11 @@
 	IL_0021:  ret 
     } // end of method WebMapCollection::AddRange
 
-    // method line 56
+    // method line 58
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.Types.WebMapCollection items)  cil managed 
     {
-        // Method begins at RVA 0x4bf4
+        // Method begins at RVA 0x48e4
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -2840,11 +2652,11 @@
 	IL_0028:  ret 
     } // end of method WebMapCollection::AddRange
 
-    // method line 57
+    // method line 59
     .method public hidebysig 
            instance default bool Contains (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x4c2c
+        // Method begins at RVA 0x491c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2861,11 +2673,11 @@
 	IL_0014:  ret 
     } // end of method WebMapCollection::Contains
 
-    // method line 58
+    // method line 60
     .method public hidebysig 
            instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4c50
+        // Method begins at RVA 0x4940
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -2885,11 +2697,11 @@
 	IL_0015:  ret 
     } // end of method WebMapCollection::Contains
 
-    // method line 59
+    // method line 61
     .method public hidebysig 
            instance default void CopyTo (class NAnt.VSNet.Types.WebMap[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x4c72
+        // Method begins at RVA 0x4962
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2901,11 +2713,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::CopyTo
 
-    // method line 60
+    // method line 62
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x4c84
+        // Method begins at RVA 0x4974
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2922,11 +2734,11 @@
 	IL_0014:  ret 
     } // end of method WebMapCollection::IndexOf
 
-    // method line 61
+    // method line 63
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x4ca5
+        // Method begins at RVA 0x4995
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2938,11 +2750,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::Insert
 
-    // method line 62
+    // method line 64
     .method public hidebysig 
            instance default class NAnt.VSNet.Types.WebMapEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x4cb8
+        // Method begins at RVA 0x49a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2957,11 +2769,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::GetEnumerator
 
-    // method line 63
+    // method line 65
     .method public hidebysig 
            instance default void Remove (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x4cd3
+        // Method begins at RVA 0x49c3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2991,11 +2803,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 64
+    // method line 66
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Types.WebMapCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x4ce4
+        // Method begins at RVA 0x49d4
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -3012,11 +2824,11 @@
 	IL_0015:  ret 
     } // end of method WebMapEnumerator::.ctor
 
-    // method line 65
+    // method line 67
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMap get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x4d08
+        // Method begins at RVA 0x49f8
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -3033,11 +2845,11 @@
 	IL_0018:  ret 
     } // end of method WebMapEnumerator::get_Current
 
-    // method line 66
+    // method line 68
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x4d30
+        // Method begins at RVA 0x4a20
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -3054,11 +2866,11 @@
 	IL_0013:  ret 
     } // end of method WebMapEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 67
+    // method line 69
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x4d50
+        // Method begins at RVA 0x4a40
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -3074,11 +2886,11 @@
 	IL_0013:  ret 
     } // end of method WebMapEnumerator::MoveNext
 
-    // method line 68
+    // method line 70
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x4d70
+        // Method begins at RVA 0x4a60
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -3095,11 +2907,11 @@
 	IL_0013:  ret 
     } // end of method WebMapEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 69
+    // method line 71
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x4d90
+        // Method begins at RVA 0x4a80
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3109,11 +2921,11 @@
 	IL_000c:  ret 
     } // end of method WebMapEnumerator::Reset
 
-    // method line 70
+    // method line 72
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x4d9e
+        // Method begins at RVA 0x4a8e
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -3135,979 +2947,479 @@
   } // end of class NAnt.VSNet.Types.WebMapEnumerator
 }
 
-.namespace NAnt.VSNet.Types
-{
-  .class public auto ansi sealed UsePrecompiledHeader
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader Unspecified = int32(0xffffffff)
-    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader No = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader Create = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader AutoCreate = int32(0x00000002)
-    .field public static literal  valuetype NAnt.VSNet.Types.UsePrecompiledHeader Use = int32(0x00000003)
-
-  } // end of class NAnt.VSNet.Types.UsePrecompiledHeader
-}
-
-.namespace NAnt.VSNet.Types
+.namespace NAnt.VSNet.Everett
 {
-  .class public auto ansi serializable beforefieldinit WebMap
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class private auto ansi beforefieldinit Solution
+  	extends NAnt.VSNet.SolutionBase
   {
-    .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 71
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x4dac
-	// 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 72
-    .method public hidebysig specialname 
-           instance default string get_Url ()  cil managed 
-    {
-        // Method begins at RVA 0x4dbc
-	// 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 73
-    .method public hidebysig specialname 
-           instance default void set_Url (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4dd7
-	// 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 74
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Path ()  cil managed 
-    {
-        // Method begins at RVA 0x4de8
-	// 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 75
-    .method public hidebysig specialname 
-           instance default void set_Path (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4e03
-	// 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 76
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
-    {
-        // Method begins at RVA 0x4e10
-	// 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 77
-    .method public hidebysig specialname 
-           instance default void set_CaseSensitive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4e2b
-	// 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 78
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    .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 0x4e38
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x4a9c
+	// Code size 775 (0x307)
+	.maxstack 5
 	.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
+		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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_IfDefined
+	  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
 
-    // method line 79
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4e53
-	// 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
+	  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
 
-    // method line 80
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x4e60
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_UnlessDefined
+	  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
 
-    // method line 81
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4e7b
-	// 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
+	    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
 
-	.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.
+	    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
 
-		.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_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
 
-		.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.
+	    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
 
-		.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.
+	    IL_0188:  leave IL_01a4
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  } // 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
 
-		.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..
+	    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
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_01dd:  nop 
+	  IL_01de:  leave IL_02a5
 
-		.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..
+	  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
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  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
 
-		.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
-}
+	  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
 
-.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)
+	  IL_02b1:  leave IL_02cd
 
-  } // end of class NAnt.VSNet.Types.UseOfMFC
-}
+	} // 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
 
-.namespace NAnt.VSNet.Types
-{
-  .class public auto ansi sealed UseOfATL
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.Types.UseOfATL NotUsing = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.Types.UseOfATL Static = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.Types.UseOfATL Shared = int32(0x00000002)
+	  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.Types.UseOfATL
+  } // end of class NAnt.VSNet.Everett.Solution
 }
 
-.namespace NAnt.VSNet
+.namespace NAnt.VSNet.Everett
 {
-  .class private auto ansi beforefieldinit JSharpProjectProvider
+  .class private auto ansi beforefieldinit SolutionProvider
   	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+  	implements NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 82
+    // method line 74
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x4e85
+        // 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 JSharpProjectProvider::.ctor
+    } // end of method SolutionProvider::.ctor
 
-    // method line 83
+    // method line 75
     .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+           instance default int32 IsSupported (string fileContents)  cil managed 
     {
-        // Method begins at RVA 0x4e90
-	// Code size 52 (0x34)
+        // Method begins at RVA 0x4dec
+	// Code size 101 (0x65)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		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:  ldarg.1 
-	IL_0002:  ldstr ".vjsproj"
-	IL_0007:  call bool string::op_Equality(string, string)
-	IL_000c:  brfalse IL_0018
+	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_0011:  ldc.i4.5 
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0032
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.2 
+	IL_0023:  br IL_0063
 
-	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_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_0023:  ldc.i4.s 0x0a
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0032
+	IL_0054:  ldc.i4.s 0x0a
+	IL_0056:  stloc.2 
+	IL_0057:  br IL_0063
 
-	IL_002b:  ldc.i4.0 
-	IL_002c:  stloc.0 
-	IL_002d:  br IL_0032
+	IL_005c:  ldc.i4.0 
+	IL_005d:  stloc.2 
+	IL_005e:  br IL_0063
 
-	IL_0032:  ldloc.0 
-	IL_0033:  ret 
-    } // end of method JSharpProjectProvider::IsSupported
+	IL_0063:  ldloc.2 
+	IL_0064:  ret 
+    } // end of method SolutionProvider::IsSupported
 
-    // method line 84
+    // method line 76
     .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 
+           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 0x4ed0
-	// Code size 27 (0x1b)
-	.maxstack 8
+        // Method begins at RVA 0x4e60
+	// Code size 21 (0x15)
+	.maxstack 5
 	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
+		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:  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 85
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0x4ef8
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JSharpProjectProvider::LoadGuid
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method SolutionProvider::GetInstance
 
-  } // end of class NAnt.VSNet.JSharpProjectProvider
+  } // end of class NAnt.VSNet.Everett.SolutionProvider
 }
 
-.namespace NAnt.VSNet
+.namespace NAnt.VSNet.Extensibility
 {
-  .class public auto ansi abstract beforefieldinit AssemblyReferenceBase
-  	extends NAnt.VSNet.FileReferenceBase
-  {
-
-    // method line 86
-    .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 0x52e8
-	// 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
+  .class interface public auto ansi abstract ISolutionBuildProvider
+  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 87
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsPrivate ()  cil managed 
+    // method line 77
+    .method public virtual hidebysig newslot abstract 
+           instance default int32 IsSupported (string fileContents)  cil managed 
     {
         // Method begins at RVA 0x0
-    } // end of method AssemblyReferenceBase::get_IsPrivate
+    } // end of method ISolutionBuildProvider::IsSupported
 
-    // method line 88
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
+    // method line 78
+    .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 AssemblyReferenceBase::get_IsPrivateSpecified
-
-    // method line 89
-    .method public virtual hidebysig specialname 
-           instance default bool get_CopyLocal ()  cil managed 
-    {
-        // Method begins at RVA 0x52f8
-	// 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_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
-
-    // method line 90
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsSystem ()  cil managed 
-    {
-        // Method begins at RVA 0x5350
-	// 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 91
-    .method public virtual hidebysig 
-           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x53a8
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyReferenceBase::GetPrimaryOutputFile
-
-    // method line 92
-    .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 0x53c4
-	// 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
-
-	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 93
-    .method public virtual hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x53ec
-	// 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
-
-	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 94
-    .method public virtual hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x5490
-	// Code size 41 (0x29)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	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_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_0027:  ldloc.1 
-	IL_0028:  ret 
-    } // end of method AssemblyReferenceBase::GetTimestamp
+    } // end of method ISolutionBuildProvider::GetInstance
 
-    // method line 95
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project)  cil managed 
-    {
-        // Method begins at RVA 0x54c8
-	// Code size 28 (0x1c)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.ProjectReferenceBase	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
+  } // end of class NAnt.VSNet.Extensibility.ISolutionBuildProvider
+}
 
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method AssemblyReferenceBase::CreateProjectReference
+.namespace NAnt.VSNet.Extensibility
+{
+  .class interface public auto ansi abstract IProjectBuildProvider
+  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 96
-    .method family virtual hidebysig newslot abstract 
-           instance default string ResolveAssemblyReference ()  cil managed 
+    // method line 79
+    .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 AssemblyReferenceBase::ResolveAssemblyReference
-
-    // method line 97
-    .method family hidebysig 
-           instance default string ResolveFromFolderList (class [System]System.Collections.Specialized.StringCollection folderList, string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x54f0
-	// 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_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
-
-    // method line 98
-    .method family hidebysig 
-           instance default string ResolveFromFramework (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x5624
-	// Code size 52 (0x34)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1)
-	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_0032:  ldloc.1 
-	IL_0033:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromFramework
+    } // end of method IProjectBuildProvider::IsSupported
 
-    // method line 99
-    .method family hidebysig 
-           instance default string ResolveFromRelativePath (string relativePath)  cil managed 
+    // method line 80
+    .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 0x5664
-	// Code size 105 (0x69)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.PathTooLongException	V_2)
-	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_0067:  ldloc.1 
-	IL_0068:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromRelativePath
+        // Method begins at RVA 0x0
+    } // end of method IProjectBuildProvider::GetInstance
 
-    // method line 100
-    .method family virtual hidebysig newslot 
-           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    // method line 81
+    .method public virtual hidebysig newslot abstract 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0x56ec
-	// 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
-
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromAssemblyFolders
+        // Method begins at RVA 0x0
+    } // end of method IProjectBuildProvider::LoadGuid
 
-	.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
+  } // end of class NAnt.VSNet.Extensibility.IProjectBuildProvider
 }
 
 .namespace NAnt.VSNet
@@ -4121,11 +3433,11 @@
     .field  private initonly  string _name
     .field  private initonly  class [System]System.Text.RegularExpressions.Regex _rxMacro
 
-    // method line 101
+    // method line 82
     .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 0x5714
+        // Method begins at RVA 0x5680
 	// Code size 148 (0x94)
 	.maxstack 5
 	.locals init (
@@ -4186,11 +3498,11 @@
 	IL_0093:  ret 
     } // end of method VcAssemblyReference::.ctor
 
-    // method line 102
+    // method line 83
     .method family virtual hidebysig specialname 
            instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0x57b4
+        // Method begins at RVA 0x5720
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4205,11 +3517,11 @@
 	IL_000e:  ret 
     } // end of method VcAssemblyReference::get_IsPrivate
 
-    // method line 103
+    // method line 84
     .method family virtual hidebysig specialname 
            instance default bool get_IsPrivateSpecified ()  cil managed 
     {
-        // Method begins at RVA 0x57d0
+        // Method begins at RVA 0x573c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4224,11 +3536,11 @@
 	IL_000e:  ret 
     } // end of method VcAssemblyReference::get_IsPrivateSpecified
 
-    // method line 104
+    // method line 85
     .method family virtual hidebysig 
            instance default string ResolveAssemblyReference ()  cil managed 
     {
-        // Method begins at RVA 0x57ec
+        // Method begins at RVA 0x5758
 	// Code size 215 (0xd7)
 	.maxstack 4
 	.locals init (
@@ -4330,11 +3642,11 @@
 	IL_00d6:  ret 
     } // end of method VcAssemblyReference::ResolveAssemblyReference
 
-    // method line 105
+    // method line 86
     .method public virtual hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x58d0
+        // Method begins at RVA 0x583c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4349,11 +3661,11 @@
 	IL_000e:  ret 
     } // end of method VcAssemblyReference::get_Name
 
-    // method line 106
+    // method line 87
     .method private hidebysig 
            instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
     {
-        // Method begins at RVA 0x58ec
+        // Method begins at RVA 0x5858
 	// Code size 119 (0x77)
 	.maxstack 5
 	.locals init (
@@ -4426,1381 +3738,4553 @@
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit VcProject
-  	extends NAnt.VSNet.ProjectBase
+  .class public auto ansi beforefieldinit VcProjectConfiguration
+  	extends NAnt.VSNet.VcConfigurationBase
   {
-    .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$map0'
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
+    .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 107
-    .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 line 88
+    .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 0x6674
-	// Code size 1034 (0x40a)
-	.maxstack 7
+        // Method begins at RVA 0x61b4
+	// Code size 647 (0x287)
+	.maxstack 5
 	.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)
+		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:  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_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_02fe:  ldloc.s 23
-	  IL_0300:  ldstr ".rc"
-	  IL_0305:  call bool string::op_Equality(string, string)
-	  IL_030a:  brtrue IL_0314
+	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_030f:  br IL_03b4
+	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_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_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_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_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_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_00e1:  ldloc.s 4
+	IL_00e3:  ldstr "false"
+	IL_00e8:  call bool string::op_Equality(string, string)
+	IL_00ed:  brtrue IL_012a
 
-	    IL_0355:  nop 
-	    IL_0356:  leave IL_0387
+	IL_00f2:  ldloc.s 4
+	IL_00f4:  ldstr "0"
+	IL_00f9:  call bool string::op_Equality(string, string)
+	IL_00fe:  brtrue IL_012a
 
-	    IL_035b:  ldloc.s 16
-	    IL_035d:  brtrue IL_036b
+	IL_0103:  ldloc.s 4
+	IL_0105:  ldstr "true"
+	IL_010a:  call bool string::op_Equality(string, string)
+	IL_010f:  brtrue IL_0136
 
-	    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_0114:  ldloc.s 4
+	IL_0116:  ldstr "1"
+	IL_011b:  call bool string::op_Equality(string, string)
+	IL_0120:  brtrue IL_0136
 
-	    IL_0393:  leave IL_03af
+	IL_0125:  br IL_0142
 
-	  } // 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_012a:  ldarg.0 
+	IL_012b:  ldc.i4.0 
+	IL_012c:  stfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_0131:  br IL_0153
 
-	    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_0136:  ldarg.0 
+	IL_0137:  ldc.i4.1 
+	IL_0138:  stfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_013d:  br IL_0153
 
-	  IL_03b4:  ldloc.s 16
-	  IL_03b6:  brfalse IL_03d0
+	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_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_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_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_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_03ed:  leave IL_0409
+	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
 
-	} // 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_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_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
+	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 108
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 89
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x6b08
+        // Method begins at RVA 0x6448
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProject::_name
+	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 VcProject::get_Name
+    } // end of method VcProjectConfiguration::get_Type
 
-    // method line 109
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    // method line 90
+    .method public hidebysig specialname 
+           instance default bool get_WholeProgramOptimization ()  cil managed 
     {
-        // Method begins at RVA 0x6b24
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x6464
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.ProjectType	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.2 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_wholeProgramOptimization
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method VcProject::get_Type
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_WholeProgramOptimization
 
-    // method line 110
-    .method public virtual hidebysig specialname 
-           instance default string get_ProjectPath ()  cil managed 
+    // method line 91
+    .method public hidebysig specialname 
+           instance default valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet get_CharacterSet ()  cil managed 
     {
-        // Method begins at RVA 0x6b3c
+        // Method begins at RVA 0x6480
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProject::_projectPath
+	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 VcProject::get_ProjectPath
+    } // end of method VcProjectConfiguration::get_CharacterSet
 
-    // method line 111
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
+    // method line 92
+    .method public hidebysig specialname 
+           instance default bool get_ManagedExtensions ()  cil managed 
     {
-        // Method begins at RVA 0x6b58
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x649c
+	// 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:  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_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method VcProject::get_ProjectDirectory
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_ManagedExtensions
 
-    // method line 112
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
+    // method line 93
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.Types.UseOfMFC get_UseOfMFC ()  cil managed 
     {
-        // Method begins at RVA 0x6b80
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x64b8
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0)
+		valuetype NAnt.VSNet.Types.UseOfMFC	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:  ldfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method VcProject::get_ProjectLocation
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_UseOfMFC
 
-    // method line 113
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    // method line 94
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.Types.UseOfATL get_UseOfATL ()  cil managed 
     {
-        // Method begins at RVA 0x6b98
-	// Code size 35 (0x23)
-	.maxstack 2
+        // Method begins at RVA 0x64d4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		valuetype NAnt.VSNet.Types.UseOfATL	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_0002:  ldfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method VcProject::get_ObjectDir
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_UseOfATL
 
-    // method line 114
-    .method public virtual hidebysig specialname 
-           instance default string get_Guid ()  cil managed 
+    // method line 95
+    .method assembly hidebysig specialname 
+           instance default string get_RawRelativeOutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x6bc8
+        // Method begins at RVA 0x64f0
 	// 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_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 VcProject::get_Guid
+    } // end of method VcProjectConfiguration::get_RawRelativeOutputDir
 
-    // method line 115
-    .method public virtual hidebysig specialname 
-           instance default void set_Guid (string 'value')  cil managed 
+    // method line 96
+    .method assembly hidebysig specialname 
+           instance default string get_RawIntermediateDir ()  cil managed 
     {
-        // Method begins at RVA 0x6be3
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x650c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	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
+	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawIntermediateDir
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 116
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_RawIntermediateDir
+
+    // method line 97
+    .method assembly hidebysig specialname 
+           instance default string get_RawReferencesPath ()  cil managed 
     {
-        // Method begins at RVA 0x6bf0
+        // Method begins at RVA 0x6528
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
+	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 VcProject::get_References
+    } // end of method VcProjectConfiguration::get_RawReferencesPath
 
-    // method line 117
-    .method public virtual hidebysig 
-           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
+    // method line 98
+    .method assembly hidebysig specialname 
+           instance default class NAnt.VSNet.VcProjectConfiguration/LinkerConfig get_LinkerConfiguration ()  cil managed 
     {
-        // Method begins at RVA 0x6c0c
-	// Code size 18 (0x12)
-	.maxstack 4
+        // Method begins at RVA 0x6544
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectReferenceBase	V_0)
+		class NAnt.VSNet.VcProjectConfiguration/LinkerConfig	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_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_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method VcProject::CreateProjectReference
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_LinkerConfiguration
 
-    // method line 118
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 99
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_ObjFiles ()  cil managed 
     {
-        // Method begins at RVA 0x6c2c
-	// Code size 60 (0x3c)
-	.maxstack 2
+        // Method begins at RVA 0x6560
+	// Code size 34 (0x22)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.VcProjectConfiguration	V_0,
-		bool	V_1)
+		class [mscorlib]System.Collections.ArrayList	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.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_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
 
-	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_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_002b:  ldloc.0 
-	IL_002c:  callvirt instance bool class NAnt.VSNet.VcProjectConfiguration::get_ManagedExtensions()
-	IL_0031:  br.s IL_0034
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_ObjFiles
 
-	IL_0033:  ldc.i4.0 
-	IL_0034:  stloc.1 
-	IL_0035:  br IL_003a
+    // method line 100
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_SourceConfigs ()  cil managed 
+    {
+        // Method begins at RVA 0x6590
+	// 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_003a:  ldloc.1 
-	IL_003b:  ret 
-    } // end of method VcProject::IsManaged
+	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
 
-    // method line 119
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_SourceConfigs
+
+    // method line 101
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_RcConfigs ()  cil managed 
     {
-        // Method begins at RVA 0x6c74
-	// Code size 46 (0x2e)
-	.maxstack 8
+        // Method begins at RVA 0x65c0
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
 	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_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
 
 	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
+	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
 
-    // method line 120
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_RcConfigs
+
+    // method line 102
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_IdlConfigs ()  cil managed 
     {
-        // Method begins at RVA 0x6ca4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x65f0
+	// Code size 34 (0x22)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.ProductVersion	V_0)
+		class [mscorlib]System.Collections.Hashtable	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_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::DetermineProductVersion
+	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
 
-    // method line 121
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_IdlConfigs
+
+    // method line 103
+    .method private hidebysig specialname 
+           instance default string get_TargetPath ()  cil managed 
     {
-        // Method begins at RVA 0x6cc0
-	// Code size 969 (0x3c9)
-	.maxstack 4
+        // Method begins at RVA 0x6620
+	// Code size 344 (0x158)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.VcProjectConfiguration	V_0,
-		valuetype NAnt.VSNet.BuildResult	V_1,
+		string	V_0,
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	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)
+		string	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6)
 	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_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_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_0030:  br IL_014d
 
-	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_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_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_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_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_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_00aa:  leave IL_00c6
+	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
 
-	} // 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_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_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_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_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_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_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_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_0127:  leave IL_0143
+	IL_0148:  br IL_014d
 
-	} // 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_014d:  ldloc.0 
+	IL_014e:  stloc.s 6
+	IL_0150:  br IL_0155
 
-	  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_0155:  ldloc.s 6
+	IL_0157:  ret 
+    } // end of method VcProjectConfiguration::get_TargetPath
 
-	  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
+    // method line 104
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    {
+        // Method begins at RVA 0x6784
+	// 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_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_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method VcProjectConfiguration::get_ObjectDir
 
-	  IL_019c:  leave IL_01b8
+    // method line 105
+    .method public virtual hidebysig specialname 
+           instance default string get_RelativeOutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0x67bc
+	// 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
 
-	} // 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_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectConfiguration::get_RelativeOutputDir
 
-	  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 106
+    .method public virtual hidebysig specialname 
+           instance default string get_IntermediateDir ()  cil managed 
+    {
+        // Method begins at RVA 0x67e0
+	// 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_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_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectConfiguration::get_IntermediateDir
 
-	  IL_0207:  leave IL_0223
+    // method line 107
+    .method public virtual hidebysig specialname 
+           instance default string get_OutputPath ()  cil managed 
+    {
+        // Method begins at RVA 0x6804
+	// 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
 
-	} // 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_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_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:  ret 
+    } // end of method VcProjectConfiguration::get_OutputPath
 
-	IL_0233:  ldloc.s 16
-	IL_0235:  ldc.i4.1 
-	IL_0236:  beq IL_0254
+    // method line 108
+    .method public virtual hidebysig specialname 
+           instance default string get_ReferencesPath ()  cil managed 
+    {
+        // Method begins at RVA 0x6834
+	// 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_023b:  ldloc.s 16
-	IL_023d:  ldc.i4.2 
-	IL_023e:  beq IL_0254
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectConfiguration::get_ReferencesPath
 
-	IL_0243:  br IL_0274
+    // method line 109
+    .method assembly hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
+    {
+        // Method begins at RVA 0x6858
+	// 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_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_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method VcProjectConfiguration::GetToolSetting
 
-	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
+    // method line 110
+    .method public virtual hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName, string defaultValue)  cil managed 
+    {
+        // Method begins at RVA 0x6878
+	// 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_0260:  nop 
-	IL_0261:  ldc.i4.0 
-	IL_0262:  stloc.1 
-	IL_0263:  br IL_03c7
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method VcProjectConfiguration::GetToolSetting
 
-	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
+    // method line 111
+    .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 0x68a4
+	// 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_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_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_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_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_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_003e:  nop 
+	IL_003f:  ldloc.0 
+	IL_0040:  brtrue IL_005a
 
-	    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_0045:  ldarg.3 
+	IL_0046:  brfalse IL_005a
 
-	    IL_0351:  leave IL_036d
+	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
 
-	  } // 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_005a:  ldloc.0 
+	IL_005b:  stloc.2 
+	IL_005c:  br IL_0061
 
-	    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_0061:  ldloc.2 
+	IL_0062:  ret 
+    } // end of method VcProjectConfiguration::GetToolSetting
 
-	  IL_037b:  leave IL_0397
+    // method line 112
+    .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 0x6914
+	// 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
 
-	} // 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_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method VcProjectConfiguration::GetToolArguments
 
-	  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 113
+    .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 0x6940
+	// 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_03a4:  nop 
-	IL_03a5:  ldc.i4.0 
-	IL_03a6:  stloc.1 
-	IL_03a7:  br IL_03c7
+	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_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_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_03b8:  nop 
-	IL_03b9:  ldc.i4.0 
-	IL_03ba:  stloc.1 
-	IL_03bb:  br IL_03c7
+	  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_03c0:  ldc.i4.1 
-	IL_03c1:  stloc.1 
-	IL_03c2:  br IL_03c7
+	  IL_008b:  leave IL_00a6
 
-	IL_03c7:  ldloc.1 
-	IL_03c8:  ret 
-    } // end of method VcProject::Build
+	} // 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
 
-    // method line 122
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_ProjectFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x70e4
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::get_ProjectFiles
+	IL_00af:  ldloc.s 6
+	IL_00b1:  ret 
+    } // end of method VcProjectConfiguration::GetToolArguments
 
-    // method line 123
+    // method line 114
     .method famorassem virtual hidebysig 
            instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0x7100
-	// Code size 326 (0x146)
-	.maxstack 3
+        // Method begins at RVA 0x6a10
+	// Code size 271 (0x10f)
+	.maxstack 4
 	.locals init (
 		string	V_0,
-		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
-		int32	V_2,
-		string	V_3)
+		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_0137
+	IL_000e:  brfalse IL_0100
 
-	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map0'
-	IL_0018:  brtrue IL_007e
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "targetname"
+	IL_0019:  call bool string::op_Equality(string, string)
+	IL_001e:  brtrue IL_0068
 
-	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$map0'
-	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map0'
-	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_0023:  ldloc.0 
+	IL_0024:  ldstr "targetpath"
+	IL_0029:  call bool string::op_Equality(string, string)
+	IL_002e:  brtrue IL_007e
 
-	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_0033:  ldloc.0 
+	IL_0034:  ldstr "targetext"
+	IL_0039:  call bool string::op_Equality(string, string)
+	IL_003e:  brtrue IL_008a
 
-	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_0043:  ldloc.0 
+	IL_0044:  ldstr "targetfilename"
+	IL_0049:  call bool string::op_Equality(string, string)
+	IL_004e:  brtrue IL_009b
 
-	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_0053:  ldloc.0 
+	IL_0054:  ldstr "targetdir"
+	IL_0059:  call bool string::op_Equality(string, string)
+	IL_005e:  brtrue IL_00ac
 
-	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_0063:  br IL_0100
 
-	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_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_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_007e:  ldarg.0 
+	IL_007f:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_0084:  stloc.1 
+	IL_0085:  br IL_010d
 
-	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_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_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_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_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_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_0144:  ldloc.3 
-	IL_0145:  ret 
-    } // end of method VcProject::ExpandMacro
+	IL_00d9:  ldsfld string [mscorlib]System.String::Empty
+	IL_00de:  br IL_00f5
 
-    // method line 124
-    .method assembly hidebysig 
-           instance default string GetObjOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig, string intermediateDir)  cil managed 
-    {
-        // Method begins at RVA 0x7254
-	// 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_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_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_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_0020:  ldloc.1 
-	IL_0021:  ret 
-    } // end of method VcProject::GetObjOutputFile
+	IL_010d:  ldloc.1 
+	IL_010e:  ret 
+    } // end of method VcProjectConfiguration::ExpandMacro
 
-    // method line 125
-    .method assembly hidebysig 
-           instance default string GetResourceOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
+    // method line 115
+    .method private hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x7284
-	// Code size 46 (0x2e)
+        // Method begins at RVA 0x6b2c
+	// Code size 831 (0x33f)
 	.maxstack 5
 	.locals init (
-		string	V_0)
+		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:  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_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_002c:  ldloc.0 
-	IL_002d:  ret 
-    } // end of method VcProject::GetResourceOutputFile
+	  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
 
-    // method line 126
-    .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 0x72c0
-	// 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_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_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_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_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_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 116
+    .method private hidebysig 
+           instance default string GetLibrarianOutputFile (string intermediateDir)  cil managed 
+    {
+        // Method begins at RVA 0x6eac
+	// 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 117
+    .method private hidebysig 
+           instance default string GetLinkerOutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x6f44
+	// 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 118
+    .method private static hidebysig 
+           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
+    {
+        // Method begins at RVA 0x710c
+	// 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 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)
+
+  } // 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 119
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
+    {
+        // Method begins at RVA 0x7152
+	// 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 120
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ImportLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x7164
+	// 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 121
+    .method private hidebysig specialname 
+           instance default class NAnt.VSNet.VcProject get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x722c
+	// 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 ProjectEntry
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  string _guid
+    .field  private initonly  string _path
+    .field  private  class NAnt.VSNet.ProjectBase _project
+    .field  private  class NAnt.VSNet.ConfigurationMap _buildConfigurations
+
+    // method line 122
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string guid, string path)  cil managed 
+    {
+        // Method begins at RVA 0x7251
+	// Code size 58 (0x3a)
+	.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 "guid"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.2 
+	IL_001a:  brtrue IL_002b
+
+	IL_001f:  nop 
+	IL_0020:  ldstr "path"
+	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002a:  throw 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  stfld string NAnt.VSNet.ProjectEntry::_guid
+	IL_0032:  ldarg.0 
+	IL_0033:  ldarg.2 
+	IL_0034:  stfld string NAnt.VSNet.ProjectEntry::_path
+	IL_0039:  ret 
+    } // end of method ProjectEntry::.ctor
+
+    // method line 123
+    .method public hidebysig specialname 
+           instance default string get_Guid ()  cil managed 
+    {
+        // Method begins at RVA 0x728c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectEntry::_guid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectEntry::get_Guid
+
+    // method line 124
+    .method public hidebysig specialname 
+           instance default string get_Path ()  cil managed 
+    {
+        // Method begins at RVA 0x72a8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectEntry::_path
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectEntry::get_Path
+
+    // method line 125
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x72c4
+	// 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.ProjectEntry::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectEntry::get_Project
+
+    // method line 126
+    .method public hidebysig specialname 
+           instance default void set_Project (class NAnt.VSNet.ProjectBase 'value')  cil managed 
+    {
+        // Method begins at RVA 0x72e0
+	// Code size 90 (0x5a)
+	.maxstack 5
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0052
+
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance string class NAnt.VSNet.ProjectEntry::get_Guid()
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	IL_0014:  ldc.i4.1 
+	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001a:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_001f:  brfalse IL_0051
+
+	IL_0024:  nop 
+	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002a:  ldstr "GUID corruption detected for project '{0}'. GUID values in project file and solution file do not match ('{1}' and '{2}'). Please correct this manually."
+	IL_002f:  ldarg.1 
+	IL_0030:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0035:  ldarg.1 
+	IL_0036:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance string class NAnt.VSNet.ProjectEntry::get_Guid()
+	IL_0041:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, 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:  nop 
+	IL_0052:  ldarg.0 
+	IL_0053:  ldarg.1 
+	IL_0054:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectEntry::_project
+	IL_0059:  ret 
+    } // end of method ProjectEntry::set_Project
+
+    // method line 127
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ConfigurationMap get_BuildConfigurations ()  cil managed 
+    {
+        // Method begins at RVA 0x7348
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationMap	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.ConfigurationMap NAnt.VSNet.ProjectEntry::_buildConfigurations
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectEntry::get_BuildConfigurations
+
+    // method line 128
+    .method public hidebysig specialname 
+           instance default void set_BuildConfigurations (class NAnt.VSNet.ConfigurationMap 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7363
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.VSNet.ConfigurationMap NAnt.VSNet.ProjectEntry::_buildConfigurations
+	IL_0008:  ret 
+    } // end of method ProjectEntry::set_BuildConfigurations
+
+	.property instance string Guid ()
+	{
+		.get instance default string NAnt.VSNet.ProjectEntry::get_Guid () 
+	}
+	.property instance string Path ()
+	{
+		.get instance default string NAnt.VSNet.ProjectEntry::get_Path () 
+	}
+	.property instance class NAnt.VSNet.ProjectBase Project ()
+	{
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectEntry::get_Project () 
+		.set instance default void NAnt.VSNet.ProjectEntry::set_Project (class NAnt.VSNet.ProjectBase 'value') 
+	}
+	.property instance class NAnt.VSNet.ConfigurationMap BuildConfigurations ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationMap NAnt.VSNet.ProjectEntry::get_BuildConfigurations () 
+		.set instance default void NAnt.VSNet.ProjectEntry::set_BuildConfigurations (class NAnt.VSNet.ConfigurationMap 'value') 
+	}
+  } // end of class NAnt.VSNet.ProjectEntry
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi serializable beforefieldinit ProjectEntryCollection
+  	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 129
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x736d
+	// 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 ProjectEntryCollection::.ctor
+
+    // method line 130
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectEntryCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7376
+	// 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.ProjectEntryCollection::AddRange(class NAnt.VSNet.ProjectEntryCollection)
+	IL_000e:  ret 
+    } // end of method ProjectEntryCollection::.ctor
+
+    // method line 131
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectEntry[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7386
+	// 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.ProjectEntryCollection::AddRange(class NAnt.VSNet.ProjectEntry[])
+	IL_000e:  ret 
+    } // end of method ProjectEntryCollection::.ctor
+
+    // method line 132
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectEntry get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x7398
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ProjectEntry	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.ProjectEntry
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ProjectEntryCollection::get_Item
+
+    // method line 133
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.VSNet.ProjectEntry 'value')  cil managed 
+    {
+        // Method begins at RVA 0x73be
+	// 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 ProjectEntryCollection::set_Item
+
+    // method line 134
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectEntry get_Item (string guid)  cil managed 
+    {
+        // Method begins at RVA 0x73d0
+	// Code size 92 (0x5c)
+	.maxstack 4
+	.locals init (
+		int32	V_0,
+		class NAnt.VSNet.ProjectEntry	V_1,
+		class NAnt.VSNet.ProjectEntry	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0053
+
+	IL_0007:  nop 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0046
+
+	IL_000f:  nop 
+	IL_0010:  ldarg.0 
+	IL_0011:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0016:  ldloc.0 
+	IL_0017:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_001c:  castclass NAnt.VSNet.ProjectEntry
+	IL_0021:  stloc.1 
+	IL_0022:  ldloc.1 
+	IL_0023:  callvirt instance string class NAnt.VSNet.ProjectEntry::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.2 
+	IL_003c:  br IL_005a
+
+	IL_0041:  nop 
+	IL_0042:  ldloc.0 
+	IL_0043:  ldc.i4.1 
+	IL_0044:  add 
+	IL_0045:  stloc.0 
+	IL_0046:  ldloc.0 
+	IL_0047:  ldarg.0 
+	IL_0048:  call instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_004d:  blt IL_000f
+
+	IL_0052:  nop 
+	IL_0053:  ldnull 
+	IL_0054:  stloc.2 
+	IL_0055:  br IL_005a
+
+	IL_005a:  ldloc.2 
+	IL_005b:  ret 
+    } // end of method ProjectEntryCollection::get_Item
+
+    // method line 135
+    .method public hidebysig specialname 
+           instance default void set_Item (string guid, class NAnt.VSNet.ProjectEntry 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7438
+	// Code size 60 (0x3c)
+	.maxstack 8
+	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:  ldarg.2 
+	IL_0014:  brtrue IL_0025
+
+	IL_0019:  nop 
+	IL_001a:  ldstr "value"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldarg.1 
+	IL_0027:  call instance bool class NAnt.VSNet.ProjectEntryCollection::Contains(string)
+	IL_002c:  brtrue IL_003b
+
+	IL_0031:  nop 
+	IL_0032:  ldarg.0 
+	IL_0033:  ldarg.2 
+	IL_0034:  call instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	IL_0039:  pop 
+	IL_003a:  nop 
+	IL_003b:  ret 
+    } // end of method ProjectEntryCollection::set_Item
+
+    // method line 136
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.VSNet.ProjectEntry item)  cil managed 
+    {
+        // Method begins at RVA 0x7478
+	// Code size 97 (0x61)
+	.maxstack 4
+	.locals init (
+		class NAnt.VSNet.ProjectEntry	V_0,
+		int32	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "item"
+	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 class NAnt.VSNet.ProjectEntry::get_Guid()
+	IL_001a:  call instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	IL_001f:  stloc.0 
+	IL_0020:  ldloc.0 
+	IL_0021:  brfalse IL_004d
+
+	IL_0026:  nop 
+	IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002c:  ldstr "The GUIDs of projects \"{0}\" and \"{1}\" are identical. Please correct this manually."
+	IL_0031:  ldarg.1 
+	IL_0032:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
+	IL_0037:  ldloc.0 
+	IL_0038:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
+	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:  ldarg.0 
+	IL_004e:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0053:  ldarg.1 
+	IL_0054:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_0059:  stloc.1 
+	IL_005a:  br IL_005f
+
+	IL_005f:  ldloc.1 
+	IL_0060:  ret 
+    } // end of method ProjectEntryCollection::Add
+
+    // method line 137
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.VSNet.ProjectEntry[] items)  cil managed 
+    {
+        // Method begins at RVA 0x74e8
+	// 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.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	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 ProjectEntryCollection::AddRange
+
+    // method line 138
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.VSNet.ProjectEntryCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x7518
+	// 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.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	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 ProjectEntryCollection::AddRange
+
+    // method line 139
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.VSNet.ProjectEntry item)  cil managed 
+    {
+        // Method begins at RVA 0x7550
+	// 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 ProjectEntryCollection::Contains
+
+    // method line 140
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7574
+	// 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.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::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 ProjectEntryCollection::Contains
+
+    // method line 141
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.VSNet.ProjectEntry[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x7596
+	// 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 ProjectEntryCollection::CopyTo
+
+    // method line 142
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.VSNet.ProjectEntry item)  cil managed 
+    {
+        // Method begins at RVA 0x75a8
+	// 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 ProjectEntryCollection::IndexOf
+
+    // method line 143
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.VSNet.ProjectEntry item)  cil managed 
+    {
+        // Method begins at RVA 0x75c9
+	// 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 ProjectEntryCollection::Insert
+
+    // method line 144
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ProjectEntryEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x75dc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ProjectEntryEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.VSNet.ProjectEntryEnumerator::'.ctor'(class NAnt.VSNet.ProjectEntryCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectEntryCollection::GetEnumerator
+
+    // method line 145
+    .method public hidebysig 
+           instance default void Remove (class NAnt.VSNet.ProjectEntry item)  cil managed 
+    {
+        // Method begins at RVA 0x75f7
+	// 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 ProjectEntryCollection::Remove
+
+	.property instance class NAnt.VSNet.ProjectEntry Item (int32)
+	{
+		.get instance default class NAnt.VSNet.ProjectEntry NAnt.VSNet.ProjectEntryCollection::get_Item (int32 index) 
+		.set instance default void NAnt.VSNet.ProjectEntryCollection::set_Item (int32 index, class NAnt.VSNet.ProjectEntry 'value') 
+	}
+	.property instance class NAnt.VSNet.ProjectEntry Item (string)
+	{
+		.get instance default class NAnt.VSNet.ProjectEntry NAnt.VSNet.ProjectEntryCollection::get_Item (string guid) 
+		.set instance default void NAnt.VSNet.ProjectEntryCollection::set_Item (string guid, class NAnt.VSNet.ProjectEntry 'value') 
+	}
+  } // end of class NAnt.VSNet.ProjectEntryCollection
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit ProjectEntryEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 146
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectEntryCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x7608
+	// 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.ProjectEntryEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method ProjectEntryEnumerator::.ctor
+
+    // method line 147
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectEntry get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x762c
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ProjectEntry	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.VSNet.ProjectEntry
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectEntryEnumerator::get_Current
+
+    // method line 148
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x7654
+	.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.ProjectEntryEnumerator::_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 ProjectEntryEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 149
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x7674
+	// 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.ProjectEntryEnumerator::_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 ProjectEntryEnumerator::MoveNext
+
+    // method line 150
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x7694
+	.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.ProjectEntryEnumerator::_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 ProjectEntryEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 151
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x76b4
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ProjectEntryEnumerator::Reset
+
+    // method line 152
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x76c2
+	.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.ProjectEntryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ProjectEntryEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.VSNet.ProjectEntryEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.VSNet.ProjectEntry Current ()
+	{
+		.get instance default class NAnt.VSNet.ProjectEntry NAnt.VSNet.ProjectEntryEnumerator::get_Current () 
+	}
+  } // end of class NAnt.VSNet.ProjectEntryEnumerator
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit Configuration
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.IComparable  {
+    .field  private  string _name
+    .field  private  string _platform
+
+    // method line 153
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x76d0
+	// 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 Configuration::.ctor
+
+    // method line 154
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name, string platform)  cil managed 
+    {
+        // Method begins at RVA 0x76d9
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0018
+
+	IL_000d:  ldstr "name"
+	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0017:  throw 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  stfld string NAnt.VSNet.Configuration::_name
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.2 
+	IL_0021:  stfld string NAnt.VSNet.Configuration::_platform
+	IL_0026:  ret 
+    } // end of method Configuration::.ctor
+
+    // method line 155
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x7704
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.Configuration::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Configuration::get_Name
+
+    // method line 156
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x771f
+	// Code size 26 (0x1a)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0012
+
+	IL_0007:  ldstr "value"
+	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0011:  throw 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.1 
+	IL_0014:  stfld string NAnt.VSNet.Configuration::_name
+	IL_0019:  ret 
+    } // end of method Configuration::set_Name
+
+    // method line 157
+    .method public hidebysig specialname 
+           instance default string get_Platform ()  cil managed 
+    {
+        // Method begins at RVA 0x773c
+	// Code size 37 (0x25)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.Configuration::_platform
+	IL_0007:  brtrue IL_0017
+
+	IL_000c:  ldsfld string [mscorlib]System.String::Empty
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0023
+
+	IL_0017:  ldarg.0 
+	IL_0018:  ldfld string NAnt.VSNet.Configuration::_platform
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_0023
+
+	IL_0023:  ldloc.0 
+	IL_0024:  ret 
+    } // end of method Configuration::get_Platform
+
+    // method line 158
+    .method public hidebysig specialname 
+           instance default void set_Platform (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x776d
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VSNet.Configuration::_platform
+	IL_0008:  ret 
+    } // end of method Configuration::set_Platform
+
+    // method line 159
+    .method public final virtual hidebysig newslot 
+           instance default int32 CompareTo (object obj)  cil managed 
+    {
+        // Method begins at RVA 0x7778
+	// Code size 29 (0x1d)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance bool object::Equals(object)
+	IL_0008:  brfalse IL_0014
+
+	IL_000d:  ldc.i4.0 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_001b
+
+	IL_0014:  ldc.i4.1 
+	IL_0015:  stloc.0 
+	IL_0016:  br IL_001b
+
+	IL_001b:  ldloc.0 
+	IL_001c:  ret 
+    } // end of method Configuration::CompareTo
+
+    // method line 160
+    .method public virtual hidebysig 
+           instance default bool Equals (object obj)  cil managed 
+    {
+        // Method begins at RVA 0x77a4
+	// Code size 105 (0x69)
+	.maxstack 4
+	.locals init (
+		bool	V_0,
+		class NAnt.VSNet.Configuration	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000e
+
+	IL_0007:  ldc.i4.0 
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_0067
+
+	IL_000e:  ldarg.1 
+	IL_000f:  isinst NAnt.VSNet.Configuration
+	IL_0014:  stloc.1 
+	IL_0015:  ldloc.1 
+	IL_0016:  ldnull 
+	IL_0017:  call bool class NAnt.VSNet.Configuration::op_Equality(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	IL_001c:  brfalse IL_0028
+
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0067
+
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance string class NAnt.VSNet.Configuration::get_Name()
+	IL_002e:  ldloc.1 
+	IL_002f:  callvirt instance string class NAnt.VSNet.Configuration::get_Name()
+	IL_0034:  ldc.i4.1 
+	IL_0035:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003a:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_003f:  brtrue IL_0060
+
+	IL_0044:  ldarg.0 
+	IL_0045:  call instance string class NAnt.VSNet.Configuration::get_Platform()
+	IL_004a:  ldloc.1 
+	IL_004b:  callvirt instance string class NAnt.VSNet.Configuration::get_Platform()
+	IL_0050:  ldc.i4.1 
+	IL_0051:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0056:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_005b:  ldc.i4.0 
+	IL_005c:  ceq 
+	IL_005e:  br.s IL_0061
+
+	IL_0060:  ldc.i4.0 
+	IL_0061:  stloc.0 
+	IL_0062:  br IL_0067
+
+	IL_0067:  ldloc.0 
+	IL_0068:  ret 
+    } // end of method Configuration::Equals
+
+    // method line 161
+    .method public virtual hidebysig 
+           instance default int32 GetHashCode ()  cil managed 
+    {
+        // Method begins at RVA 0x781c
+	// Code size 52 (0x34)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.VSNet.Configuration::get_Name()
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0011:  callvirt instance int32 object::GetHashCode()
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance string class NAnt.VSNet.Configuration::get_Platform()
+	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0021:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0026:  callvirt instance int32 object::GetHashCode()
+	IL_002b:  xor 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
+
+	IL_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method Configuration::GetHashCode
+
+    // method line 162
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x785c
+	// Code size 60 (0x3c)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.VSNet.Configuration::get_Platform()
+	IL_0007:  callvirt instance int32 string::get_Length()
+	IL_000c:  brtrue IL_001e
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string class NAnt.VSNet.Configuration::get_Name()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_003a
+
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance string class NAnt.VSNet.Configuration::get_Name()
+	IL_0024:  ldstr "|"
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance string class NAnt.VSNet.Configuration::get_Platform()
+	IL_002f:  call string string::Concat(string, string, string)
+	IL_0034:  stloc.0 
+	IL_0035:  br IL_003a
+
+	IL_003a:  ldloc.0 
+	IL_003b:  ret 
+    } // end of method Configuration::ToString
+
+    // method line 163
+    .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 0x78a4
+	// Code size 33 (0x21)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0012
+
+	IL_0007:  nop 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldnull 
+	IL_000a:  ceq 
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_001f
+
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance bool object::Equals(object)
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_001f
+
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method Configuration::op_Equality
+
+    // method line 164
+    .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 0x78d4
+	// Code size 19 (0x13)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call bool class NAnt.VSNet.Configuration::op_Equality(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	IL_0008:  ldc.i4.0 
+	IL_0009:  ceq 
+	IL_000b:  stloc.0 
+	IL_000c:  br IL_0011
+
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method Configuration::op_Inequality
+
+    // method line 165
+    .method public static hidebysig 
+           default class NAnt.VSNet.Configuration Parse (string config)  cil managed 
+    {
+        // Method begins at RVA 0x78f4
+	// Code size 95 (0x5f)
+	.maxstack 4
+	.locals init (
+		int32	V_0,
+		class NAnt.VSNet.Configuration	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "config"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldstr "|"
+	IL_0019:  callvirt instance int32 string::IndexOf(string)
+	IL_001e:  stloc.0 
+	IL_001f:  ldloc.0 
+	IL_0020:  ldc.i4.0 
+	IL_0021:  ble IL_004f
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ldarg.0 
+	IL_0028:  callvirt instance int32 string::get_Length()
+	IL_002d:  bge IL_004f
+
+	IL_0032:  nop 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldc.i4.0 
+	IL_0035:  ldloc.0 
+	IL_0036:  callvirt instance string string::Substring(int32, int32)
+	IL_003b:  ldarg.0 
+	IL_003c:  ldloc.0 
+	IL_003d:  ldc.i4.1 
+	IL_003e:  add 
+	IL_003f:  callvirt instance string string::Substring(int32)
+	IL_0044:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	IL_0049:  stloc.1 
+	IL_004a:  br IL_005d
+
+	IL_004f:  nop 
+	IL_0050:  ldarg.0 
+	IL_0051:  ldnull 
+	IL_0052:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	IL_0057:  stloc.1 
+	IL_0058:  br IL_005d
+
+	IL_005d:  ldloc.1 
+	IL_005e:  ret 
+    } // end of method Configuration::Parse
+
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.Configuration::get_Name () 
+		.set instance default void NAnt.VSNet.Configuration::set_Name (string 'value') 
+	}
+	.property instance string Platform ()
+	{
+		.get instance default string NAnt.VSNet.Configuration::get_Platform () 
+		.set instance default void NAnt.VSNet.Configuration::set_Platform (string 'value') 
+	}
+  } // end of class NAnt.VSNet.Configuration
+}
+
+.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$map0'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+
+    // method line 166
+    .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 0x8664
+	// 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 167
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x8af8
+	// 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 168
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0x8b14
+	// 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 169
+    .method public virtual hidebysig specialname 
+           instance default string get_ProjectPath ()  cil managed 
+    {
+        // Method begins at RVA 0x8b2c
+	// 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 170
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x8b48
+	// 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 171
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
+    {
+        // Method begins at RVA 0x8b70
+	// 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 172
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    {
+        // Method begins at RVA 0x8b88
+	// 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 173
+    .method public virtual hidebysig specialname 
+           instance default string get_Guid ()  cil managed 
+    {
+        // Method begins at RVA 0x8bb8
+	// 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 174
+    .method public virtual hidebysig specialname 
+           instance default void set_Guid (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x8bd3
+	// 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 175
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
+    {
+        // Method begins at RVA 0x8be0
+	// 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 176
+    .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 0x8bfc
+	// 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 177
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x8c1c
+	// 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 178
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0x8c64
+	// 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 179
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0x8c94
+	// 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 180
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x8cb0
+	// 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 181
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_ProjectFiles ()  cil managed 
+    {
+        // Method begins at RVA 0x90d4
+	// 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 182
+    .method famorassem virtual hidebysig 
+           instance default string ExpandMacro (string macro)  cil managed 
+    {
+        // Method begins at RVA 0x90f0
+	// 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$map0'
+	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$map0'
+	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map0'
+	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 183
+    .method assembly hidebysig 
+           instance default string GetObjOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig, string intermediateDir)  cil managed 
+    {
+        // Method begins at RVA 0x9244
+	// 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 184
+    .method assembly hidebysig 
+           instance default string GetResourceOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
+    {
+        // Method begins at RVA 0x9274
+	// 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 185
+    .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 0x92b0
+	// 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
@@ -5869,11 +8353,11 @@
 	IL_00e0:  ret 
     } // end of method VcProject::CreateReference
 
-    // method line 127
+    // method line 186
     .method private hidebysig 
            instance default void RunNMake (string nmakeCommand)  cil managed 
     {
-        // Method begins at RVA 0x73b0
+        // Method begins at RVA 0x93a0
 	// Code size 132 (0x84)
 	.maxstack 4
 	.locals init (
@@ -5930,11 +8414,11 @@
 	IL_0083:  ret 
     } // end of method VcProject::RunNMake
 
-    // method line 128
+    // method line 187
     .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 0x7450
+        // Method begins at RVA 0x9440
 	// Code size 3078 (0xc06)
 	.maxstack 5
 	.locals init (
@@ -7150,11 +9634,11 @@
 	IL_0c05:  ret 
     } // end of method VcProject::BuildCPPFiles
 
-    // method line 129
+    // method line 188
     .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 0x80a4
+        // Method begins at RVA 0xa094
 	// Code size 769 (0x301)
 	.maxstack 5
 	.locals init (
@@ -7469,11 +9953,11 @@
 	IL_0300:  ret 
     } // end of method VcProject::BuildResourceFiles
 
-    // method line 130
+    // method line 189
     .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 0x83c4
+        // Method begins at RVA 0xa3b4
 	// Code size 1677 (0x68d)
 	.maxstack 5
 	.locals init (
@@ -8121,11 +10605,11 @@
 	IL_068c:  ret 
     } // end of method VcProject::BuildIDLFiles
 
-    // method line 131
+    // method line 190
     .method private hidebysig 
            instance default bool RunCustomBuildStep (class NAnt.VSNet.Configuration solutionConfiguration, class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0x8a7c
+        // Method begins at RVA 0xaa6c
 	// Code size 517 (0x205)
 	.maxstack 4
 	.locals init (
@@ -8369,11 +10853,11 @@
 	IL_0204:  ret 
     } // end of method VcProject::RunCustomBuildStep
 
-    // method line 132
+    // method line 191
     .method private hidebysig 
            instance default void RunLibrarian (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0x8c90
+        // Method begins at RVA 0xac80
 	// Code size 862 (0x35e)
 	.maxstack 5
 	.locals init (
@@ -8745,11 +11229,11 @@
 	IL_035d:  ret 
     } // end of method VcProject::RunLibrarian
 
-    // method line 133
+    // method line 192
     .method private hidebysig 
            instance default void RunLinker (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x900c
+        // Method begins at RVA 0xaffc
 	// Code size 2833 (0xb11)
 	.maxstack 5
 	.locals init (
@@ -9891,11 +12375,11 @@
 	IL_0b10:  ret 
     } // end of method VcProject::RunLinker
 
-    // method line 134
+    // method line 193
     .method private hidebysig 
            instance default void ExecuteInProjectDirectory (class [NAnt.Core]NAnt.Core.Task task)  cil managed 
     {
-        // Method begins at RVA 0x9b60
+        // Method begins at RVA 0xbb50
 	// Code size 101 (0x65)
 	.maxstack 2
 	.locals init (
@@ -9940,11 +12424,11 @@
 	IL_0064:  ret 
     } // end of method VcProject::ExecuteInProjectDirectory
 
-    // method line 135
+    // method line 194
     .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 0x9be4
+        // Method begins at RVA 0xbbd4
 	// Code size 291 (0x123)
 	.maxstack 3
 	.locals init (
@@ -10090,11 +12574,11 @@
 	IL_0122:  ret 
     } // end of method VcProject::MergeToolSetting
 
-    // method line 136
+    // method line 195
     .method private hidebysig 
            instance default bool PreBuild (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0x9d14
+        // Method begins at RVA 0xbd04
 	// Code size 134 (0x86)
 	.maxstack 4
 	.locals init (
@@ -10155,11 +12639,11 @@
 	IL_0085:  ret 
     } // end of method VcProject::PreBuild
 
-    // method line 137
+    // method line 196
     .method private hidebysig 
            instance default bool PostBuild (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0x9da8
+        // Method begins at RVA 0xbd98
 	// Code size 134 (0x86)
 	.maxstack 4
 	.locals init (
@@ -10220,11 +12704,11 @@
 	IL_0085:  ret 
     } // end of method VcProject::PostBuild
 
-    // method line 138
+    // method line 197
     .method private hidebysig 
            instance default bool PreLink (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0x9e3c
+        // Method begins at RVA 0xbe2c
 	// Code size 134 (0x86)
 	.maxstack 4
 	.locals init (
@@ -10285,11 +12769,11 @@
 	IL_0085:  ret 
     } // end of method VcProject::PreLink
 
-    // method line 139
+    // method line 198
     .method private hidebysig 
            instance default bool ExecuteBuildEvent (string buildEvent, string buildCommandLine, class NAnt.VSNet.ConfigurationBase config)  cil managed 
     {
-        // Method begins at RVA 0x9ed0
+        // Method begins at RVA 0xbec0
 	// Code size 85 (0x55)
 	.maxstack 6
 	.locals init (
@@ -10341,11 +12825,11 @@
 	IL_0054:  ret 
     } // end of method VcProject::ExecuteBuildEvent
 
-    // method line 140
+    // method line 199
     .method private hidebysig 
            instance default string GetObjectFile (class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
     {
-        // Method begins at RVA 0x9f44
+        // Method begins at RVA 0xbf34
 	// Code size 67 (0x43)
 	.maxstack 4
 	.locals init (
@@ -10379,11 +12863,11 @@
 	IL_0042:  ret 
     } // end of method VcProject::GetObjectFile
 
-    // method line 141
+    // method line 200
     .method private hidebysig 
            instance default class NAnt.VSNet.ProjectBaseCollection GetVcProjectDependencies ()  cil managed 
     {
-        // Method begins at RVA 0x9f94
+        // Method begins at RVA 0xbf84
 	// Code size 254 (0xfe)
 	.maxstack 2
 	.locals init (
@@ -10512,11 +12996,11 @@
 	IL_00fd:  ret 
     } // end of method VcProject::GetVcProjectDependencies
 
-    // method line 142
+    // method line 201
     .method public static hidebysig 
            default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0xa0bc
+        // Method begins at RVA 0xc0ac
 	// Code size 20 (0x14)
 	.maxstack 2
 	.locals init (
@@ -10532,11 +13016,11 @@
 	IL_0013:  ret 
     } // end of method VcProject::LoadGuid
 
-    // method line 143
+    // method line 202
     .method public static hidebysig 
            default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xa0dc
+        // Method begins at RVA 0xc0cc
 	// Code size 105 (0x69)
 	.maxstack 2
 	.locals init (
@@ -10589,11 +13073,11 @@
 	IL_0068:  ret 
     } // end of method VcProject::IsSupported
 
-    // method line 144
+    // method line 203
     .method private static hidebysig 
            default string CleanPath (string path)  cil managed 
     {
-        // Method begins at RVA 0xa154
+        // Method begins at RVA 0xc144
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -10614,11 +13098,11 @@
 	IL_0019:  ret 
     } // end of method VcProject::CleanPath
 
-    // method line 145
+    // method line 204
     .method private static hidebysig 
            default valuetype NAnt.VSNet.ProductVersion GetProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xa17c
+        // Method begins at RVA 0xc16c
 	// Code size 271 (0x10f)
 	.maxstack 3
 	.locals init (
@@ -10741,11 +13225,11 @@
 	IL_010e:  ret 
     } // end of method VcProject::GetProductVersion
 
-    // method line 146
+    // method line 205
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa2a8
+        // Method begins at RVA 0xc298
 	// Code size 112 (0x70)
 	.maxstack 4
 	IL_0000:  ldc.i4.s 0x0c
@@ -10844,481 +13328,1874 @@
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit VcProjectReference
-  	extends NAnt.VSNet.ProjectReferenceBase
+  .class public auto ansi abstract beforefieldinit ProjectReferenceBase
+  	extends NAnt.VSNet.ReferenceBase
   {
-    .field  private initonly  class NAnt.VSNet.ProjectBase _project
-    .field  private initonly  bool _isPrivateSpecified
-    .field  private initonly  bool _isPrivate
+    .field  private static initonly  class [mscorlib]System.Collections.Stack ProjectStack
 
-    // method line 147
-    .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 line 206
+    .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 0xa558
-	// Code size 174 (0xae)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		string	V_1)
+        // Method begins at RVA 0xc314
+	// Code size 10 (0xa)
+	.maxstack 8
 	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_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:  ldarg.1 
-	IL_000a:  brtrue IL_001b
+	IL_0009:  ret 
+    } // end of method ProjectReferenceBase::.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 207
+    .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_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 208
+    .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_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
+    // method line 209
+    .method public virtual hidebysig specialname 
+           instance default bool get_CopyLocal ()  cil managed 
+    {
+        // Method begins at RVA 0xc320
+	// 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_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_000c:  ldarg.0 
+	IL_000d:  callvirt instance bool class NAnt.VSNet.ProjectReferenceBase::get_IsPrivate()
+	IL_0012:  br IL_0018
 
-	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
+	IL_0017:  ldc.i4.1 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-    // method line 148
-    .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 
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method ProjectReferenceBase::get_CopyLocal
+
+    // method line 210
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xa612
-	// 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
+        // Method begins at RVA 0xc34c
+	// Code size 20 (0x14)
+	.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:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 149
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectReferenceBase::get_Name
+
+    // method line 211
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsSystem ()  cil managed 
+    {
+        // Method begins at RVA 0xc36c
+	// 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 ProjectReferenceBase::get_IsSystem
+
+    // method line 212
     .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xa638
+        // Method begins at RVA 0xc384
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		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 bool class NAnt.VSNet.ProjectBase::IsManaged(class NAnt.VSNet.Configuration)
+	IL_0008:  callvirt instance string class NAnt.VSNet.ProjectBase::GetOutputPath(class NAnt.VSNet.Configuration)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method VcProjectReference::IsManaged
+    } // end of method ProjectReferenceBase::GetPrimaryOutputFile
 
-    // method line 150
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    // method line 213
+    .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 0xa65c
+        // Method begins at RVA 0xc3a5
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
+	.maxstack 8
 	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_000d:  ldloc.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 VcProjectReference::get_Project
+    } // end of method ProjectReferenceBase::GetOutputFiles
 
-    // method line 151
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivate ()  cil managed 
+    // method line 214
+    .method public virtual hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xa678
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xc3b8
+	// Code size 128 (0x80)
+	.maxstack 2
 	.locals init (
-		bool	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.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivate
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectReference::get_IsPrivate
+	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
 
-    // method line 152
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
-    {
-        // Method begins at RVA 0xa694
-	// 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::_isPrivateSpecified
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectReference::get_IsPrivateSpecified
+	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
 
-	.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
-}
+	IL_005f:  nop 
+	IL_0060:  ldloc.2 
+	IL_0061:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0066:  brfalse IL_0075
 
-.namespace NAnt.VSNet
-{
-  .class private auto ansi beforefieldinit VCProjectProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+	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 153
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xa6af
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method VCProjectProvider::.ctor
+	IL_007e:  ldloc.3 
+	IL_007f:  ret 
+    } // end of method ProjectReferenceBase::GetAssemblyReferences
 
-    // method line 154
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 215
+    .method public virtual hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xa6b8
-	// Code size 52 (0x34)
+        // Method begins at RVA 0xc444
+	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	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
-
-	IL_0011:  ldc.i4.5 
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0032
+	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_0018:  ldarg.2 
-	IL_0019:  call bool class NAnt.VSNet.VcProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_001e:  brfalse IL_002b
+	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_0023:  ldc.i4.s 0x0a
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0032
+	IL_0022:  nop 
+	IL_0023:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
+	IL_0028:  stloc.1 
+	IL_0029:  br IL_002e
 
-	IL_002b:  ldc.i4.0 
-	IL_002c:  stloc.0 
-	IL_002d:  br IL_0032
+	IL_002e:  ldloc.1 
+	IL_002f:  ret 
+    } // end of method ProjectReferenceBase::GetTimestamp
 
-	IL_0032:  ldloc.0 
-	IL_0033:  ret 
-    } // end of method VCProjectProvider::IsSupported
+    // method line 216
+    .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 155
-    .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 217
+    .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 0xa6f8
-	// Code size 27 (0x1b)
+        // Method begins at RVA 0xc480
+	// Code size 160 (0xa0)
 	.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_0001:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
 	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_0008:  callvirt instance bool class [mscorlib]System.Collections.Stack::Contains(object)
+	IL_000d:  brfalse IL_003f
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method VCProjectProvider::GetInstance
+	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
 
-    // method line 156
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0xa720
-	// 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.VcProject::LoadGuid(class [System.Xml]System.Xml.XmlElement)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	} // 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VCProjectProvider::LoadGuid
+    // method line 218
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xc53c
+	// 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
 
-  } // end of class NAnt.VSNet.VCProjectProvider
+	.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 VcConfigurationBase
+  .class public auto ansi beforefieldinit ConfigurationSettings
   	extends NAnt.VSNet.ConfigurationBase
   {
-    .field  family initonly  class [mscorlib]System.Collections.Hashtable Tools
+    .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  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 ) // ....
-
+    .field  private initonly  bool _registerForComInterop
 
-    // method line 157
-    .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 line 219
+    .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 0xaa64
-	// Code size 292 (0x124)
-	.maxstack 3
+        // Method begins at RVA 0xc548
+	// Code size 1409 (0x581)
+	.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,
+		char	V_0,
+		char	V_1,
+		string	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)
+		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 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_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:  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_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_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_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_0108:  leave IL_0123
+	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
 
-	} // 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_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_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
+	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 158
-    .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 0xabb0
-	// 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_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 220
+    .method public virtual hidebysig specialname 
+           instance default string get_PlatformName ()  cil managed 
+    {
+        // Method begins at RVA 0xcaf4
+	// 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 221
+    .method public virtual hidebysig specialname 
+           instance default string get_RelativeOutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0xcb10
+	// 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 222
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0xcb2c
+	// 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 223
+    .method public virtual hidebysig specialname 
+           instance default string get_OutputPath ()  cil managed 
+    {
+        // Method begins at RVA 0xcb48
+	// 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 224
+    .method public virtual hidebysig specialname 
+           instance default string get_BuildPath ()  cil managed 
+    {
+        // Method begins at RVA 0xcb84
+	// 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 225
+    .method public hidebysig specialname 
+           instance default string[] get_Settings ()  cil managed 
+    {
+        // Method begins at RVA 0xcbb4
+	// 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 226
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0xcbe4
+	// 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 227
+    .method public hidebysig specialname 
+           instance default bool get_RegisterForComInterop ()  cil managed 
+    {
+        // Method begins at RVA 0xcc00
+	// 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 228
+    .method private hidebysig specialname 
+           instance default bool get_IncrementalBuildSupported ()  cil managed 
+    {
+        // Method begins at RVA 0xcc1c
+	// 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 beforefieldinit GenericSolution
+  	extends NAnt.VSNet.SolutionBase
+  {
+
+    // method line 229
+    .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 0xcc6c
+	// 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 beforefieldinit VBProject
+  	extends NAnt.VSNet.ManagedProjectBase
+  {
+    .field  private initonly  class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection _imports
+
+    // method line 230
+    .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 0xf058
+	// 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 231
+    .method family virtual hidebysig 
+           instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
+    {
+        // Method begins at RVA 0xf120
+	// 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 232
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0xf14c
+	// 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 233
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf162
+	// 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 234
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf194
+	// 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 235
+    .method family virtual hidebysig specialname 
+           instance default string get_FileExtension ()  cil managed 
+    {
+        // Method begins at RVA 0xf1cc
+	// 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 236
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf1e8
+	// 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 237
+    .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 0xf210
+	// 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 238
+    .method public static hidebysig 
+           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf2a0
+	// 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
+}
+
+.namespace NAnt.VSNet
+{
+  .class private auto ansi sealed beforefieldinit SolutionFactory
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectProviders
+
+    // method line 239
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xf324
+	// 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 line 240
+    .method assembly static hidebysig 
+           default class NAnt.VSNet.SolutionFactory Create ()  cil managed 
+    {
+        // Method begins at RVA 0xf338
+	// 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_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method SolutionFactory::Create
+
+    // method line 241
+    .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 0xf354
+	// Code size 147 (0x93)
+	.maxstack 6
+	.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)
+	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_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_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 242
+    .method public hidebysig 
+           instance default void RegisterProvider (class NAnt.VSNet.Extensibility.ISolutionBuildProvider provider)  cil managed 
+    {
+        // Method begins at RVA 0xf404
+	// Code size 15 (0xf)
+	.maxstack 8
+	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
+
+    // method line 243
+    .method private hidebysig 
+           instance default class NAnt.VSNet.Extensibility.ISolutionBuildProvider FindProvider (string fileContents)  cil managed 
+    {
+        // Method begins at RVA 0xf414
+	// Code size 110 (0x6e)
+	.maxstack 2
+	.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)
+	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 
+	.try { // 0
+	  IL_0012:  br IL_003d
+
+	  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_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_0048:  leave IL_0063
+
+	} // 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_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_006b:  ldloc.s 6
+	IL_006d:  ret 
+    } // end of method SolutionFactory::FindProvider
+
+  } // end of class NAnt.VSNet.SolutionFactory
+}
+
+.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$map1'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+
+    // method line 244
+    .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 0x5c04
+	// 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 245
+    .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 0x5d50
+	// 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
@@ -11328,25 +15205,25 @@
 	IL_0021:  ret 
     } // end of method VcConfigurationBase::.ctor
 
-    // method line 159
+    // method line 246
     .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
 
-    // method line 160
+    // method line 247
     .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 161
+    // method line 248
     .method public hidebysig specialname 
            instance default valuetype NAnt.VSNet.Types.UsePrecompiledHeader get_UsePrecompiledHeader ()  cil managed 
     {
-        // Method begins at RVA 0xabd4
+        // Method begins at RVA 0x5d74
 	// Code size 139 (0x8b)
 	.maxstack 3
 	.locals init (
@@ -11416,11 +15293,11 @@
 	IL_008a:  ret 
     } // end of method VcConfigurationBase::get_UsePrecompiledHeader
 
-    // method line 162
+    // method line 249
     .method assembly hidebysig specialname 
            instance default string get_FullName ()  cil managed 
     {
-        // Method begins at RVA 0xac6c
+        // Method begins at RVA 0x5e0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -11435,11 +15312,11 @@
 	IL_000e:  ret 
     } // end of method VcConfigurationBase::get_FullName
 
-    // method line 163
+    // method line 250
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0xac88
+        // Method begins at RVA 0x5e28
 	// Code size 101 (0x65)
 	.maxstack 3
 	.locals init (
@@ -11483,11 +15360,11 @@
 	IL_0064:  ret 
     } // end of method VcConfigurationBase::get_OutputDir
 
-    // method line 164
+    // method line 251
     .method public virtual hidebysig specialname 
            instance default string get_BuildPath ()  cil managed 
     {
-        // Method begins at RVA 0xacfc
+        // Method begins at RVA 0x5e9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -11502,11 +15379,11 @@
 	IL_000e:  ret 
     } // end of method VcConfigurationBase::get_BuildPath
 
-    // method line 165
+    // method line 252
     .method public virtual hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xad18
+        // Method begins at RVA 0x5eb8
 	// Code size 60 (0x3c)
 	.maxstack 3
 	.locals init (
@@ -11541,11 +15418,11 @@
 	IL_003b:  ret 
     } // end of method VcConfigurationBase::get_Name
 
-    // method line 166
+    // method line 253
     .method public virtual hidebysig specialname 
            instance default string get_PlatformName ()  cil managed 
     {
-        // Method begins at RVA 0xad60
+        // Method begins at RVA 0x5f00
 	// Code size 105 (0x69)
 	.maxstack 4
 	.locals init (
@@ -11599,11 +15476,11 @@
 	IL_0068:  ret 
     } // end of method VcConfigurationBase::get_PlatformName
 
-    // method line 167
+    // method line 254
     .method famorassem virtual hidebysig 
            instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0xadd8
+        // Method begins at RVA 0x5f78
 	// Code size 480 (0x1e0)
 	.maxstack 3
 	.locals init (
@@ -11774,11 +15651,11 @@
 	IL_01df:  ret 
     } // end of method VcConfigurationBase::ExpandMacro
 
-    // method line 168
+    // method line 255
     .method public hidebysig 
            instance default string GetToolSetting (string toolName, string settingName)  cil managed 
     {
-        // Method begins at RVA 0xafd4
+        // Method begins at RVA 0x6174
 	// Code size 18 (0x12)
 	.maxstack 4
 	.locals init (
@@ -11796,18 +15673,18 @@
 	IL_0011:  ret 
     } // end of method VcConfigurationBase::GetToolSetting
 
-    // method line 169
+    // method line 256
     .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
 
-    // method line 170
+    // method line 257
     .method public hidebysig 
            instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap)  cil managed 
     {
-        // Method begins at RVA 0xaff4
+        // Method begins at RVA 0x6194
 	// Code size 18 (0x12)
 	.maxstack 4
 	.locals init (
@@ -11825,7 +15702,7 @@
 	IL_0011:  ret 
     } // end of method VcConfigurationBase::GetToolArguments
 
-    // method line 171
+    // method line 258
     .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 
     {
@@ -11868,7 +15745,7 @@
   	extends [mscorlib]System.MulticastDelegate
   {
 
-    // method line 172
+    // method line 259
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
@@ -11876,7 +15753,7 @@
           // Disassembly of native methods is not supported
     } // end of method ExpansionHandler::.ctor
 
-    // method line 173
+    // method line 260
     .method public virtual hidebysig newslot 
            instance default string Invoke (string 'value')  runtime managed 
     {
@@ -11884,7 +15761,7 @@
           // Disassembly of native methods is not supported
     } // end of method ExpansionHandler::Invoke
 
-    // method line 174
+    // method line 261
     .method public virtual hidebysig newslot 
            instance default class [mscorlib]System.IAsyncResult BeginInvoke (string 'value', class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
     {
@@ -11892,7 +15769,7 @@
           // Disassembly of native methods is not supported
     } // end of method ExpansionHandler::BeginInvoke
 
-    // method line 175
+    // method line 262
     .method public virtual hidebysig newslot 
            instance default string EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
@@ -11907,1426 +15784,4729 @@
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit Configuration
+  .class public auto ansi sealed beforefieldinit ConfigurationMap
   	extends [mscorlib]System.Object
-  	implements [mscorlib]System.IComparable  {
-    .field  private  string _name
-    .field  private  string _platform
+  	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..
 
-    // method line 176
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _innerHash
+
+    // method line 263
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb012
-	// Code size 8 (0x8)
+        // Method begins at RVA 0xf4a0
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method Configuration::.ctor
+	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 177
+    // method line 264
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name, string platform)  cil managed 
+           instance default void '.ctor' (int32 capacity)  cil managed 
     {
-        // Method begins at RVA 0xb01b
-	// Code size 39 (0x27)
+        // Method begins at RVA 0xf4b4
+	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0018
-
-	IL_000d:  ldstr "name"
-	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0017:  throw 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  stfld string NAnt.VSNet.Configuration::_name
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.2 
-	IL_0021:  stfld string NAnt.VSNet.Configuration::_platform
-	IL_0026:  ret 
-    } // end of method Configuration::.ctor
+	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 178
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 265
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
     {
-        // Method begins at RVA 0xb044
+        // Method begins at RVA 0xf4cc
 	// 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.Configuration::_name
+	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 Configuration::get_Name
+    } // end of method ConfigurationMap::get_InnerHash
 
-    // method line 179
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+    // method line 266
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ConfigurationMapEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xb05f
-	// Code size 26 (0x1a)
-	.maxstack 8
+        // Method begins at RVA 0xf4e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationMapEnumerator	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0012
+	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_0007:  ldstr "value"
-	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0011:  throw 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.1 
-	IL_0014:  stfld string NAnt.VSNet.Configuration::_name
-	IL_0019:  ret 
-    } // end of method Configuration::set_Name
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::GetEnumerator
 
-    // method line 180
-    .method public hidebysig specialname 
-           instance default string get_Platform ()  cil managed 
+    // method line 267
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xb07c
-	// Code size 37 (0x25)
+        // Method begins at RVA 0xf504
+	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.Configuration::_platform
-	IL_0007:  brtrue IL_0017
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldsfld string [mscorlib]System.String::Empty
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0023
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.GetEnumerator
 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldfld string NAnt.VSNet.Configuration::_platform
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_0023
+    // method line 268
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0xf520
+	.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_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method Configuration::get_Platform
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 181
-    .method public hidebysig specialname 
-           instance default void set_Platform (string 'value')  cil managed 
+    // method line 269
+    .method public hidebysig 
+           instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
     {
-        // Method begins at RVA 0xb0ad
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf53b
+	// 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 270
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+    {
+        // Method begins at RVA 0xf54a
+	.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:  stfld string NAnt.VSNet.Configuration::_platform
-	IL_0008:  ret 
-    } // end of method Configuration::set_Platform
+	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 182
-    .method public final virtual hidebysig newslot 
-           instance default int32 CompareTo (object obj)  cil managed 
+    // method line 271
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
     {
-        // Method begins at RVA 0xb0b8
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0xf55c
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance bool object::Equals(object)
-	IL_0008:  brfalse IL_0014
+	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_000d:  ldc.i4.0 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_001b
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationMap::Contains
 
-	IL_0014:  ldc.i4.1 
-	IL_0015:  stloc.0 
-	IL_0016:  br IL_001b
+    // method line 272
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+    {
+        // Method begins at RVA 0xf580
+	.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_001b:  ldloc.0 
-	IL_001c:  ret 
-    } // end of method Configuration::CompareTo
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.Contains
 
-    // method line 183
-    .method public virtual hidebysig 
-           instance default bool Equals (object obj)  cil managed 
+    // method line 273
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0xb0e4
-	// Code size 105 (0x69)
-	.maxstack 4
-	.locals init (
-		bool	V_0,
-		class NAnt.VSNet.Configuration	V_1)
+        // Method begins at RVA 0xf5a1
+	// Code size 13 (0xd)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_000e
+	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
 
-	IL_0007:  ldc.i4.0 
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_0067
+    // method line 274
+    .method public hidebysig 
+           instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+    {
+        // Method begins at RVA 0xf5af
+	// 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_000e:  ldarg.1 
-	IL_000f:  isinst NAnt.VSNet.Configuration
-	IL_0014:  stloc.1 
-	IL_0015:  ldloc.1 
-	IL_0016:  ldnull 
-	IL_0017:  call bool class NAnt.VSNet.Configuration::op_Equality(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	IL_001c:  brfalse IL_0028
+    // method line 275
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0xf5bf
+	.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_0021:  ldc.i4.0 
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_0067
+    // method line 276
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
+    {
+        // Method begins at RVA 0xf5d4
+	// 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_0028:  ldarg.0 
-	IL_0029:  call instance string class NAnt.VSNet.Configuration::get_Name()
-	IL_002e:  ldloc.1 
-	IL_002f:  callvirt instance string class NAnt.VSNet.Configuration::get_Name()
-	IL_0034:  ldc.i4.1 
-	IL_0035:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003a:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_003f:  brtrue IL_0060
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_IsReadOnly
 
-	IL_0044:  ldarg.0 
-	IL_0045:  call instance string class NAnt.VSNet.Configuration::get_Platform()
-	IL_004a:  ldloc.1 
-	IL_004b:  callvirt instance string class NAnt.VSNet.Configuration::get_Platform()
-	IL_0050:  ldc.i4.1 
-	IL_0051:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0056:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_005b:  ldc.i4.0 
-	IL_005c:  ceq 
-	IL_005e:  br.s IL_0061
+    // method line 277
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Item (class NAnt.VSNet.Configuration key)  cil managed 
+    {
+        // Method begins at RVA 0xf5f4
+	// 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_0060:  ldc.i4.0 
-	IL_0061:  stloc.0 
-	IL_0062:  br IL_0067
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationMap::get_Item
 
-	IL_0067:  ldloc.0 
-	IL_0068:  ret 
-    } // end of method Configuration::Equals
+    // method line 278
+    .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 0xf61a
+	// 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 184
-    .method public virtual hidebysig 
-           instance default int32 GetHashCode ()  cil managed 
+    // method line 279
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
     {
-        // Method begins at RVA 0xb15c
-	// Code size 52 (0x34)
-	.maxstack 3
+        // Method begins at RVA 0xf62c
+	.override class [mscorlib]System.Collections.IDictionary::get_Item
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		int32	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.VSNet.Configuration::get_Name()
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0011:  callvirt instance int32 object::GetHashCode()
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance string class NAnt.VSNet.Configuration::get_Platform()
-	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0026:  callvirt instance int32 object::GetHashCode()
-	IL_002b:  xor 
-	IL_002c:  stloc.0 
-	IL_002d:  br IL_0032
+	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_0032:  ldloc.0 
-	IL_0033:  ret 
-    } // end of method Configuration::GetHashCode
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.get_Item
 
-    // method line 185
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 280
+    .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 0xb19c
-	// Code size 60 (0x3c)
-	.maxstack 3
+        // Method begins at RVA 0xf64d
+	.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 281
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    {
+        // Method begins at RVA 0xf664
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Collections.ICollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.VSNet.Configuration::get_Platform()
-	IL_0007:  callvirt instance int32 string::get_Length()
-	IL_000c:  brtrue IL_001e
+	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_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string class NAnt.VSNet.Configuration::get_Name()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_003a
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_Values
 
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance string class NAnt.VSNet.Configuration::get_Name()
-	IL_0024:  ldstr "|"
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance string class NAnt.VSNet.Configuration::get_Platform()
-	IL_002f:  call string string::Concat(string, string, string)
-	IL_0034:  stloc.0 
-	IL_0035:  br IL_003a
+    // method line 282
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+    {
+        // Method begins at RVA 0xf684
+	// 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_003a:  ldloc.0 
-	IL_003b:  ret 
-    } // end of method Configuration::ToString
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_Keys
 
-    // method line 186
-    .method public static hidebysig specialname 
-           default bool op_Equality (class NAnt.VSNet.Configuration c1, class NAnt.VSNet.Configuration c2)  cil managed 
+    // method line 283
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0xb1e4
-	// Code size 33 (0x21)
-	.maxstack 2
+        // Method begins at RVA 0xf6a4
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0012
-
-	IL_0007:  nop 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldnull 
-	IL_000a:  ceq 
+	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_001f
+	IL_000d:  br IL_0012
 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance bool object::Equals(object)
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_IsFixedSize
 
-	IL_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method Configuration::op_Equality
+    // method line 284
+    .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 0xf6c4
+	.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 187
-    .method public static hidebysig specialname 
-           default bool op_Inequality (class NAnt.VSNet.Configuration c1, class NAnt.VSNet.Configuration c2)  cil managed 
+    // method line 285
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0xb214
-	// Code size 19 (0x13)
-	.maxstack 2
+        // Method begins at RVA 0xf6d4
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call bool class NAnt.VSNet.Configuration::op_Equality(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	IL_0008:  ldc.i4.0 
-	IL_0009:  ceq 
-	IL_000b:  stloc.0 
-	IL_000c:  br IL_0011
+	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_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method Configuration::op_Inequality
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_IsSynchronized
 
-    // method line 188
-    .method public static hidebysig 
-           default class NAnt.VSNet.Configuration Parse (string config)  cil managed 
+    // method line 286
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0xb234
-	// Code size 95 (0x5f)
-	.maxstack 4
+        // Method begins at RVA 0xf6f4
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		int32	V_0,
-		class NAnt.VSNet.Configuration	V_1)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "config"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldstr "|"
-	IL_0019:  callvirt instance int32 string::IndexOf(string)
-	IL_001e:  stloc.0 
-	IL_001f:  ldloc.0 
-	IL_0020:  ldc.i4.0 
-	IL_0021:  ble IL_004f
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ldarg.0 
-	IL_0028:  callvirt instance int32 string::get_Length()
-	IL_002d:  bge IL_004f
+	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_0032:  nop 
-	IL_0033:  ldarg.0 
-	IL_0034:  ldc.i4.0 
-	IL_0035:  ldloc.0 
-	IL_0036:  callvirt instance string string::Substring(int32, int32)
-	IL_003b:  ldarg.0 
-	IL_003c:  ldloc.0 
-	IL_003d:  ldc.i4.1 
-	IL_003e:  add 
-	IL_003f:  callvirt instance string string::Substring(int32)
-	IL_0044:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
-	IL_0049:  stloc.1 
-	IL_004a:  br IL_005d
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_Count
 
-	IL_004f:  nop 
-	IL_0050:  ldarg.0 
-	IL_0051:  ldnull 
-	IL_0052:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
-	IL_0057:  stloc.1 
-	IL_0058:  br IL_005d
+    // method line 287
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_SyncRoot ()  cil managed 
+    {
+        // Method begins at RVA 0xf714
+	// 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_005d:  ldloc.1 
-	IL_005e:  ret 
-    } // end of method Configuration::Parse
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_SyncRoot
 
-	.property instance string Name ()
+	.property instance object System.Collections.IDictionary.Item (object)
 	{
-		.get instance default string NAnt.VSNet.Configuration::get_Name () 
-		.set instance default void NAnt.VSNet.Configuration::set_Name (string 'value') 
+		.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 string Platform ()
+	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
 	{
-		.get instance default string NAnt.VSNet.Configuration::get_Platform () 
-		.set instance default void NAnt.VSNet.Configuration::set_Platform (string 'value') 
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::get_InnerHash () 
 	}
-  } // end of class NAnt.VSNet.Configuration
+	.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 ProjectEntry
+  .class public auto ansi beforefieldinit ConfigurationMapEnumerator
   	extends [mscorlib]System.Object
-  {
-    .field  private initonly  string _guid
-    .field  private initonly  string _path
-    .field  private  class NAnt.VSNet.ProjectBase _project
-    .field  private  class NAnt.VSNet.ConfigurationMap _buildConfigurations
+  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
+    .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
 
-    // method line 189
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string guid, string path)  cil managed 
+    // method line 288
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ConfigurationMap enumerable)  cil managed 
     {
-        // Method begins at RVA 0xb29f
-	// Code size 58 (0x3a)
+        // Method begins at RVA 0xf734
+	// 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_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_000d:  nop 
-	IL_000e:  ldstr "guid"
-	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 289
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0xf750
+	// 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_001f:  nop 
-	IL_0020:  ldstr "path"
-	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002a:  throw 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  stfld string NAnt.VSNet.ProjectEntry::_guid
-	IL_0032:  ldarg.0 
-	IL_0033:  ldarg.2 
-	IL_0034:  stfld string NAnt.VSNet.ProjectEntry::_path
-	IL_0039:  ret 
-    } // end of method ProjectEntry::.ctor
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Key
 
-    // method line 190
-    .method public hidebysig specialname 
-           instance default string get_Guid ()  cil managed 
+    // method line 290
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
     {
-        // Method begins at RVA 0xb2dc
+        // Method begins at RVA 0xf778
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
 	// 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.VSNet.ProjectEntry::_guid
+	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 ProjectEntry::get_Guid
+    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key
 
-    // method line 191
+    // method line 291
     .method public hidebysig specialname 
-           instance default string get_Path ()  cil managed 
+           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xb2f8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xf794
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.Configuration	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectEntry::_path
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectEntry::get_Path
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Value
 
-    // method line 192
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    // method line 292
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xb314
+        // Method begins at RVA 0xf7bc
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectEntry::_project
+	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 ProjectEntry::get_Project
+    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value
 
-    // method line 193
-    .method public hidebysig specialname 
-           instance default void set_Project (class NAnt.VSNet.ProjectBase 'value')  cil managed 
+    // method line 293
+    .method public final virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
     {
-        // Method begins at RVA 0xb330
-	// Code size 90 (0x5a)
-	.maxstack 5
+        // Method begins at RVA 0xf7d8
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0052
+	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_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance string class NAnt.VSNet.ProjectEntry::get_Guid()
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	IL_0014:  ldc.i4.1 
-	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001a:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_001f:  brfalse IL_0051
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Entry
 
-	IL_0024:  nop 
-	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002a:  ldstr "GUID corruption detected for project '{0}'. GUID values in project file and solution file do not match ('{1}' and '{2}'). Please correct this manually."
-	IL_002f:  ldarg.1 
-	IL_0030:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0035:  ldarg.1 
-	IL_0036:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance string class NAnt.VSNet.ProjectEntry::get_Guid()
-	IL_0041:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, 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:  nop 
-	IL_0052:  ldarg.0 
-	IL_0053:  ldarg.1 
-	IL_0054:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectEntry::_project
-	IL_0059:  ret 
-    } // end of method ProjectEntry::set_Project
+    // method line 294
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xf7fe
+	// 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 194
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationMap get_BuildConfigurations ()  cil managed 
+    // method line 295
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0xf80c
+	// 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 296
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xb398
+        // Method begins at RVA 0xf82c
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ConfigurationMap	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ConfigurationMap NAnt.VSNet.ProjectEntry::_buildConfigurations
+	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 ProjectEntry::get_BuildConfigurations
+    } // end of method ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 195
+    // method line 297
     .method public hidebysig specialname 
-           instance default void set_BuildConfigurations (class NAnt.VSNet.ConfigurationMap 'value')  cil managed 
+           instance default class NAnt.VSNet.ConfigurationMapEntry get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xb3b3
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xf848
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ConfigurationMapEntry	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.VSNet.ConfigurationMap NAnt.VSNet.ProjectEntry::_buildConfigurations
-	IL_0008:  ret 
-    } // end of method ProjectEntry::set_BuildConfigurations
+	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
 
-	.property instance string Guid ()
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Current
+
+	.property instance object System.Collections.IDictionaryEnumerator.Key ()
 	{
-		.get instance default string NAnt.VSNet.ProjectEntry::get_Guid () 
+		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
 	}
-	.property instance string Path ()
+	.property instance object System.Collections.IDictionaryEnumerator.Value ()
 	{
-		.get instance default string NAnt.VSNet.ProjectEntry::get_Path () 
+		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
 	}
-	.property instance class NAnt.VSNet.ProjectBase Project ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectEntry::get_Project () 
-		.set instance default void NAnt.VSNet.ProjectEntry::set_Project (class NAnt.VSNet.ProjectBase 'value') 
+		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.VSNet.ConfigurationMap BuildConfigurations ()
+	.property instance class NAnt.VSNet.Configuration Key ()
 	{
-		.get instance default class NAnt.VSNet.ConfigurationMap NAnt.VSNet.ProjectEntry::get_BuildConfigurations () 
-		.set instance default void NAnt.VSNet.ProjectEntry::set_BuildConfigurations (class NAnt.VSNet.ConfigurationMap 'value') 
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEnumerator::get_Key () 
 	}
-  } // end of class NAnt.VSNet.ProjectEntry
+	.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 serializable beforefieldinit ProjectEntryCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi sealed beforefieldinit ConfigurationMapEntry
+  	extends [mscorlib]System.Object
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
+    .field  private initonly  class NAnt.VSNet.Configuration _key
+    .field  private initonly  class NAnt.VSNet.Configuration _value
 
-    // method line 196
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 298
+    .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 0xb3bd
-	// Code size 8 (0x8)
+        // Method begins at RVA 0xf86e
+	// 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:  ret 
-    } // end of method ProjectEntryCollection::.ctor
+	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 197
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectEntryCollection 'value')  cil managed 
+    // method line 299
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
     {
-        // Method begins at RVA 0xb3c6
+        // Method begins at RVA 0xf888
 	// 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.ProjectEntryCollection::AddRange(class NAnt.VSNet.ProjectEntryCollection)
+	.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 ProjectEntryCollection::.ctor
+    } // end of method ConfigurationMapEntry::get_Key
 
-    // method line 198
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectEntry[] 'value')  cil managed 
+    // method line 300
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xb3d6
+        // Method begins at RVA 0xf8a4
 	// Code size 15 (0xf)
-	.maxstack 8
+	.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 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
+
+    // method line 301
+    .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 0xf8c0
+	// Code size 64 (0x40)
+	.maxstack 3
 	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.VSNet.ProjectEntryCollection::AddRange(class NAnt.VSNet.ProjectEntry[])
-	IL_000e:  ret 
-    } // end of method ProjectEntryCollection::.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 199
+    // method line 302
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectEntry get_Item (int32 index)  cil managed 
+           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0xb3e8
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0xf90c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0)
+		class [mscorlib]System.Globalization.CultureInfo	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.ProjectEntry
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  ldfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::_culture
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ProjectEntryCollection::get_Item
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Resource::get_Culture
 
-    // method line 200
+    // method line 303
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.VSNet.ProjectEntry 'value')  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
     {
-        // Method begins at RVA 0xb40e
+        // Method begins at RVA 0xf928
 	// Code size 15 (0xf)
-	.maxstack 8
+	.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.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_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::_resourceSourceFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ProjectEntryCollection::set_Item
+    } // end of method Resource::get_InputFile
 
-    // method line 201
+    // method line 304
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectEntry get_Item (string guid)  cil managed 
+           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0xb420
-	// Code size 92 (0x5c)
-	.maxstack 4
+        // Method begins at RVA 0xf944
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0,
-		class NAnt.VSNet.ProjectEntry	V_1,
-		class NAnt.VSNet.ProjectEntry	V_2)
+		class NAnt.VSNet.ManagedProjectBase	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0053
-
-	IL_0007:  nop 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_0046
-
-	IL_000f:  nop 
-	IL_0010:  ldarg.0 
-	IL_0011:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0016:  ldloc.0 
-	IL_0017:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_001c:  castclass NAnt.VSNet.ProjectEntry
-	IL_0021:  stloc.1 
-	IL_0022:  ldloc.1 
-	IL_0023:  callvirt instance string class NAnt.VSNet.ProjectEntry::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.2 
-	IL_003c:  br IL_005a
-
-	IL_0041:  nop 
-	IL_0042:  ldloc.0 
-	IL_0043:  ldc.i4.1 
-	IL_0044:  add 
-	IL_0045:  stloc.0 
-	IL_0046:  ldloc.0 
-	IL_0047:  ldarg.0 
-	IL_0048:  call instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_004d:  blt IL_000f
-
-	IL_0052:  nop 
-	IL_0053:  ldnull 
-	IL_0054:  stloc.2 
-	IL_0055:  br IL_005a
+	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_005a:  ldloc.2 
-	IL_005b:  ret 
-    } // end of method ProjectEntryCollection::get_Item
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Resource::get_Project
 
-    // method line 202
+    // method line 305
     .method public hidebysig specialname 
-           instance default void set_Item (string guid, class NAnt.VSNet.ProjectEntry 'value')  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_LogicalFile ()  cil managed 
     {
-        // Method begins at RVA 0xb488
-	// Code size 60 (0x3c)
-	.maxstack 8
+        // Method begins at RVA 0xf960
+	// Code size 41 (0x29)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	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_0007:  nop 
-	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_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method Resource::get_LogicalFile
 
-	IL_0019:  nop 
-	IL_001a:  ldstr "value"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldarg.1 
-	IL_0027:  call instance bool class NAnt.VSNet.ProjectEntryCollection::Contains(string)
-	IL_002c:  brtrue IL_003b
+    // method line 306
+    .method public hidebysig specialname 
+           instance default bool get_IsResX ()  cil managed 
+    {
+        // Method begins at RVA 0xf998
+	// 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_0031:  nop 
-	IL_0032:  ldarg.0 
-	IL_0033:  ldarg.2 
-	IL_0034:  call instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	IL_0039:  pop 
-	IL_003a:  nop 
-	IL_003b:  ret 
-    } // end of method ProjectEntryCollection::set_Item
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method Resource::get_IsResX
 
-    // method line 203
+    // method line 307
     .method public hidebysig 
-           instance default int32 Add (class NAnt.VSNet.ProjectEntry item)  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xb4c8
-	// Code size 97 (0x61)
-	.maxstack 4
+        // Method begins at RVA 0xf9cc
+	// Code size 116 (0x74)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0,
-		int32	V_1)
+		class [mscorlib]System.IO.FileInfo	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.FileInfo	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	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_0007:  nop 
-	IL_0008:  ldstr "item"
-	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 class NAnt.VSNet.ProjectEntry::get_Guid()
-	IL_001a:  call instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	IL_001f:  stloc.0 
-	IL_0020:  ldloc.0 
-	IL_0021:  brfalse IL_004d
+	IL_001f:  ldloc.1 
+	IL_0020:  ldstr ".resx"
+	IL_0025:  call bool string::op_Equality(string, string)
+	IL_002a:  brtrue IL_0044
 
-	IL_0026:  nop 
-	IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002c:  ldstr "The GUIDs of projects \"{0}\" and \"{1}\" are identical. Please correct this manually."
-	IL_0031:  ldarg.1 
-	IL_0032:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
-	IL_0037:  ldloc.0 
-	IL_0038:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
-	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:  ldarg.0 
-	IL_004e:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0053:  ldarg.1 
-	IL_0054:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_0059:  stloc.1 
-	IL_005a:  br IL_005f
+	IL_002f:  ldloc.1 
+	IL_0030:  ldstr ".licx"
+	IL_0035:  call bool string::op_Equality(string, string)
+	IL_003a:  brtrue IL_0051
 
-	IL_005f:  ldloc.1 
-	IL_0060:  ret 
-    } // end of method ProjectEntryCollection::Add
+	IL_003f:  br IL_005e
 
-    // method line 204
+	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 308
     .method public hidebysig 
-           instance default void AddRange (class NAnt.VSNet.ProjectEntry[] items)  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo GetCompiledResourceFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xb538
-	// Code size 34 (0x22)
+        // Method begins at RVA 0xfa4c
+	// Code size 199 (0xc7)
 	.maxstack 3
 	.locals init (
-		int32	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:  ldc.i4.0 
+	IL_0001:  ldnull 
 	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	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_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.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	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_0036:  ldloc.2 
+	IL_0037:  ldstr ".resx"
+	IL_003c:  call bool string::op_Equality(string, string)
+	IL_0041:  brtrue IL_005b
 
-	IL_0021:  ret 
-    } // end of method ProjectEntryCollection::AddRange
+	IL_0046:  ldloc.2 
+	IL_0047:  ldstr ".licx"
+	IL_004c:  call bool string::op_Equality(string, string)
+	IL_0051:  brtrue IL_0078
 
-    // method line 205
+	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 309
     .method public hidebysig 
-           instance default void AddRange (class NAnt.VSNet.ProjectEntryCollection items)  cil managed 
+           instance default string GetManifestResourceName (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xb568
-	// Code size 41 (0x29)
+        // Method begins at RVA 0xfb20
+	// Code size 159 (0x9f)
 	.maxstack 3
 	.locals init (
-		int32	V_0)
+		class NAnt.VSNet.ConfigurationSettings	V_0,
+		valuetype NAnt.VSNet.ProjectType	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	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_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	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_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_0028:  ret 
-    } // end of method ProjectEntryCollection::AddRange
+	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
 
-    // method line 206
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.VSNet.ProjectEntry item)  cil managed 
+	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 310
+    .method private hidebysig 
+           instance default string GetManifestResourceNameCSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0xb5a0
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0xfbcc
+	// Code size 225 (0xe1)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		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:  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:  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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectEntryCollection::Contains
+	IL_00df:  ldloc.2 
+	IL_00e0:  ret 
+    } // end of method Resource::GetManifestResourceNameCSharp
 
-    // method line 207
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
+    // method line 311
+    .method private hidebysig 
+           instance default string GetManifestResourceNameVB (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0xb5c4
-	// Code size 22 (0x16)
-	.maxstack 2
+        // Method begins at RVA 0xfcbc
+	// 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:  ldarg.1 
-	IL_0003:  call instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::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:  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_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method ProjectEntryCollection::Contains
+	IL_00f5:  ldloc.2 
+	IL_00f6:  ret 
+    } // end of method Resource::GetManifestResourceNameVB
 
-    // method line 208
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.VSNet.ProjectEntry[] 'array', int32 index)  cil managed 
+    // method line 312
+    .method private hidebysig 
+           instance default string GetManifestResourceNameJSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0xb5e6
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0xfdc0
+	// 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:  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 ProjectEntryCollection::CopyTo
+	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
 
-    // method line 209
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.VSNet.ProjectEntry item)  cil managed 
+	IL_00df:  ldloc.2 
+	IL_00e0:  ret 
+    } // end of method Resource::GetManifestResourceNameJSharp
+
+    // method line 313
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo CompileResource (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xb5f8
-	// Code size 21 (0x15)
+        // Method begins at RVA 0xfeb0
+	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
-		int32	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 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 ProjectEntryCollection::IndexOf
+	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
 
-    // method line 210
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.VSNet.ProjectEntry item)  cil managed 
-    {
-        // Method begins at RVA 0xb619
-	// 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 ProjectEntryCollection::Insert
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method Resource::CompileResource
 
-    // method line 211
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ProjectEntryEnumerator GetEnumerator ()  cil managed 
+    // method line 314
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo CompileLicx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xb62c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xfecc
+	// Code size 437 (0x1b5)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.ProjectEntryEnumerator	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:  newobj instance void class NAnt.VSNet.ProjectEntryEnumerator::'.ctor'(class NAnt.VSNet.ProjectEntryCollection)
-	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 ProjectEntryCollection::GetEnumerator
+	  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
 
-    // method line 212
-    .method public hidebysig 
-           instance default void Remove (class NAnt.VSNet.ProjectEntry item)  cil managed 
+	    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 315
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo CompileResx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xb647
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x100b8
+	// Code size 7 (0x7)
 	.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 ProjectEntryCollection::Remove
+	IL_0001:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'()
+	IL_0006:  throw 
+    } // end of method Resource::CompileResx
 
-	.property instance class NAnt.VSNet.ProjectEntry Item (int32)
+	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
 	{
-		.get instance default class NAnt.VSNet.ProjectEntry NAnt.VSNet.ProjectEntryCollection::get_Item (int32 index) 
-		.set instance default void NAnt.VSNet.ProjectEntryCollection::set_Item (int32 index, class NAnt.VSNet.ProjectEntry 'value') 
+		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::get_Culture () 
 	}
-	.property instance class NAnt.VSNet.ProjectEntry Item (string)
+	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
 	{
-		.get instance default class NAnt.VSNet.ProjectEntry NAnt.VSNet.ProjectEntryCollection::get_Item (string guid) 
-		.set instance default void NAnt.VSNet.ProjectEntryCollection::set_Item (string guid, class NAnt.VSNet.ProjectEntry 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::get_InputFile () 
 	}
-  } // end of class NAnt.VSNet.ProjectEntryCollection
+	.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 beforefieldinit ProjectEntryEnumerator
+  .class public auto ansi abstract beforefieldinit SolutionBase
   	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+  {
+    .field  private initonly  class [mscorlib]System.IO.FileInfo _file
+    .field  private initonly  class NAnt.VSNet.ProjectEntryCollection _projectEntries
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _htOutputFiles
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _htReferenceProjects
+    .field  private initonly  class NAnt.VSNet.Tasks.SolutionTask _solutionTask
+    .field  private initonly  class NAnt.VSNet.Types.WebMapCollection _webMaps
+    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
+    .field  private initonly  class [System]System.CodeDom.Compiler.TempFileCollection _tfc
 
-    // method line 213
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectEntryCollection arguments)  cil managed 
+    // method line 316
+    .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 0xb658
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x2b80
+	// Code size 102 (0x66)
+	.maxstack 4
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.VSNet.SolutionBase::'.ctor'(class [System]System.CodeDom.Compiler.TempFileCollection, class NAnt.VSNet.Tasks.SolutionTask)
+	IL_0008:  nop 
+	IL_0009:  ldarg.1 
+	IL_000a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_000f:  brfalse IL_0027
+
+	IL_0014:  nop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.1 
+	IL_0017:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_001c:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.SolutionBase::_file
+	IL_0021:  nop 
+	IL_0022:  br IL_0065
+
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.1 
+	IL_002a:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_Projects()
+	IL_002f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0034:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
+	IL_0039:  ldc.i4.0 
+	IL_003a:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
+	IL_003f:  ldarg.0 
+	IL_0040:  ldarg.1 
+	IL_0041:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ReferenceProjects()
+	IL_0046:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_004b:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
+	IL_0050:  ldc.i4.1 
+	IL_0051:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
+	IL_0056:  ldarg.0 
+	IL_0057:  ldarg.3 
+	IL_0058:  ldarg.s 4
+	IL_005a:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_005f:  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_0064:  nop 
+	IL_0065:  ret 
+    } // end of method SolutionBase::.ctor
+
+    // method line 317
+    .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 0x2bf4
+	// Code size 79 (0x4f)
 	.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.ProjectEntryEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method ProjectEntryEnumerator::.ctor
+	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.SolutionBase::_htOutputFiles
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class NAnt.VSNet.ProjectEntryCollection::'.ctor'()
+	IL_0018:  stfld class NAnt.VSNet.ProjectEntryCollection NAnt.VSNet.SolutionBase::_projectEntries
+	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.SolutionBase::_htReferenceProjects
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.1 
+	IL_002a:  stfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::_tfc
+	IL_002f:  ldarg.0 
+	IL_0030:  ldarg.2 
+	IL_0031:  stfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	IL_0036:  ldarg.0 
+	IL_0037:  ldarg.2 
+	IL_0038:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
+	IL_003d:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
+	IL_0042:  ldarg.0 
+	IL_0043:  ldarg.2 
+	IL_0044:  callvirt instance class NAnt.VSNet.Types.WebMapCollection class NAnt.VSNet.Tasks.SolutionTask::get_WebMaps()
+	IL_0049:  stfld class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::_webMaps
+	IL_004e:  ret 
+    } // end of method SolutionBase::.ctor
 
-    // method line 214
+    // method line 318
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectEntry get_Current ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0xb67c
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x2c50
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.VSNet.ProjectEntry
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.SolutionBase::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectEntryEnumerator::get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SolutionBase::get_File
 
-    // method line 215
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 319
+    .method public hidebysig specialname 
+           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
     {
-        // Method begins at RVA 0xb6a4
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2c6c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class [System]System.CodeDom.Compiler.TempFileCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_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 [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::_tfc
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectEntryEnumerator::System.Collections.IEnumerator.get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SolutionBase::get_TemporaryFiles
 
-    // method line 216
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 320
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.Types.WebMapCollection get_WebMaps ()  cil managed 
     {
-        // Method begins at RVA 0xb6c4
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2c88
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.VSNet.Types.WebMapCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_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.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::_webMaps
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectEntryEnumerator::MoveNext
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SolutionBase::get_WebMaps
 
-    // method line 217
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 321
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectEntryCollection get_ProjectEntries ()  cil managed 
     {
-        // Method begins at RVA 0xb6e4
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x2ca4
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.VSNet.ProjectEntryCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_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.VSNet.ProjectEntryCollection NAnt.VSNet.SolutionBase::_projectEntries
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectEntryEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method SolutionBase::get_ProjectEntries
 
-    // method line 218
+    // method line 322
     .method public hidebysig 
-           instance default void Reset ()  cil managed 
+           instance default void RecursiveLoadTemplateProject (string fileName)  cil managed 
     {
-        // Method begins at RVA 0xb704
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x2cc0
+	// Code size 494 (0x1ee)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [System.Xml]System.Xml.XmlNode	V_3,
+		class [System.Xml]System.Xml.XmlNode	V_4,
+		string	V_5,
+		string	V_6,
+		string	V_7,
+		class [System]System.Uri	V_8,
+		class [mscorlib]System.IDisposable	V_9)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectEntryEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ProjectEntryEnumerator::Reset
+	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	IL_0007:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class [System.Xml]System.Xml.XmlDocument class NAnt.VSNet.ProjectFactory::LoadProjectXml(string)
+	IL_0012:  stloc.0 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldstr "//Reference"
+	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_001f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0024:  stloc.2 
+	.try { // 1
+	  IL_0025:  br IL_01c7
 
-    // method line 219
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0xb712
-	.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.ProjectEntryEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ProjectEntryEnumerator::System.Collections.IEnumerator.Reset
+	  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:  ldloc.1 
+	  IL_0038:  ldstr "GUIDPROJECTID"
+	  IL_003d:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_0042:  stloc.3 
+	  IL_0043:  ldloc.1 
+	  IL_0044:  ldstr "FILE"
+	  IL_0049:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_004e:  stloc.s 4
+	  IL_0050:  ldloc.s 4
+	  IL_0052:  brtrue IL_006d
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.VSNet.ProjectEntryEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.VSNet.ProjectEntry Current ()
-	{
-		.get instance default class NAnt.VSNet.ProjectEntry NAnt.VSNet.ProjectEntryEnumerator::get_Current () 
-	}
-  } // end of class NAnt.VSNet.ProjectEntryEnumerator
-}
+	  IL_0057:  nop 
+	  IL_0058:  ldarg.0 
+	  IL_0059:  ldc.i4 4000
+	  IL_005e:  ldstr "Reference with missing <FILE> node. Skipping."
+	  IL_0063:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_0068:  leave IL_01c7
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ReferencesResolver
-  	extends [mscorlib]System.MarshalByRefObject
-  {
+	  IL_006d:  ldloc.3 
+	  IL_006e:  brfalse IL_01a4
 
-    // method line 220
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xb720
-	// 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
+	  IL_0073:  nop 
+	  IL_0074:  ldloc.1 
+	  IL_0075:  ldstr "FILE"
+	  IL_007a:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_007f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	  IL_0084:  stloc.s 5
+	  IL_0086:  ldarg.0 
+	  IL_0087:  ldfld class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::_webMaps
+	  IL_008c:  ldloc.s 5
+	  IL_008e:  callvirt instance string class NAnt.VSNet.Types.WebMapCollection::FindBestMatch(string)
+	  IL_0093:  stloc.s 7
+	  IL_0095:  ldloc.s 7
+	  IL_0097:  brfalse IL_00c2
 
-    // method line 221
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
-    {
-        // Method begins at RVA 0xb728
-	// 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_009c:  nop 
+	  IL_009d:  ldarg.0 
+	  IL_009e:  ldc.i4 1000
+	  IL_00a3:  ldstr "Found webmap match '{0}' for '{1}."
+	  IL_00a8:  ldc.i4.2 
+	  IL_00a9:  newarr [mscorlib]System.Object
+	  IL_00ae:  dup 
+	  IL_00af:  ldc.i4.0 
+	  IL_00b0:  ldloc.s 7
+	  IL_00b2:  stelem.ref 
+	  IL_00b3:  dup 
+	  IL_00b4:  ldc.i4.1 
+	  IL_00b5:  ldloc.s 5
+	  IL_00b7:  stelem.ref 
+	  IL_00b8:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_00bd:  ldloc.s 7
+	  IL_00bf:  stloc.s 5
+	  IL_00c1:  nop 
+	  .try { // 0
+	    IL_00c2:  nop 
+	    IL_00c3:  ldloc.s 5
+	    IL_00c5:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	    IL_00ca:  stloc.s 8
+	    IL_00cc:  ldloc.s 8
+	    IL_00ce:  callvirt instance string class [System]System.Uri::get_Scheme()
+	    IL_00d3:  ldsfld string [System]System.Uri::UriSchemeFile
+	    IL_00d8:  call bool string::op_Equality(string, string)
+	    IL_00dd:  brfalse IL_0102
 
-	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_00e2:  nop 
+	    IL_00e3:  ldarg.1 
+	    IL_00e4:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	    IL_00e9:  ldloc.s 8
+	    IL_00eb:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	    IL_00f0:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	    IL_00f5:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	    IL_00fa:  stloc.s 6
+	    IL_00fc:  nop 
+	    IL_00fd:  br IL_0130
 
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method ReferencesResolver::InitializeLifetimeService
+	    IL_0102:  nop 
+	    IL_0103:  ldloc.s 5
+	    IL_0105:  stloc.s 6
+	    IL_0107:  ldarg.0 
+	    IL_0108:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	    IL_010d:  callvirt instance bool class NAnt.VSNet.Tasks.SolutionTask::get_EnableWebDav()
+	    IL_0112:  brtrue IL_012f
 
-    // method line 222
-    .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 begins at RVA 0xb764
-	// 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:  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_0117:  nop 
+	    IL_0118:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_011d:  ldstr "Cannot build web project '{0}'.  Please use <webmap> to map the given URL to a project-relative path, or specify enablewebdav=\"true\" on the <solution> task element to use WebDAV."
+	    IL_0122:  ldloc.s 6
+	    IL_0124:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0129:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	    IL_012e:  throw 
+	    IL_012f:  nop 
+	    IL_0130:  nop 
+	    IL_0131:  leave IL_0152
 
-	} // end .try 0
-	catch class [mscorlib]System.IO.FileLoadException { // 0
-	  IL_0011:  pop 
-	  IL_0012:  nop 
-	  IL_0013:  leave IL_008a
+	  } // end .try 0
+	  catch class [System]System.UriFormatException { // 0
+	    IL_0136:  pop 
+	    IL_0137:  nop 
+	    IL_0138:  ldarg.1 
+	    IL_0139:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	    IL_013e:  ldloc.s 5
+	    IL_0140:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	    IL_0145:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	    IL_014a:  stloc.s 6
+	    IL_014c:  nop 
+	    IL_014d:  leave IL_0152
 
-	} // 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
+	  } // end handler 0
+	  IL_0152:  ldloc.s 6
+	  IL_0154:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_0159:  brtrue IL_0168
 
-	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_015e:  nop 
+	  IL_015f:  ldarg.0 
+	  IL_0160:  ldloc.s 6
+	  IL_0162:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.SolutionBase::CreateProjectDoesNotExistException(string)
+	  IL_0167:  throw 
+	  IL_0168:  ldloc.s 6
+	  IL_016a:  call bool class NAnt.VSNet.ManagedProjectBase::IsEnterpriseTemplateProject(string)
+	  IL_016f:  brfalse IL_0183
 
-	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_0174:  nop 
+	  IL_0175:  ldarg.0 
+	  IL_0176:  ldloc.s 6
+	  IL_0178:  call instance void class NAnt.VSNet.SolutionBase::RecursiveLoadTemplateProject(string)
+	  IL_017d:  nop 
+	  IL_017e:  br IL_019e
 
-	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_0183:  nop 
+	  IL_0184:  ldarg.0 
+	  IL_0185:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_018a:  ldloc.3 
+	  IL_018b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	  IL_0190:  ldloc.s 6
+	  IL_0192:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
+	  IL_0197:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	  IL_019c:  pop 
+	  IL_019d:  nop 
+	  IL_019e:  nop 
+	  IL_019f:  br IL_01c6
 
-	IL_008a:  ret 
-    } // end of method ReferencesResolver::AppendReferencedModulesLocatedInGivenDirectory
+	  IL_01a4:  nop 
+	  IL_01a5:  ldarg.0 
+	  IL_01a6:  ldc.i4 2000
+	  IL_01ab:  ldstr "Skipping file reference '{0}'."
+	  IL_01b0:  ldc.i4.1 
+	  IL_01b1:  newarr [mscorlib]System.Object
+	  IL_01b6:  dup 
+	  IL_01b7:  ldc.i4.0 
+	  IL_01b8:  ldloc.s 4
+	  IL_01ba:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	  IL_01bf:  stelem.ref 
+	  IL_01c0:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_01c5:  nop 
+	  IL_01c6:  nop 
+	  IL_01c7:  ldloc.2 
+	  IL_01c8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_01cd:  brtrue IL_002a
 
-    // method line 223
+	  IL_01d2:  leave IL_01ed
+
+	} // end .try 1
+	finally  { // 1
+	  IL_01d7:  ldloc.2 
+	  IL_01d8:  isinst [mscorlib]System.IDisposable
+	  IL_01dd:  dup 
+	  IL_01de:  stloc.s 9
+	  IL_01e0:  brfalse IL_01ec
+
+	  IL_01e5:  ldloc.s 9
+	  IL_01e7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01ec:  endfinally 
+	} // end handler 1
+	IL_01ed:  ret 
+    } // end of method SolutionBase::RecursiveLoadTemplateProject
+
+    // method line 323
     .method public hidebysig 
-           instance default string GetAssemblyFileName (string assemblyName)  cil managed 
+           instance default string GetProjectFileFromGuid (string projectGuid)  cil managed 
     {
-        // Method begins at RVA 0xb80c
-	// Code size 32 (0x20)
-	.maxstack 1
+        // Method begins at RVA 0x2ef0
+	// Code size 62 (0x3e)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
+		class NAnt.VSNet.ProjectEntry	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_001e:  ldloc.1 
-	IL_001f:  ret 
-    } // end of method ReferencesResolver::GetAssemblyFileName
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  brtrue IL_0030
 
-  } // end of class NAnt.VSNet.ReferencesResolver
-}
+	IL_0014:  nop 
+	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001a:  ldstr "Project with GUID '{0}' must be included for the build to work."
+	IL_001f:  ldarg.1 
+	IL_0020:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0025:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_002a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_002f:  throw 
+	IL_0030:  ldloc.0 
+	IL_0031:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
 
-.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"
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method SolutionBase::GetProjectFileFromGuid
 
-    // method line 224
-    .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 line 324
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ProjectBase GetProjectFromGuid (string projectGuid)  cil managed 
     {
-        // Method begins at RVA 0xb838
-	// Code size 1192 (0x4a8)
-	.maxstack 7
+        // Method begins at RVA 0x2f3c
+	// Code size 73 (0x49)
+	.maxstack 3
 	.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)
-	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
+		class NAnt.VSNet.ProjectEntry	V_0,
+		class NAnt.VSNet.ProjectBase	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  brfalse IL_001f
 
-	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_0014:  ldloc.0 
+	IL_0015:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	IL_001a:  brtrue IL_003b
 
-	IL_002a:  nop 
-	IL_002b:  ldstr "xmlDefinition"
-	IL_0030:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0035:  throw 
+	IL_001f:  nop 
+	IL_0020:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0025:  ldstr "Project with GUID '{0}' is not loaded."
+	IL_002a:  ldarg.1 
+	IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	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:  ldloc.0 
+	IL_003c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	IL_0041:  stloc.1 
+	IL_0042:  br IL_0047
+
+	IL_0047:  ldloc.1 
+	IL_0048:  ret 
+    } // end of method SolutionBase::GetProjectFromGuid
+
+    // method line 325
+    .method public hidebysig 
+           instance default bool Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x2f94
+	// Code size 765 (0x2fd)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		class [mscorlib]System.Collections.ArrayList	V_2,
+		bool	V_3,
+		bool	V_4,
+		class NAnt.VSNet.ProjectEntry	V_5,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_6,
+		class NAnt.VSNet.ProjectBase	V_7,
+		bool	V_8,
+		class NAnt.VSNet.ProjectEntry	V_9,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_10,
+		class NAnt.VSNet.ProjectBase	V_11,
+		class [mscorlib]System.IDisposable	V_12,
+		class [mscorlib]System.Exception	V_13,
+		class [mscorlib]System.IDisposable	V_14,
+		string	V_15,
+		class [mscorlib]System.Collections.IEnumerator	V_16,
+		class [mscorlib]System.IDisposable	V_17,
+		bool	V_18)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0006:  stloc.0 
+	IL_0007:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_000c:  stloc.1 
+	IL_000d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0012:  stloc.2 
+	IL_0013:  ldc.i4.1 
+	IL_0014:  stloc.3 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.1 
+	IL_0017:  call instance void class NAnt.VSNet.SolutionBase::GetDependenciesFromProjects(class NAnt.VSNet.Configuration)
+	IL_001c:  nop 
+	IL_001d:  nop 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  stloc.s 4
+	IL_0021:  nop 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0028:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	IL_002d:  stloc.s 6
+	.try { // 3
+	  IL_002f:  br IL_0207
+
+	  IL_0034:  ldloc.s 6
+	  IL_0036:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	  IL_003b:  stloc.s 5
+	  IL_003d:  nop 
+	  IL_003e:  ldloc.s 5
+	  IL_0040:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	  IL_0045:  stloc.s 7
+	  IL_0047:  ldloc.s 7
+	  IL_0049:  brtrue IL_0062
+
+	  IL_004e:  nop 
+	  IL_004f:  ldloc.0 
+	  IL_0050:  ldloc.s 5
+	  IL_0052:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Guid()
+	  IL_0057:  ldnull 
+	  IL_0058:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_005d:  leave IL_0207
+
+	  IL_0062:  ldloc.0 
+	  IL_0063:  ldloc.s 7
+	  IL_0065:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_006a:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	  IL_006f:  brfalse IL_007a
+
+	  IL_0074:  nop 
+	  IL_0075:  leave IL_0207
+
+	  IL_007a:  ldloc.1 
+	  IL_007b:  ldloc.s 7
+	  IL_007d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_0082:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	  IL_0087:  stloc.s 8
+	  IL_0089:  ldloc.s 8
+	  IL_008b:  brtrue IL_00b5
+
+	  IL_0090:  nop 
+	  IL_0091:  ldarg.0 
+	  IL_0092:  ldloc.s 7
+	  IL_0094:  ldarg.1 
+	  IL_0095:  ldloc.0 
+	  IL_0096:  ldloc.1 
+	  IL_0097:  call instance bool class NAnt.VSNet.SolutionBase::FixProjectReferences(class NAnt.VSNet.ProjectBase, class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Hashtable)
+	  IL_009c:  brfalse IL_00b4
+
+	  IL_00a1:  nop 
+	  IL_00a2:  ldc.i4.1 
+	  IL_00a3:  stloc.s 8
+	  IL_00a5:  ldloc.1 
+	  IL_00a6:  ldloc.s 7
+	  IL_00a8:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_00ad:  ldnull 
+	  IL_00ae:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_00b3:  nop 
+	  IL_00b4:  nop 
+	  IL_00b5:  ldarg.0 
+	  IL_00b6:  ldloc.s 7
+	  IL_00b8:  ldloc.0 
+	  IL_00b9:  call instance bool class NAnt.VSNet.SolutionBase::HasDirtyProjectDependency(class NAnt.VSNet.ProjectBase, class [mscorlib]System.Collections.Hashtable)
+	  IL_00be:  brtrue IL_0206
+
+	  IL_00c3:  nop 
+	  .try { // 1
+	    IL_00c4:  nop 
+	    IL_00c5:  ldarg.0 
+	    IL_00c6:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htReferenceProjects
+	    IL_00cb:  ldloc.s 7
+	    IL_00cd:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	    IL_00d2:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	    IL_00d7:  brtrue IL_01c4
+
+	    IL_00dc:  ldloc.s 8
+	    IL_00de:  brtrue IL_00f0
+
+	    IL_00e3:  ldloc.s 7
+	    IL_00e5:  ldarg.1 
+	    IL_00e6:  callvirt instance bool class NAnt.VSNet.ProjectBase::Compile(class NAnt.VSNet.Configuration)
+	    IL_00eb:  brtrue IL_01c4
+
+	    IL_00f0:  nop 
+	    IL_00f1:  ldloc.s 8
+	    IL_00f3:  brtrue IL_0138
+
+	    IL_00f8:  nop 
+	    IL_00f9:  ldarg.0 
+	    IL_00fa:  ldc.i4 5000
+	    IL_00ff:  ldstr "Project '{0}' failed!"
+	    IL_0104:  ldc.i4.1 
+	    IL_0105:  newarr [mscorlib]System.Object
+	    IL_010a:  dup 
+	    IL_010b:  ldc.i4.0 
+	    IL_010c:  ldloc.s 7
+	    IL_010e:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	    IL_0113:  stelem.ref 
+	    IL_0114:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_0119:  ldarg.0 
+	    IL_011a:  ldc.i4 5000
+	    IL_011f:  ldstr "Continuing build with non-dependent projects."
+	    IL_0124:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	    IL_0129:  ldloc.2 
+	    IL_012a:  ldloc.s 7
+	    IL_012c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	    IL_0131:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	    IL_0136:  pop 
+	    IL_0137:  nop 
+	    IL_0138:  ldc.i4.0 
+	    IL_0139:  stloc.3 
+	    IL_013a:  ldloc.1 
+	    IL_013b:  ldloc.s 7
+	    IL_013d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	    IL_0142:  ldnull 
+	    IL_0143:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0148:  nop 
+	    IL_0149:  ldarg.0 
+	    IL_014a:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	    IL_014f:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	    IL_0154:  stloc.s 10
+	    .try { // 0
+	      IL_0156:  br IL_019b
+
+	      IL_015b:  ldloc.s 10
+	      IL_015d:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	      IL_0162:  stloc.s 9
+	      IL_0164:  nop 
+	      IL_0165:  ldloc.s 9
+	      IL_0167:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	      IL_016c:  stloc.s 11
+	      IL_016e:  ldloc.s 11
+	      IL_0170:  brtrue IL_0177
+
+	      IL_0175:  nop 
+	      IL_0176:  nop 
+	      IL_0177:  ldloc.s 11
+	      IL_0179:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
+	      IL_017e:  ldloc.s 7
+	      IL_0180:  callvirt instance bool class NAnt.VSNet.ProjectBaseCollection::Contains(class NAnt.VSNet.ProjectBase)
+	      IL_0185:  brfalse IL_019a
+
+	      IL_018a:  nop 
+	      IL_018b:  ldloc.1 
+	      IL_018c:  ldloc.s 11
+	      IL_018e:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	      IL_0193:  ldnull 
+	      IL_0194:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	      IL_0199:  nop 
+	      IL_019a:  nop 
+	      IL_019b:  ldloc.s 10
+	      IL_019d:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	      IL_01a2:  brtrue IL_015b
+
+	      IL_01a7:  leave IL_01c3
+
+	    } // end .try 0
+	    finally  { // 0
+	      IL_01ac:  ldloc.s 10
+	      IL_01ae:  isinst [mscorlib]System.IDisposable
+	      IL_01b3:  dup 
+	      IL_01b4:  stloc.s 12
+	      IL_01b6:  brfalse IL_01c2
+
+	      IL_01bb:  ldloc.s 12
+	      IL_01bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_01c2:  endfinally 
+	    } // end handler 0
+	    IL_01c3:  nop 
+	    IL_01c4:  nop 
+	    IL_01c5:  leave IL_01f4
+
+	  } // end .try 1
+	  catch class [NAnt.Core]NAnt.Core.BuildException { // 1
+	    IL_01ca:  pop 
+	    IL_01cb:  nop 
+	    IL_01cc:  rethrow 
+	  } // end handler 1
+	  catch class [mscorlib]System.Exception { // 2
+	    IL_01ce:  stloc.s 13
+	    IL_01d0:  nop 
+	    IL_01d1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_01d6:  ldstr "Unexpected error while compiling project '{0}'"
+	    IL_01db:  ldloc.s 7
+	    IL_01dd:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	    IL_01e2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_01e7:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	    IL_01ec:  ldloc.s 13
+	    IL_01ee:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_01f3:  throw 
+	  } // end handler 2
+	  IL_01f4:  ldc.i4.1 
+	  IL_01f5:  stloc.s 4
+	  IL_01f7:  ldloc.0 
+	  IL_01f8:  ldloc.s 7
+	  IL_01fa:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_01ff:  ldnull 
+	  IL_0200:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0205:  nop 
+	  IL_0206:  nop 
+	  IL_0207:  ldloc.s 6
+	  IL_0209:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	  IL_020e:  brtrue IL_0034
+
+	  IL_0213:  leave IL_022f
+
+	} // end .try 3
+	finally  { // 3
+	  IL_0218:  ldloc.s 6
+	  IL_021a:  isinst [mscorlib]System.IDisposable
+	  IL_021f:  dup 
+	  IL_0220:  stloc.s 14
+	  IL_0222:  brfalse IL_022e
+
+	  IL_0227:  ldloc.s 14
+	  IL_0229:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_022e:  endfinally 
+	} // end handler 3
+	IL_022f:  ldarg.0 
+	IL_0230:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0235:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_023a:  ldloc.0 
+	IL_023b:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	IL_0240:  bne.un IL_024b
+
+	IL_0245:  nop 
+	IL_0246:  br IL_0269
+
+	IL_024b:  ldloc.s 4
+	IL_024d:  brtrue IL_0263
+
+	IL_0252:  nop 
+	IL_0253:  ldstr "Circular dependency detected."
+	IL_0258:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_025d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0262:  throw 
+	IL_0263:  nop 
+	IL_0264:  br IL_001c
+
+	IL_0269:  ldloc.2 
+	IL_026a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_026f:  ldc.i4.0 
+	IL_0270:  ble IL_02f2
+
+	IL_0275:  nop 
+	IL_0276:  ldarg.0 
+	IL_0277:  ldc.i4 5000
+	IL_027c:  ldsfld string [mscorlib]System.String::Empty
+	IL_0281:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0286:  ldarg.0 
+	IL_0287:  ldc.i4 5000
+	IL_028c:  ldstr "Solution failed to build!  Failed projects were:"
+	IL_0291:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0296:  nop 
+	IL_0297:  ldloc.2 
+	IL_0298:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_029d:  stloc.s 16
+	.try { // 4
+	  IL_029f:  br IL_02c9
+
+	  IL_02a4:  ldloc.s 16
+	  IL_02a6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_02ab:  castclass [mscorlib]System.String
+	  IL_02b0:  stloc.s 15
+	  IL_02b2:  ldarg.0 
+	  IL_02b3:  ldc.i4 5000
+	  IL_02b8:  ldstr "  - "
+	  IL_02bd:  ldloc.s 15
+	  IL_02bf:  call string string::Concat(string, string)
+	  IL_02c4:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_02c9:  ldloc.s 16
+	  IL_02cb:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02d0:  brtrue IL_02a4
+
+	  IL_02d5:  leave IL_02f1
+
+	} // end .try 4
+	finally  { // 4
+	  IL_02da:  ldloc.s 16
+	  IL_02dc:  isinst [mscorlib]System.IDisposable
+	  IL_02e1:  dup 
+	  IL_02e2:  stloc.s 17
+	  IL_02e4:  brfalse IL_02f0
+
+	  IL_02e9:  ldloc.s 17
+	  IL_02eb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02f0:  endfinally 
+	} // end handler 4
+	IL_02f1:  nop 
+	IL_02f2:  ldloc.3 
+	IL_02f3:  stloc.s 18
+	IL_02f5:  br IL_02fa
+
+	IL_02fa:  ldloc.s 18
+	IL_02fc:  ret 
+    } // end of method SolutionBase::Compile
+
+    // method line 326
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x331c
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	IL_0007:  brfalse IL_001b
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_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 SolutionBase::Log
+
+    // method line 327
+    .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 0x3339
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	IL_0007:  brfalse IL_001c
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_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 SolutionBase::Log
+
+    // method line 328
+    .method family hidebysig 
+           instance default void LoadProjectGuids (class [mscorlib]System.Collections.ArrayList projects, bool isReferenceProject)  cil managed 
+    {
+        // Method begins at RVA 0x3358
+	// Code size 172 (0xac)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		string	V_2,
+		class NAnt.VSNet.ProjectEntry	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 [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0008:  stloc.1 
+	.try { // 0
+	  IL_0009:  br IL_0085
+
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0014:  castclass [mscorlib]System.String
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldarg.0 
+	  IL_001c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	  IL_0021:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
+	  IL_0026:  ldloc.0 
+	  IL_0027:  callvirt instance string class NAnt.VSNet.ProjectFactory::LoadGuid(string)
+	  IL_002c:  stloc.2 
+	  IL_002d:  ldarg.0 
+	  IL_002e:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_0033:  ldloc.2 
+	  IL_0034:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	  IL_0039:  stloc.3 
+	  IL_003a:  ldloc.3 
+	  IL_003b:  brfalse IL_005e
+
+	  IL_0040:  nop 
+	  IL_0041:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0046:  ldstr "Error loading project {0}.  Project GUID {1} already exists! Conflicting project is {2}."
+	  IL_004b:  ldloc.0 
+	  IL_004c:  ldloc.2 
+	  IL_004d:  ldloc.3 
+	  IL_004e:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
+	  IL_0053:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0058:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	  IL_005d:  throw 
+	  IL_005e:  ldarg.0 
+	  IL_005f:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_0064:  ldloc.2 
+	  IL_0065:  ldloc.0 
+	  IL_0066:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
+	  IL_006b:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	  IL_0070:  pop 
+	  IL_0071:  ldarg.2 
+	  IL_0072:  brfalse IL_0084
+
+	  IL_0077:  ldarg.0 
+	  IL_0078:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htReferenceProjects
+	  IL_007d:  ldloc.2 
+	  IL_007e:  ldnull 
+	  IL_007f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0084:  nop 
+	  IL_0085:  ldloc.1 
+	  IL_0086:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_008b:  brtrue IL_000e
+
+	  IL_0090:  leave IL_00ab
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0095:  ldloc.1 
+	  IL_0096:  isinst [mscorlib]System.IDisposable
+	  IL_009b:  dup 
+	  IL_009c:  stloc.s 4
+	  IL_009e:  brfalse IL_00aa
+
+	  IL_00a3:  ldloc.s 4
+	  IL_00a5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00aa:  endfinally 
+	} // end handler 0
+	IL_00ab:  ret 
+    } // end of method SolutionBase::LoadProjectGuids
+
+    // method line 329
+    .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 0x3420
+	// Code size 822 (0x336)
+	.maxstack 8
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0,
+		class NAnt.VSNet.ProjectEntry	V_1,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_2,
+		string	V_3,
+		string	V_4,
+		bool	V_5,
+		bool	V_6,
+		string	V_7,
+		class [System]System.Collections.Specialized.StringEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class NAnt.VSNet.ProjectBase	V_10,
+		class [mscorlib]System.IDisposable	V_11,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_12,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_13,
+		string	V_14,
+		class [mscorlib]System.Collections.Hashtable	V_15,
+		class NAnt.VSNet.ProjectEntry	V_16,
+		class NAnt.VSNet.ProjectBase	V_17,
+		string	V_18,
+		class [mscorlib]System.Collections.IEnumerator	V_19,
+		class NAnt.VSNet.ProjectEntry	V_20,
+		class [mscorlib]System.IDisposable	V_21,
+		class [mscorlib]System.IDisposable	V_22)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Loading projects..."
+	IL_000c:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	IL_0017:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ExcludeProjects()
+	IL_001c:  stloc.0 
+	IL_001d:  nop 
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0024:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	IL_0029:  stloc.2 
+	.try { // 1
+	  IL_002a:  br IL_01a0
+
+	  IL_002f:  ldloc.2 
+	  IL_0030:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	  IL_0035:  stloc.1 
+	  IL_0036:  nop 
+	  IL_0037:  ldloc.1 
+	  IL_0038:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
+	  IL_003d:  stloc.3 
+	  IL_003e:  ldloc.1 
+	  IL_003f:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Guid()
+	  IL_0044:  stloc.s 4
+	  IL_0046:  ldloc.3 
+	  IL_0047:  call bool class [NAnt.Core]NAnt.Core.PlatformHelper::IsVolumeCaseSensitive(string)
+	  IL_004c:  stloc.s 5
+	  IL_004e:  ldc.i4.0 
+	  IL_004f:  stloc.s 6
+	  IL_0051:  nop 
+	  IL_0052:  ldloc.0 
+	  IL_0053:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_0058:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_005d:  stloc.s 8
+	  .try { // 0
+	    IL_005f:  br IL_00a9
+
+	    IL_0064:  ldloc.s 8
+	    IL_0066:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_006b:  stloc.s 7
+	    IL_006d:  nop 
+	    IL_006e:  ldloc.s 7
+	    IL_0070:  ldloc.3 
+	    IL_0071:  ldloc.s 5
+	    IL_0073:  ldc.i4.0 
+	    IL_0074:  ceq 
+	    IL_0076:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_007b:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	    IL_0080:  brtrue IL_00a8
+
+	    IL_0085:  nop 
+	    IL_0086:  ldarg.0 
+	    IL_0087:  ldc.i4 2000
+	    IL_008c:  ldstr "Excluding project '{0}'."
+	    IL_0091:  ldc.i4.1 
+	    IL_0092:  newarr [mscorlib]System.Object
+	    IL_0097:  dup 
+	    IL_0098:  ldc.i4.0 
+	    IL_0099:  ldloc.3 
+	    IL_009a:  stelem.ref 
+	    IL_009b:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_00a0:  ldc.i4.1 
+	    IL_00a1:  stloc.s 6
+	    IL_00a3:  leave IL_00b5
+
+	    IL_00a8:  nop 
+	    IL_00a9:  ldloc.s 8
+	    IL_00ab:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_00b0:  brtrue IL_0064
+
+	    IL_00b5:  leave IL_00d1
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00ba:  ldloc.s 8
+	    IL_00bc:  isinst [mscorlib]System.IDisposable
+	    IL_00c1:  dup 
+	    IL_00c2:  stloc.s 9
+	    IL_00c4:  brfalse IL_00d0
+
+	    IL_00c9:  ldloc.s 9
+	    IL_00cb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00d0:  endfinally 
+	  } // end handler 0
+	  IL_00d1:  ldloc.s 6
+	  IL_00d3:  brfalse IL_00f5
+
+	  IL_00d8:  nop 
+	  IL_00d9:  ldarg.3 
+	  IL_00da:  ldloc.s 4
+	  IL_00dc:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_00e1:  brfalse IL_00f0
+
+	  IL_00e6:  nop 
+	  IL_00e7:  ldarg.3 
+	  IL_00e8:  ldloc.s 4
+	  IL_00ea:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	  IL_00ef:  nop 
+	  IL_00f0:  leave IL_01a0
+
+	  IL_00f5:  ldarg.0 
+	  IL_00f6:  ldc.i4 2000
+	  IL_00fb:  ldstr "Loading project '{0}'."
+	  IL_0100:  ldc.i4.1 
+	  IL_0101:  newarr [mscorlib]System.Object
+	  IL_0106:  dup 
+	  IL_0107:  ldc.i4.0 
+	  IL_0108:  ldloc.3 
+	  IL_0109:  stelem.ref 
+	  IL_010a:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_010f:  ldarg.0 
+	  IL_0110:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	  IL_0115:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
+	  IL_011a:  ldarg.0 
+	  IL_011b:  ldarg.0 
+	  IL_011c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	  IL_0121:  ldarg.0 
+	  IL_0122:  ldfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::_tfc
+	  IL_0127:  ldarg.1 
+	  IL_0128:  ldarg.2 
+	  IL_0129:  ldarg.0 
+	  IL_012a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
+	  IL_012f:  ldloc.3 
+	  IL_0130:  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_0135:  stloc.s 10
+	  IL_0137:  ldloc.s 10
+	  IL_0139:  brtrue IL_015e
+
+	  IL_013e:  nop 
+	  IL_013f:  ldarg.0 
+	  IL_0140:  ldc.i4 4000
+	  IL_0145:  ldstr "Project '{0}' is of unsupported type. Skipping."
+	  IL_014a:  ldc.i4.1 
+	  IL_014b:  newarr [mscorlib]System.Object
+	  IL_0150:  dup 
+	  IL_0151:  ldc.i4.0 
+	  IL_0152:  ldloc.3 
+	  IL_0153:  stelem.ref 
+	  IL_0154:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0159:  leave IL_01a0
+
+	  IL_015e:  ldloc.s 10
+	  IL_0160:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_0165:  brfalse IL_0180
+
+	  IL_016a:  ldloc.s 10
+	  IL_016c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_0171:  ldsfld string [mscorlib]System.String::Empty
+	  IL_0176:  call bool string::op_Equality(string, string)
+	  IL_017b:  brfalse IL_0190
+
+	  IL_0180:  nop 
+	  IL_0181:  ldloc.s 10
+	  IL_0183:  ldarg.0 
+	  IL_0184:  ldloc.3 
+	  IL_0185:  call instance string class NAnt.VSNet.SolutionBase::FindGuidFromPath(string)
+	  IL_018a:  callvirt instance void class NAnt.VSNet.ProjectBase::set_Guid(string)
+	  IL_018f:  nop 
+	  IL_0190:  ldloc.1 
+	  IL_0191:  ldloc.s 10
+	  IL_0193:  callvirt instance void class NAnt.VSNet.ProjectEntry::set_Project(class NAnt.VSNet.ProjectBase)
+	  IL_0198:  ldarg.0 
+	  IL_0199:  ldloc.1 
+	  IL_019a:  callvirt instance void class NAnt.VSNet.SolutionBase::SetProjectBuildConfiguration(class NAnt.VSNet.ProjectEntry)
+	  IL_019f:  nop 
+	  IL_01a0:  ldloc.2 
+	  IL_01a1:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	  IL_01a6:  brtrue IL_002f
+
+	  IL_01ab:  leave IL_01c6
+
+	} // end .try 1
+	finally  { // 1
+	  IL_01b0:  ldloc.2 
+	  IL_01b1:  isinst [mscorlib]System.IDisposable
+	  IL_01b6:  dup 
+	  IL_01b7:  stloc.s 11
+	  IL_01b9:  brfalse IL_01c5
+
+	  IL_01be:  ldloc.s 11
+	  IL_01c0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01c5:  endfinally 
+	} // end handler 1
+	IL_01c6:  nop 
+	IL_01c7:  ldarg.3 
+	IL_01c8:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_01cd:  stloc.s 13
+	.try { // 3
+	  IL_01cf:  br IL_030d
+
+	  IL_01d4:  ldloc.s 13
+	  IL_01d6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01db:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_01e0:  stloc.s 12
+	  IL_01e2:  nop 
+	  IL_01e3:  ldloca.s 12
+	  IL_01e5:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_01ea:  castclass [mscorlib]System.String
+	  IL_01ef:  stloc.s 14
+	  IL_01f1:  ldloca.s 12
+	  IL_01f3:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_01f8:  castclass [mscorlib]System.Collections.Hashtable
+	  IL_01fd:  stloc.s 15
+	  IL_01ff:  ldarg.0 
+	  IL_0200:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_0205:  ldloc.s 14
+	  IL_0207:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	  IL_020c:  stloc.s 16
+	  IL_020e:  ldloc.s 16
+	  IL_0210:  brtrue IL_0232
+
+	  IL_0215:  nop 
+	  IL_0216:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_021b:  ldstr "Dependencies for project '{0}' could not be analyzed. Project is not included."
+	  IL_0220:  ldloc.s 14
+	  IL_0222:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0227:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_022c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_0231:  throw 
+	  IL_0232:  ldloc.s 16
+	  IL_0234:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	  IL_0239:  stloc.s 17
+	  IL_023b:  ldloc.s 17
+	  IL_023d:  brtrue IL_025f
+
+	  IL_0242:  nop 
+	  IL_0243:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0248:  ldstr "Dependencies for project '{0}' could not be analyzed. Project is not loaded."
+	  IL_024d:  ldloc.s 14
+	  IL_024f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0254:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0259:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_025e:  throw 
+	  IL_025f:  nop 
+	  IL_0260:  ldloc.s 15
+	  IL_0262:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	  IL_0267:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	  IL_026c:  stloc.s 19
+	  .try { // 2
+	    IL_026e:  br IL_02e4
+
+	    IL_0273:  ldloc.s 19
+	    IL_0275:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_027a:  castclass [mscorlib]System.String
+	    IL_027f:  stloc.s 18
+	    IL_0281:  nop 
+	    IL_0282:  ldarg.0 
+	    IL_0283:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	    IL_0288:  ldloc.s 18
+	    IL_028a:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	    IL_028f:  stloc.s 20
+	    IL_0291:  ldloc.s 20
+	    IL_0293:  brfalse IL_02a4
+
+	    IL_0298:  ldloc.s 20
+	    IL_029a:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	    IL_029f:  brtrue IL_02cf
+
+	    IL_02a4:  nop 
+	    IL_02a5:  ldarg.0 
+	    IL_02a6:  ldc.i4 4000
+	    IL_02ab:  ldstr "Project \"{0}\": ignored dependency on project \"{1}\", which is not included."
+	    IL_02b0:  ldc.i4.2 
+	    IL_02b1:  newarr [mscorlib]System.Object
+	    IL_02b6:  dup 
+	    IL_02b7:  ldc.i4.0 
+	    IL_02b8:  ldloc.s 17
+	    IL_02ba:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	    IL_02bf:  stelem.ref 
+	    IL_02c0:  dup 
+	    IL_02c1:  ldc.i4.1 
+	    IL_02c2:  ldloc.s 18
+	    IL_02c4:  stelem.ref 
+	    IL_02c5:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_02ca:  leave IL_02e4
+
+	    IL_02cf:  ldloc.s 17
+	    IL_02d1:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
+	    IL_02d6:  ldloc.s 20
+	    IL_02d8:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	    IL_02dd:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
+	    IL_02e2:  pop 
+	    IL_02e3:  nop 
+	    IL_02e4:  ldloc.s 19
+	    IL_02e6:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_02eb:  brtrue IL_0273
+
+	    IL_02f0:  leave IL_030c
+
+	  } // end .try 2
+	  finally  { // 2
+	    IL_02f5:  ldloc.s 19
+	    IL_02f7:  isinst [mscorlib]System.IDisposable
+	    IL_02fc:  dup 
+	    IL_02fd:  stloc.s 21
+	    IL_02ff:  brfalse IL_030b
+
+	    IL_0304:  ldloc.s 21
+	    IL_0306:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_030b:  endfinally 
+	  } // end handler 2
+	  IL_030c:  nop 
+	  IL_030d:  ldloc.s 13
+	  IL_030f:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0314:  brtrue IL_01d4
+
+	  IL_0319:  leave IL_0335
+
+	} // end .try 3
+	finally  { // 3
+	  IL_031e:  ldloc.s 13
+	  IL_0320:  isinst [mscorlib]System.IDisposable
+	  IL_0325:  dup 
+	  IL_0326:  stloc.s 22
+	  IL_0328:  brfalse IL_0334
+
+	  IL_032d:  ldloc.s 22
+	  IL_032f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0334:  endfinally 
+	} // end handler 3
+	IL_0335:  ret 
+    } // end of method SolutionBase::LoadProjects
+
+    // method line 330
+    .method family hidebysig 
+           instance default void GetDependenciesFromProjects (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x37c8
+	// Code size 770 (0x302)
+	.maxstack 3
+	.locals init (
+		class NAnt.VSNet.ProjectEntry	V_0,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_1,
+		class NAnt.VSNet.ProjectBase	V_2,
+		class NAnt.VSNet.ConfigurationBase	V_3,
+		class [mscorlib]System.Collections.IEnumerator	V_4,
+		string	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [mscorlib]System.Collections.Hashtable	V_8,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_9,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_10,
+		string	V_11,
+		string	V_12,
+		class [mscorlib]System.IDisposable	V_13,
+		class NAnt.VSNet.ProjectEntry	V_14,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_15,
+		class NAnt.VSNet.ProjectBase	V_16,
+		class NAnt.VSNet.ConfigurationBase	V_17,
+		class NAnt.VSNet.ReferenceBase	V_18,
+		class [mscorlib]System.Collections.IEnumerator	V_19,
+		class NAnt.VSNet.ProjectReferenceBase	V_20,
+		string	V_21,
+		string	V_22,
+		class NAnt.VSNet.ProjectEntry	V_23,
+		class [mscorlib]System.IDisposable	V_24,
+		class [mscorlib]System.IDisposable	V_25)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Gathering additional dependencies..."
+	IL_000c:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0018:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	IL_001d:  stloc.1 
+	.try { // 1
+	  IL_001e:  br IL_00b2
+
+	  IL_0023:  ldloc.1 
+	  IL_0024:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	  IL_0029:  stloc.0 
+	  IL_002a:  nop 
+	  IL_002b:  ldloc.0 
+	  IL_002c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	  IL_0031:  stloc.2 
+	  IL_0032:  ldloc.2 
+	  IL_0033:  brtrue IL_003e
+
+	  IL_0038:  nop 
+	  IL_0039:  leave IL_00b2
+
+	  IL_003e:  nop 
+	  IL_003f:  ldloc.2 
+	  IL_0040:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	  IL_0045:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.VSNet.ConfigurationDictionary::get_Values()
+	  IL_004a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	  IL_004f:  stloc.s 4
+	  .try { // 0
+	    IL_0051:  br IL_0089
+
+	    IL_0056:  ldloc.s 4
+	    IL_0058:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_005d:  castclass NAnt.VSNet.ConfigurationBase
+	    IL_0062:  stloc.3 
+	    IL_0063:  nop 
+	    IL_0064:  ldloc.3 
+	    IL_0065:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	    IL_006a:  stloc.s 5
+	    IL_006c:  ldloc.s 5
+	    IL_006e:  brfalse IL_0088
+
+	    IL_0073:  nop 
+	    IL_0074:  ldarg.0 
+	    IL_0075:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
+	    IL_007a:  ldloc.s 5
+	    IL_007c:  ldloc.2 
+	    IL_007d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	    IL_0082:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0087:  nop 
+	    IL_0088:  nop 
+	    IL_0089:  ldloc.s 4
+	    IL_008b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0090:  brtrue IL_0056
+
+	    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 6
+	    IL_00a4:  brfalse IL_00b0
+
+	    IL_00a9:  ldloc.s 6
+	    IL_00ab:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00b0:  endfinally 
+	  } // end handler 0
+	  IL_00b1:  nop 
+	  IL_00b2:  ldloc.1 
+	  IL_00b3:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	  IL_00b8:  brtrue IL_0023
+
+	  IL_00bd:  leave IL_00d8
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00c2:  ldloc.1 
+	  IL_00c3:  isinst [mscorlib]System.IDisposable
+	  IL_00c8:  dup 
+	  IL_00c9:  stloc.s 7
+	  IL_00cb:  brfalse IL_00d7
+
+	  IL_00d0:  ldloc.s 7
+	  IL_00d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d7:  endfinally 
+	} // end handler 1
+	IL_00d8:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_00dd:  stloc.s 8
+	IL_00df:  nop 
+	IL_00e0:  ldarg.0 
+	IL_00e1:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
+	IL_00e6:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_00eb:  stloc.s 10
+	.try { // 2
+	  IL_00ed:  br IL_014c
+
+	  IL_00f2:  ldloc.s 10
+	  IL_00f4:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00f9:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_00fe:  stloc.s 9
+	  IL_0100:  nop 
+	  IL_0101:  ldloca.s 9
+	  IL_0103:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0108:  castclass [mscorlib]System.String
+	  IL_010d:  stloc.s 11
+	  IL_010f:  ldloc.s 11
+	  IL_0111:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	  IL_0116:  stloc.s 12
+	  IL_0118:  ldarg.0 
+	  IL_0119:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	  IL_011e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.Tasks.SolutionTask::get_AssemblyFolderList()
+	  IL_0123:  ldloc.s 12
+	  IL_0125:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_012a:  brfalse IL_014b
+
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.s 8
+	  IL_0132:  ldloc.s 11
+	  IL_0134:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_0139:  ldloca.s 9
+	  IL_013b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0140:  castclass [mscorlib]System.String
+	  IL_0145:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_014a:  nop 
+	  IL_014b:  nop 
+	  IL_014c:  ldloc.s 10
+	  IL_014e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0153:  brtrue IL_00f2
+
+	  IL_0158:  leave IL_0174
+
+	} // end .try 2
+	finally  { // 2
+	  IL_015d:  ldloc.s 10
+	  IL_015f:  isinst [mscorlib]System.IDisposable
+	  IL_0164:  dup 
+	  IL_0165:  stloc.s 13
+	  IL_0167:  brfalse IL_0173
+
+	  IL_016c:  ldloc.s 13
+	  IL_016e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0173:  endfinally 
+	} // end handler 2
+	IL_0174:  nop 
+	IL_0175:  ldarg.0 
+	IL_0176:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_017b:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	IL_0180:  stloc.s 15
+	.try { // 4
+	  IL_0182:  br IL_02d9
+
+	  IL_0187:  ldloc.s 15
+	  IL_0189:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	  IL_018e:  stloc.s 14
+	  IL_0190:  nop 
+	  IL_0191:  ldloc.s 14
+	  IL_0193:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	  IL_0198:  stloc.s 16
+	  IL_019a:  ldloc.s 16
+	  IL_019c:  brtrue IL_01a7
+
+	  IL_01a1:  nop 
+	  IL_01a2:  leave IL_02d9
+
+	  IL_01a7:  ldloc.s 16
+	  IL_01a9:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	  IL_01ae:  ldarg.1 
+	  IL_01af:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	  IL_01b4:  stloc.s 17
+	  IL_01b6:  ldloc.s 17
+	  IL_01b8:  brtrue IL_01c3
+
+	  IL_01bd:  nop 
+	  IL_01be:  leave IL_02d9
+
+	  IL_01c3:  ldloc.s 17
+	  IL_01c5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	  IL_01ca:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_01cf:  brtrue IL_01ee
+
+	  IL_01d4:  nop 
+	  IL_01d5:  ldloc.s 17
+	  IL_01d7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	  IL_01dc:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	  IL_01e1:  ldloc.s 17
+	  IL_01e3:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	  IL_01e8:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	  IL_01ed:  nop 
+	  IL_01ee:  nop 
+	  IL_01ef:  ldloc.s 16
+	  IL_01f1:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	  IL_01f6:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	  IL_01fb:  stloc.s 19
+	  .try { // 3
+	    IL_01fd:  br IL_02b0
+
+	    IL_0202:  ldloc.s 19
+	    IL_0204:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0209:  castclass NAnt.VSNet.ReferenceBase
+	    IL_020e:  stloc.s 18
+	    IL_0210:  nop 
+	    IL_0211:  ldloc.s 18
+	    IL_0213:  isinst NAnt.VSNet.ProjectReferenceBase
+	    IL_0218:  stloc.s 20
+	    IL_021a:  ldloc.s 20
+	    IL_021c:  brfalse IL_023c
+
+	    IL_0221:  nop 
+	    IL_0222:  ldloc.s 16
+	    IL_0224:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
+	    IL_0229:  ldloc.s 20
+	    IL_022b:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	    IL_0230:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
+	    IL_0235:  pop 
+	    IL_0236:  nop 
+	    IL_0237:  br IL_02af
+
+	    IL_023c:  nop 
+	    IL_023d:  ldloc.s 18
+	    IL_023f:  ldarg.1 
+	    IL_0240:  callvirt instance string class NAnt.VSNet.ReferenceBase::GetPrimaryOutputFile(class NAnt.VSNet.Configuration)
+	    IL_0245:  stloc.s 21
+	    IL_0247:  ldloc.s 21
+	    IL_0249:  brtrue IL_0254
+
+	    IL_024e:  nop 
+	    IL_024f:  leave IL_02b0
+
+	    IL_0254:  ldloc.s 8
+	    IL_0256:  ldloc.s 21
+	    IL_0258:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	    IL_025d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	    IL_0262:  castclass [mscorlib]System.String
+	    IL_0267:  stloc.s 22
+	    IL_0269:  ldloc.s 22
+	    IL_026b:  brtrue IL_0276
+
+	    IL_0270:  nop 
+	    IL_0271:  leave IL_02b0
+
+	    IL_0276:  ldarg.0 
+	    IL_0277:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	    IL_027c:  ldloc.s 22
+	    IL_027e:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	    IL_0283:  stloc.s 23
+	    IL_0285:  ldloc.s 23
+	    IL_0287:  brfalse IL_02ae
+
+	    IL_028c:  ldloc.s 23
+	    IL_028e:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	    IL_0293:  brfalse IL_02ae
+
+	    IL_0298:  nop 
+	    IL_0299:  ldloc.s 16
+	    IL_029b:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
+	    IL_02a0:  ldloc.s 23
+	    IL_02a2:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	    IL_02a7:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
+	    IL_02ac:  pop 
+	    IL_02ad:  nop 
+	    IL_02ae:  nop 
+	    IL_02af:  nop 
+	    IL_02b0:  ldloc.s 19
+	    IL_02b2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_02b7:  brtrue IL_0202
+
+	    IL_02bc:  leave IL_02d8
+
+	  } // end .try 3
+	  finally  { // 3
+	    IL_02c1:  ldloc.s 19
+	    IL_02c3:  isinst [mscorlib]System.IDisposable
+	    IL_02c8:  dup 
+	    IL_02c9:  stloc.s 24
+	    IL_02cb:  brfalse IL_02d7
+
+	    IL_02d0:  ldloc.s 24
+	    IL_02d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_02d7:  endfinally 
+	  } // end handler 3
+	  IL_02d8:  nop 
+	  IL_02d9:  ldloc.s 15
+	  IL_02db:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	  IL_02e0:  brtrue IL_0187
+
+	  IL_02e5:  leave IL_0301
+
+	} // end .try 4
+	finally  { // 4
+	  IL_02ea:  ldloc.s 15
+	  IL_02ec:  isinst [mscorlib]System.IDisposable
+	  IL_02f1:  dup 
+	  IL_02f2:  stloc.s 25
+	  IL_02f4:  brfalse IL_0300
+
+	  IL_02f9:  ldloc.s 25
+	  IL_02fb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0300:  endfinally 
+	} // end handler 4
+	IL_0301:  ret 
+    } // end of method SolutionBase::GetDependenciesFromProjects
+
+    // method line 331
+    .method family hidebysig 
+           instance default string TranslateProjectPath (string solutionDir, string projectPath)  cil managed 
+    {
+        // Method begins at RVA 0x3b54
+	// Code size 269 (0x10d)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [System]System.Uri	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "solutionDir"
+	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 "projectPath"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldnull 
+	IL_0026:  stloc.0 
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance class NAnt.VSNet.Types.WebMapCollection class NAnt.VSNet.SolutionBase::get_WebMaps()
+	IL_002d:  ldarg.2 
+	IL_002e:  callvirt instance string class NAnt.VSNet.Types.WebMapCollection::FindBestMatch(string)
+	IL_0033:  stloc.1 
+	IL_0034:  ldloc.1 
+	IL_0035:  brfalse IL_0061
+
+	IL_003a:  nop 
+	IL_003b:  ldarg.0 
+	IL_003c:  ldc.i4 1000
+	IL_0041:  ldstr "Found webmap match '{0}' for '{1}."
+	IL_0046:  ldc.i4.2 
+	IL_0047:  newarr [mscorlib]System.Object
+	IL_004c:  dup 
+	IL_004d:  ldc.i4.0 
+	IL_004e:  ldloc.1 
+	IL_004f:  stelem.ref 
+	IL_0050:  dup 
+	IL_0051:  ldc.i4.1 
+	IL_0052:  ldarg.2 
+	IL_0053:  stelem.ref 
+	IL_0054:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0059:  ldloc.1 
+	IL_005a:  stloc.0 
+	IL_005b:  nop 
+	IL_005c:  br IL_0065
+
+	IL_0061:  nop 
+	IL_0062:  ldarg.2 
+	IL_0063:  stloc.0 
+	IL_0064:  nop 
+	.try { // 0
+	  IL_0065:  nop 
+	  IL_0066:  ldnull 
+	  IL_0067:  stloc.2 
+	  IL_0068:  ldloc.0 
+	  IL_0069:  ldc.i4.1 
+	  IL_006a:  ldloca.s 2
+	  IL_006c:  call bool class [System]System.Uri::TryCreate(string, valuetype [System]System.UriKind, [out] class [System]System.Uri&)
+	  IL_0071:  pop 
+	  IL_0072:  ldloc.2 
+	  IL_0073:  ldnull 
+	  IL_0074:  call bool class [System]System.Uri::op_Equality(class [System]System.Uri, class [System]System.Uri)
+	  IL_0079:  brfalse IL_0092
+
+	  IL_007e:  nop 
+	  IL_007f:  ldarg.1 
+	  IL_0080:  ldloc.0 
+	  IL_0081:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	  IL_008b:  stloc.0 
+	  IL_008c:  nop 
+	  IL_008d:  br IL_00e9
+
+	  IL_0092:  ldloc.2 
+	  IL_0093:  callvirt instance string class [System]System.Uri::get_Scheme()
+	  IL_0098:  ldsfld string [System]System.Uri::UriSchemeFile
+	  IL_009d:  call bool string::op_Equality(string, string)
+	  IL_00a2:  brfalse IL_00c0
+
+	  IL_00a7:  nop 
+	  IL_00a8:  ldarg.1 
+	  IL_00a9:  ldloc.2 
+	  IL_00aa:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	  IL_00af:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_00b4:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	  IL_00b9:  stloc.0 
+	  IL_00ba:  nop 
+	  IL_00bb:  br IL_00e9
+
+	  IL_00c0:  nop 
+	  IL_00c1:  ldarg.0 
+	  IL_00c2:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
+	  IL_00c7:  callvirt instance bool class NAnt.VSNet.Tasks.SolutionTask::get_EnableWebDav()
+	  IL_00cc:  brtrue IL_00e8
+
+	  IL_00d1:  nop 
+	  IL_00d2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00d7:  ldstr "Cannot build web project '{0}'.  Please use <webmap> to map the given URL to a project-relative path, or specify enablewebdav=\"true\" on the <solution> task element to use WebDAV."
+	  IL_00dc:  ldloc.0 
+	  IL_00dd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00e2:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	  IL_00e7:  throw 
+	  IL_00e8:  nop 
+	  IL_00e9:  nop 
+	  IL_00ea:  leave IL_0104
+
+	} // end .try 0
+	catch class [System]System.UriFormatException { // 0
+	  IL_00ef:  pop 
+	  IL_00f0:  nop 
+	  IL_00f1:  ldarg.1 
+	  IL_00f2:  ldloc.0 
+	  IL_00f3:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_00f8:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	  IL_00fd:  stloc.0 
+	  IL_00fe:  nop 
+	  IL_00ff:  leave IL_0104
+
+	} // end handler 0
+	IL_0104:  ldloc.0 
+	IL_0105:  stloc.3 
+	IL_0106:  br IL_010b
+
+	IL_010b:  ldloc.3 
+	IL_010c:  ret 
+    } // end of method SolutionBase::TranslateProjectPath
+
+    // method line 332
+    .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 0x3c80
+	// Code size 685 (0x2ad)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		class NAnt.VSNet.ConfigurationBase	V_1,
+		class [mscorlib]System.Collections.ArrayList	V_2,
+		bool	V_3,
+		class NAnt.VSNet.ReferenceBase	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class NAnt.VSNet.AssemblyReferenceBase	V_6,
+		class NAnt.VSNet.ProjectBase	V_7,
+		string	V_8,
+		string	V_9,
+		class NAnt.VSNet.ProjectEntry	V_10,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_11,
+		class NAnt.VSNet.ManagedProjectBase	V_12,
+		class [mscorlib]System.IDisposable	V_13,
+		class NAnt.VSNet.ProjectReferenceBase	V_14,
+		class [mscorlib]System.IDisposable	V_15)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.3 
+	IL_0004:  call instance bool class NAnt.VSNet.SolutionBase::HasDirtyProjectDependency(class NAnt.VSNet.ProjectBase, class [mscorlib]System.Collections.Hashtable)
+	IL_0009:  brfalse IL_0016
+
+	IL_000e:  nop 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stloc.0 
+	IL_0011:  br IL_02ab
+
+	IL_0016:  ldarg.1 
+	IL_0017:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_001c:  ldarg.2 
+	IL_001d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0022:  stloc.1 
+	IL_0023:  ldloc.1 
+	IL_0024:  brtrue IL_0031
+
+	IL_0029:  nop 
+	IL_002a:  ldc.i4.0 
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_02ab
+
+	IL_0031:  ldarg.0 
+	IL_0032:  ldc.i4 2000
+	IL_0037:  ldstr "Fixing up references..."
+	IL_003c:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0041:  ldarg.1 
+	IL_0042:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_0047:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
+	IL_004c:  castclass [mscorlib]System.Collections.ArrayList
+	IL_0051:  stloc.2 
+	IL_0052:  ldc.i4.0 
+	IL_0053:  stloc.3 
+	IL_0054:  nop 
+	IL_0055:  ldloc.2 
+	IL_0056:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_005b:  stloc.s 5
+	.try { // 1
+	  IL_005d:  br IL_027c
+
+	  IL_0062:  ldloc.s 5
+	  IL_0064:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0069:  castclass NAnt.VSNet.ReferenceBase
+	  IL_006e:  stloc.s 4
+	  IL_0070:  nop 
+	  IL_0071:  ldloc.s 4
+	  IL_0073:  isinst NAnt.VSNet.AssemblyReferenceBase
+	  IL_0078:  stloc.s 6
+	  IL_007a:  ldloc.s 6
+	  IL_007c:  brtrue IL_0087
+
+	  IL_0081:  nop 
+	  IL_0082:  leave IL_027c
+
+	  IL_0087:  ldnull 
+	  IL_0088:  stloc.s 7
+	  IL_008a:  ldloc.s 6
+	  IL_008c:  ldarg.2 
+	  IL_008d:  callvirt instance string class NAnt.VSNet.ReferenceBase::GetPrimaryOutputFile(class NAnt.VSNet.Configuration)
+	  IL_0092:  stloc.s 8
+	  IL_0094:  ldloc.s 8
+	  IL_0096:  brtrue IL_00a1
+
+	  IL_009b:  nop 
+	  IL_009c:  leave IL_027c
+
+	  IL_00a1:  ldarg.0 
+	  IL_00a2:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
+	  IL_00a7:  ldloc.s 8
+	  IL_00a9:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	  IL_00ae:  brfalse IL_00de
+
+	  IL_00b3:  nop 
+	  IL_00b4:  ldarg.0 
+	  IL_00b5:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_00ba:  ldarg.0 
+	  IL_00bb:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
+	  IL_00c0:  ldloc.s 8
+	  IL_00c2:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_00c7:  castclass [mscorlib]System.String
+	  IL_00cc:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	  IL_00d1:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	  IL_00d6:  stloc.s 7
+	  IL_00d8:  nop 
+	  IL_00d9:  br IL_013c
+
+	  IL_00de:  ldarg.0 
+	  IL_00df:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
+	  IL_00e4:  brfalse IL_013c
+
+	  IL_00e9:  nop 
+	  IL_00ea:  ldarg.0 
+	  IL_00eb:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
+	  IL_00f0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00f5:  ldloc.s 8
+	  IL_00f7:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_00fc:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_0101:  stloc.s 9
+	  IL_0103:  ldarg.0 
+	  IL_0104:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
+	  IL_0109:  ldloc.s 9
+	  IL_010b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	  IL_0110:  brfalse IL_013b
+
+	  IL_0115:  nop 
+	  IL_0116:  ldarg.0 
+	  IL_0117:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_011c:  ldarg.0 
+	  IL_011d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
+	  IL_0122:  ldloc.s 9
+	  IL_0124:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0129:  castclass [mscorlib]System.String
+	  IL_012e:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	  IL_0133:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	  IL_0138:  stloc.s 7
+	  IL_013a:  nop 
+	  IL_013b:  nop 
+	  IL_013c:  ldloc.s 7
+	  IL_013e:  brtrue IL_01d9
+
+	  IL_0143:  ldloc.s 8
+	  IL_0145:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_014a:  brtrue IL_01d9
+
+	  IL_014f:  nop 
+	  IL_0150:  nop 
+	  IL_0151:  ldarg.0 
+	  IL_0152:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_0157:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	  IL_015c:  stloc.s 11
+	  .try { // 0
+	    IL_015e:  br IL_01b0
+
+	    IL_0163:  ldloc.s 11
+	    IL_0165:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	    IL_016a:  stloc.s 10
+	    IL_016c:  nop 
+	    IL_016d:  ldloc.s 10
+	    IL_016f:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	    IL_0174:  isinst NAnt.VSNet.ManagedProjectBase
+	    IL_0179:  stloc.s 12
+	    IL_017b:  ldloc.s 12
+	    IL_017d:  brtrue IL_0188
+
+	    IL_0182:  nop 
+	    IL_0183:  leave IL_01b0
+
+	    IL_0188:  ldloc.s 6
+	    IL_018a:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	    IL_018f:  ldloc.s 12
+	    IL_0191:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	    IL_0196:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyName()
+	    IL_019b:  call bool string::op_Equality(string, string)
+	    IL_01a0:  brfalse IL_01af
+
+	    IL_01a5:  nop 
+	    IL_01a6:  ldloc.s 12
+	    IL_01a8:  stloc.s 7
+	    IL_01aa:  leave IL_01bc
+
+	    IL_01af:  nop 
+	    IL_01b0:  ldloc.s 11
+	    IL_01b2:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	    IL_01b7:  brtrue IL_0163
+
+	    IL_01bc:  leave IL_01d8
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_01c1:  ldloc.s 11
+	    IL_01c3:  isinst [mscorlib]System.IDisposable
+	    IL_01c8:  dup 
+	    IL_01c9:  stloc.s 13
+	    IL_01cb:  brfalse IL_01d7
+
+	    IL_01d0:  ldloc.s 13
+	    IL_01d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_01d7:  endfinally 
+	  } // end handler 0
+	  IL_01d8:  nop 
+	  IL_01d9:  ldloc.s 7
+	  IL_01db:  brfalse IL_027b
+
+	  IL_01e0:  nop 
+	  IL_01e1:  ldloc.3 
+	  IL_01e2:  brtrue IL_01fe
+
+	  IL_01e7:  ldarg.s 4
+	  IL_01e9:  ldloc.s 7
+	  IL_01eb:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_01f0:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_01f5:  brfalse IL_01fe
+
+	  IL_01fa:  nop 
+	  IL_01fb:  ldc.i4.1 
+	  IL_01fc:  stloc.3 
+	  IL_01fd:  nop 
+	  IL_01fe:  ldloc.s 6
+	  IL_0200:  ldloc.s 7
+	  IL_0202:  callvirt instance class NAnt.VSNet.ProjectReferenceBase class NAnt.VSNet.AssemblyReferenceBase::CreateProjectReference(class NAnt.VSNet.ProjectBase)
+	  IL_0207:  stloc.s 14
+	  IL_0209:  ldarg.0 
+	  IL_020a:  ldc.i4 2000
+	  IL_020f:  ldstr "Converted assembly reference to project reference: {0} -> {1}"
+	  IL_0214:  ldc.i4.2 
+	  IL_0215:  newarr [mscorlib]System.Object
+	  IL_021a:  dup 
+	  IL_021b:  ldc.i4.0 
+	  IL_021c:  ldloc.s 6
+	  IL_021e:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	  IL_0223:  stelem.ref 
+	  IL_0224:  dup 
+	  IL_0225:  ldc.i4.1 
+	  IL_0226:  ldloc.s 14
+	  IL_0228:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	  IL_022d:  stelem.ref 
+	  IL_022e:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0233:  ldarg.1 
+	  IL_0234:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	  IL_0239:  ldloc.s 6
+	  IL_023b:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
+	  IL_0240:  ldarg.1 
+	  IL_0241:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	  IL_0246:  ldloc.s 14
+	  IL_0248:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_024d:  pop 
+	  IL_024e:  ldarg.3 
+	  IL_024f:  ldloc.s 14
+	  IL_0251:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	  IL_0256:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_025b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	  IL_0260:  brtrue IL_027a
+
+	  IL_0265:  nop 
+	  IL_0266:  ldarg.1 
+	  IL_0267:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
+	  IL_026c:  ldloc.s 14
+	  IL_026e:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	  IL_0273:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
+	  IL_0278:  pop 
+	  IL_0279:  nop 
+	  IL_027a:  nop 
+	  IL_027b:  nop 
+	  IL_027c:  ldloc.s 5
+	  IL_027e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0283:  brtrue IL_0062
+
+	  IL_0288:  leave IL_02a4
+
+	} // end .try 1
+	finally  { // 1
+	  IL_028d:  ldloc.s 5
+	  IL_028f:  isinst [mscorlib]System.IDisposable
+	  IL_0294:  dup 
+	  IL_0295:  stloc.s 15
+	  IL_0297:  brfalse IL_02a3
+
+	  IL_029c:  ldloc.s 15
+	  IL_029e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02a3:  endfinally 
+	} // end handler 1
+	IL_02a4:  ldloc.3 
+	IL_02a5:  stloc.0 
+	IL_02a6:  br IL_02ab
+
+	IL_02ab:  ldloc.0 
+	IL_02ac:  ret 
+    } // end of method SolutionBase::FixProjectReferences
+
+    // method line 333
+    .method family hidebysig 
+           instance default class [NAnt.Core]NAnt.Core.BuildException CreateProjectDoesNotExistException (string projectPath)  cil managed 
+    {
+        // Method begins at RVA 0x3f70
+	// Code size 30 (0x1e)
+	.maxstack 3
+	.locals init (
+		class [NAnt.Core]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 "Project '{0}' does not exist."
+	IL_000b:  ldarg.1 
+	IL_000c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0011:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
+
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method SolutionBase::CreateProjectDoesNotExistException
+
+    // method line 334
+    .method family virtual hidebysig newslot 
+           instance default void SetProjectBuildConfiguration (class NAnt.VSNet.ProjectEntry projectEntry)  cil managed 
+    {
+        // Method begins at RVA 0x3f9c
+	// Code size 263 (0x107)
+	.maxstack 3
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0,
+		class NAnt.VSNet.ConfigurationDictionaryEntry	V_1,
+		class NAnt.VSNet.ConfigurationDictionaryEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.VSNet.ProjectBase	V_4,
+		class NAnt.VSNet.ConfigurationMapEntry	V_5,
+		class NAnt.VSNet.ConfigurationMapEnumerator	V_6,
+		class NAnt.VSNet.Configuration	V_7,
+		class NAnt.VSNet.Configuration	V_8,
+		class NAnt.VSNet.ConfigurationBase	V_9,
+		class [mscorlib]System.IDisposable	V_10)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class NAnt.VSNet.ConfigurationMap class NAnt.VSNet.ProjectEntry::get_BuildConfigurations()
+	IL_0007:  brtrue IL_007b
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	IL_0013:  stloc.0 
+	IL_0014:  ldloc.0 
+	IL_0015:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_001a:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::Clear()
+	IL_001f:  nop 
+	IL_0020:  ldloc.0 
+	IL_0021:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	IL_0026:  callvirt instance class NAnt.VSNet.ConfigurationDictionaryEnumerator class NAnt.VSNet.ConfigurationDictionary::GetEnumerator()
+	IL_002b:  stloc.2 
+	.try { // 0
+	  IL_002c:  br IL_0051
+
+	  IL_0031:  ldloc.2 
+	  IL_0032:  callvirt instance class NAnt.VSNet.ConfigurationDictionaryEntry class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Current()
+	  IL_0037:  stloc.1 
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	  IL_003f:  ldloc.1 
+	  IL_0040:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEntry::get_Name()
+	  IL_0045:  ldloc.1 
+	  IL_0046:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEntry::get_Config()
+	  IL_004b:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	  IL_0050:  nop 
+	  IL_0051:  ldloc.2 
+	  IL_0052:  callvirt instance bool class NAnt.VSNet.ConfigurationDictionaryEnumerator::MoveNext()
+	  IL_0057:  brtrue IL_0031
+
+	  IL_005c:  leave IL_0075
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0061:  ldloc.2 
+	  IL_0062:  isinst [mscorlib]System.IDisposable
+	  IL_0067:  dup 
+	  IL_0068:  stloc.3 
+	  IL_0069:  brfalse IL_0074
+
+	  IL_006e:  ldloc.3 
+	  IL_006f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0074:  endfinally 
+	} // end handler 0
+	IL_0075:  nop 
+	IL_0076:  br IL_0106
+
+	IL_007b:  nop 
+	IL_007c:  ldarg.1 
+	IL_007d:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
+	IL_0082:  stloc.s 4
+	IL_0084:  nop 
+	IL_0085:  ldarg.1 
+	IL_0086:  callvirt instance class NAnt.VSNet.ConfigurationMap class NAnt.VSNet.ProjectEntry::get_BuildConfigurations()
+	IL_008b:  callvirt instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
+	IL_0090:  stloc.s 6
+	.try { // 1
+	  IL_0092:  br IL_00dd
+
+	  IL_0097:  ldloc.s 6
+	  IL_0099:  callvirt instance class NAnt.VSNet.ConfigurationMapEntry class NAnt.VSNet.ConfigurationMapEnumerator::get_Current()
+	  IL_009e:  stloc.s 5
+	  IL_00a0:  nop 
+	  IL_00a1:  ldloc.s 5
+	  IL_00a3:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEntry::get_Key()
+	  IL_00a8:  stloc.s 7
+	  IL_00aa:  ldloc.s 5
+	  IL_00ac:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEntry::get_Value()
+	  IL_00b1:  stloc.s 8
+	  IL_00b3:  ldloc.s 4
+	  IL_00b5:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	  IL_00ba:  ldloc.s 8
+	  IL_00bc:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	  IL_00c1:  stloc.s 9
+	  IL_00c3:  ldloc.s 9
+	  IL_00c5:  brfalse IL_00dc
+
+	  IL_00ca:  nop 
+	  IL_00cb:  ldloc.s 4
+	  IL_00cd:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	  IL_00d2:  ldloc.s 7
+	  IL_00d4:  ldloc.s 9
+	  IL_00d6:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	  IL_00db:  nop 
+	  IL_00dc:  nop 
+	  IL_00dd:  ldloc.s 6
+	  IL_00df:  callvirt instance bool class NAnt.VSNet.ConfigurationMapEnumerator::MoveNext()
+	  IL_00e4:  brtrue IL_0097
+
+	  IL_00e9:  leave IL_0105
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00ee:  ldloc.s 6
+	  IL_00f0:  isinst [mscorlib]System.IDisposable
+	  IL_00f5:  dup 
+	  IL_00f6:  stloc.s 10
+	  IL_00f8:  brfalse IL_0104
+
+	  IL_00fd:  ldloc.s 10
+	  IL_00ff:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0104:  endfinally 
+	} // end handler 1
+	IL_0105:  nop 
+	IL_0106:  ret 
+    } // end of method SolutionBase::SetProjectBuildConfiguration
+
+    // method line 335
+    .method private hidebysig 
+           instance default bool HasDirtyProjectDependency (class NAnt.VSNet.ProjectBase project, class [mscorlib]System.Collections.Hashtable builtProjects)  cil managed 
+    {
+        // Method begins at RVA 0x40cc
+	// Code size 98 (0x62)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0,
+		class NAnt.VSNet.ProjectBaseEnumerator	V_1,
+		bool	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
+	IL_0008:  callvirt instance class NAnt.VSNet.ProjectBaseEnumerator class NAnt.VSNet.ProjectBaseCollection::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_0035
+
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectBaseEnumerator::get_Current()
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldarg.2 
+	  IL_001c:  ldloc.0 
+	  IL_001d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_0022:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_0027:  brtrue IL_0034
+
+	  IL_002c:  nop 
+	  IL_002d:  ldc.i4.1 
+	  IL_002e:  stloc.2 
+	  IL_002f:  leave IL_0060
+
+	  IL_0034:  nop 
+	  IL_0035:  ldloc.1 
+	  IL_0036:  callvirt instance bool class NAnt.VSNet.ProjectBaseEnumerator::MoveNext()
+	  IL_003b:  brtrue IL_0013
+
+	  IL_0040:  leave IL_0059
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0045:  ldloc.1 
+	  IL_0046:  isinst [mscorlib]System.IDisposable
+	  IL_004b:  dup 
+	  IL_004c:  stloc.3 
+	  IL_004d:  brfalse IL_0058
+
+	  IL_0052:  ldloc.3 
+	  IL_0053:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0058:  endfinally 
+	} // end handler 0
+	IL_0059:  ldc.i4.0 
+	IL_005a:  stloc.2 
+	IL_005b:  br IL_0060
+
+	IL_0060:  ldloc.2 
+	IL_0061:  ret 
+    } // end of method SolutionBase::HasDirtyProjectDependency
+
+    // method line 336
+    .method private hidebysig 
+           instance default string FindGuidFromPath (string projectPath)  cil managed 
+    {
+        // Method begins at RVA 0x414c
+	// Code size 113 (0x71)
+	.maxstack 4
+	.locals init (
+		class NAnt.VSNet.ProjectEntry	V_0,
+		class NAnt.VSNet.ProjectEntryEnumerator	V_1,
+		string	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	IL_0008:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_0040
+
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
+	  IL_0021:  ldarg.1 
+	  IL_0022:  ldc.i4.1 
+	  IL_0023:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0028:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_002d:  brtrue IL_003f
+
+	  IL_0032:  nop 
+	  IL_0033:  ldloc.0 
+	  IL_0034:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Guid()
+	  IL_0039:  stloc.2 
+	  IL_003a:  leave IL_006f
+
+	  IL_003f:  nop 
+	  IL_0040:  ldloc.1 
+	  IL_0041:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
+	  IL_0046:  brtrue IL_0013
+
+	  IL_004b:  leave IL_0064
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0050:  ldloc.1 
+	  IL_0051:  isinst [mscorlib]System.IDisposable
+	  IL_0056:  dup 
+	  IL_0057:  stloc.3 
+	  IL_0058:  brfalse IL_0063
+
+	  IL_005d:  ldloc.3 
+	  IL_005e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0063:  endfinally 
+	} // end handler 0
+	IL_0064:  ldsfld string [mscorlib]System.String::Empty
+	IL_0069:  stloc.2 
+	IL_006a:  br IL_006f
+
+	IL_006f:  ldloc.2 
+	IL_0070:  ret 
+    } // end of method SolutionBase::FindGuidFromPath
+
+	.property instance class [mscorlib]System.IO.FileInfo File ()
+	{
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.SolutionBase::get_File () 
+	}
+	.property instance class [System]System.CodeDom.Compiler.TempFileCollection TemporaryFiles ()
+	{
+		.get instance default class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::get_TemporaryFiles () 
+	}
+	.property instance class NAnt.VSNet.Types.WebMapCollection WebMaps ()
+	{
+		.get instance default class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::get_WebMaps () 
+	}
+	.property instance class NAnt.VSNet.ProjectEntryCollection ProjectEntries ()
+	{
+		.get instance default class NAnt.VSNet.ProjectEntryCollection NAnt.VSNet.SolutionBase::get_ProjectEntries () 
+	}
+  } // end of class NAnt.VSNet.SolutionBase
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit VcFileConfiguration
+  	extends NAnt.VSNet.VcConfigurationBase
+  {
+    .field  private initonly  string _relativePath
+    .field  private initonly  string _parentName
+    .field  private initonly  bool _excludeFromBuild
+    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration _parentConfig
+    .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 337
+    .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 0x100c0
+	// Code size 151 (0x97)
+	.maxstack 5
+	.locals init (
+		string	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.3 
+	IL_0002:  ldarg.s 4
+	IL_0004:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0009:  ldarg.s 5
+	IL_000b:  call instance void class NAnt.VSNet.VcConfigurationBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ProjectBase, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0010:  nop 
+	IL_0011:  ldarg.1 
+	IL_0012:  brtrue IL_0023
+
+	IL_0017:  nop 
+	IL_0018:  ldstr "relativePath"
+	IL_001d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0022:  throw 
+	IL_0023:  ldarg.2 
+	IL_0024:  brtrue IL_0035
+
+	IL_0029:  nop 
+	IL_002a:  ldstr "parentName"
+	IL_002f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0034:  throw 
+	IL_0035:  ldarg.s 4
+	IL_0037:  brtrue IL_0048
+
+	IL_003c:  nop 
+	IL_003d:  ldstr "parentConfig"
+	IL_0042:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0047:  throw 
+	IL_0048:  ldarg.0 
+	IL_0049:  ldarg.1 
+	IL_004a:  stfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_004f:  ldarg.0 
+	IL_0050:  ldarg.2 
+	IL_0051:  stfld string NAnt.VSNet.VcFileConfiguration::_parentName
+	IL_0056:  ldarg.3 
+	IL_0057:  ldstr "ExcludedFromBuild"
+	IL_005c:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0061:  stloc.0 
+	IL_0062:  ldloc.0 
+	IL_0063:  callvirt instance int32 string::get_Length()
+	IL_0068:  brfalse IL_008e
+
+	IL_006d:  nop 
+	IL_006e:  ldarg.0 
+	IL_006f:  ldloc.0 
+	IL_0070:  callvirt instance string string::Trim()
+	IL_0075:  ldstr "true"
+	IL_007a:  ldc.i4.1 
+	IL_007b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0080:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0085:  ldc.i4.0 
+	IL_0086:  ceq 
+	IL_0088:  stfld bool NAnt.VSNet.VcFileConfiguration::_excludeFromBuild
+	IL_008d:  nop 
+	IL_008e:  ldarg.0 
+	IL_008f:  ldarg.s 4
+	IL_0091:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0096:  ret 
+    } // end of method VcFileConfiguration::.ctor
+
+    // method line 338
+    .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 0x10164
+	// Code size 97 (0x61)
+	.maxstack 4
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.3 
+	IL_0002:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	IL_0007:  ldarg.3 
+	IL_0008:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_000d:  ldarg.s 4
+	IL_000f:  call instance void class NAnt.VSNet.VcConfigurationBase::'.ctor'(string, class NAnt.VSNet.ProjectBase, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0014:  nop 
+	IL_0015:  ldarg.1 
+	IL_0016:  brtrue IL_0027
+
+	IL_001b:  nop 
+	IL_001c:  ldstr "relativePath"
+	IL_0021:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0026:  throw 
+	IL_0027:  ldarg.2 
+	IL_0028:  brtrue IL_0039
+
+	IL_002d:  nop 
+	IL_002e:  ldstr "parentName"
+	IL_0033:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0038:  throw 
+	IL_0039:  ldarg.3 
+	IL_003a:  brtrue IL_004b
+
+	IL_003f:  nop 
+	IL_0040:  ldstr "parentConfig"
+	IL_0045:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_004a:  throw 
+	IL_004b:  ldarg.0 
+	IL_004c:  ldarg.1 
+	IL_004d:  stfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_0052:  ldarg.0 
+	IL_0053:  ldarg.2 
+	IL_0054:  stfld string NAnt.VSNet.VcFileConfiguration::_parentName
+	IL_0059:  ldarg.0 
+	IL_005a:  ldarg.3 
+	IL_005b:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0060:  ret 
+    } // end of method VcFileConfiguration::.ctor
+
+    // method line 339
+    .method public hidebysig specialname 
+           instance default bool get_ExcludeFromBuild ()  cil managed 
+    {
+        // Method begins at RVA 0x101d4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcFileConfiguration::_excludeFromBuild
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcFileConfiguration::get_ExcludeFromBuild
+
+    // method line 340
+    .method public hidebysig specialname 
+           instance default string get_RelativePath ()  cil managed 
+    {
+        // Method begins at RVA 0x101f0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcFileConfiguration::get_RelativePath
+
+    // method line 341
+    .method public virtual hidebysig specialname 
+           instance default string get_RelativeOutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0x1020c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0008:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::get_RawRelativeOutputDir()
+	IL_000d:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method VcFileConfiguration::get_RelativeOutputDir
+
+    // method line 342
+    .method famorassem virtual hidebysig 
+           instance default string ExpandMacro (string macro)  cil managed 
+    {
+        // Method begins at RVA 0x10234
+	// Code size 388 (0x184)
+	.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_0170
+
+	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcFileConfiguration::'<>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 "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.VcFileConfiguration::'<>f__switch$map2'
+	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcFileConfiguration::'<>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_0170
+
+	IL_0090:  ldloc.2 
+	IL_0091:  switch (
+	  IL_00bb,
+	  IL_00f0,
+	  IL_0101,
+	  IL_0122,
+	  IL_0133,
+	  IL_0144,
+	  IL_015f,
+	  IL_0170)
+	IL_00b6:  br IL_0170
+
+	IL_00bb:  ldarg.0 
+	IL_00bc:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_00c1:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_00c6:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_00d1:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00d6:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00db:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00e0:  box [mscorlib]System.Char
+	IL_00e5:  call string string::Concat(object, object)
+	IL_00ea:  stloc.3 
+	IL_00eb:  br IL_0182
+
+	IL_00f0:  ldarg.0 
+	IL_00f1:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_00f6:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_00fb:  stloc.3 
+	IL_00fc:  br IL_0182
+
+	IL_0101:  ldarg.0 
+	IL_0102:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0107:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_010c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0111:  ldarg.0 
+	IL_0112:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_0117:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_011c:  stloc.3 
+	IL_011d:  br IL_0182
+
+	IL_0122:  ldarg.0 
+	IL_0123:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_0128:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_012d:  stloc.3 
+	IL_012e:  br IL_0182
+
+	IL_0133:  ldarg.0 
+	IL_0134:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_0139:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_013e:  stloc.3 
+	IL_013f:  br IL_0182
+
+	IL_0144:  ldarg.0 
+	IL_0145:  ldfld string NAnt.VSNet.VcFileConfiguration::_parentName
+	IL_014a:  ldstr " "
+	IL_014f:  ldsfld string [mscorlib]System.String::Empty
+	IL_0154:  callvirt instance string string::Replace(string, string)
+	IL_0159:  stloc.3 
+	IL_015a:  br IL_0182
+
+	IL_015f:  ldarg.0 
+	IL_0160:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
+	IL_0165:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_016a:  stloc.3 
+	IL_016b:  br IL_0182
+
+	IL_0170:  ldarg.0 
+	IL_0171:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0176:  ldarg.1 
+	IL_0177:  callvirt instance string class NAnt.VSNet.ConfigurationBase::ExpandMacro(string)
+	IL_017c:  stloc.3 
+	IL_017d:  br IL_0182
+
+	IL_0182:  ldloc.3 
+	IL_0183:  ret 
+    } // end of method VcFileConfiguration::ExpandMacro
+
+    // method line 343
+    .method public virtual hidebysig specialname 
+           instance default string get_IntermediateDir ()  cil managed 
+    {
+        // Method begins at RVA 0x103c4
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0008:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::get_RawIntermediateDir()
+	IL_000d:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method VcFileConfiguration::get_IntermediateDir
+
+    // method line 344
+    .method public virtual hidebysig specialname 
+           instance default string get_OutputPath ()  cil managed 
+    {
+        // Method begins at RVA 0x103ec
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0007:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method VcFileConfiguration::get_OutputPath
+
+    // method line 345
+    .method public virtual hidebysig specialname 
+           instance default string get_ReferencesPath ()  cil managed 
+    {
+        // Method begins at RVA 0x1040c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0008:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::get_RawReferencesPath()
+	IL_000d:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method VcFileConfiguration::get_ReferencesPath
+
+    // method line 346
+    .method public virtual hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName, string projectDefault)  cil managed 
+    {
+        // Method begins at RVA 0x10434
+	// Code size 98 (0x62)
+	.maxstack 6
+	.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_003e
+
+	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_003d
+
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  ldloc.0 
+	IL_0032:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_0037:  stloc.2 
+	IL_0038:  br IL_0060
+
+	IL_003d:  nop 
+	IL_003e:  ldarg.0 
+	IL_003f:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0044:  ldarg.1 
+	IL_0045:  ldarg.2 
+	IL_0046:  ldarg.3 
+	IL_0047:  ldarg.0 
+	IL_0048:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_004e:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
+	IL_0053:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::GetToolSetting(string, string, string, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
+	IL_0058:  stloc.0 
+	IL_0059:  ldloc.0 
+	IL_005a:  stloc.2 
+	IL_005b:  br IL_0060
+
+	IL_0060:  ldloc.2 
+	IL_0061:  ret 
+    } // end of method VcFileConfiguration::GetToolSetting
+
+    // method line 347
+    .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 0x104a4
+	// Code size 230 (0xe6)
+	.maxstack 5
+	.locals init (
+		class NAnt.VSNet.VcConfigurationBase/ExpansionHandler	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		class [mscorlib]System.Collections.Hashtable	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,
+		class [mscorlib]System.Collections.Hashtable	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_0008:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
+	IL_000d:  stloc.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0014:  brfalse IL_0030
+
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
+	IL_0020:  ldarg.1 
+	IL_0021:  ldarg.2 
+	IL_0022:  ldarg.3 
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt 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_0029:  stloc.1 
+	IL_002a:  nop 
+	IL_002b:  br IL_0038
+
+	IL_0030:  nop 
+	IL_0031:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0036:  stloc.1 
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
+	IL_003e:  ldarg.1 
+	IL_003f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0044:  castclass [mscorlib]System.Collections.Hashtable
+	IL_0049:  stloc.2 
+	IL_004a:  ldloc.2 
+	IL_004b:  brfalse IL_00db
+
+	IL_0050:  nop 
+	IL_0051:  nop 
+	IL_0052:  ldloc.2 
+	IL_0053:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0058:  stloc.s 4
+	.try { // 0
+	  IL_005a:  br IL_00b2
+
+	  IL_005f:  ldloc.s 4
+	  IL_0061:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0066:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_006b:  stloc.3 
+	  IL_006c:  nop 
+	  IL_006d:  ldarg.2 
+	  IL_006e:  ldloca.s 3
+	  IL_0070:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0075:  castclass [mscorlib]System.String
+	  IL_007a:  ldarg.0 
+	  IL_007b:  ldloca.s 3
+	  IL_007d:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0082:  castclass [mscorlib]System.String
+	  IL_0087:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	  IL_008c:  ldarg.3 
+	  IL_008d:  callvirt instance string class NAnt.VSNet.VcArgumentMap::GetArgument(string, string, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup)
+	  IL_0092:  stloc.s 5
+	  IL_0094:  ldloc.s 5
+	  IL_0096:  brfalse IL_00b1
+
+	  IL_009b:  nop 
+	  IL_009c:  ldloc.1 
+	  IL_009d:  ldloca.s 3
+	  IL_009f:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_00a4:  castclass [mscorlib]System.String
+	  IL_00a9:  ldloc.s 5
+	  IL_00ab:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_00b0:  nop 
+	  IL_00b1:  nop 
+	  IL_00b2:  ldloc.s 4
+	  IL_00b4:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00b9:  brtrue IL_005f
+
+	  IL_00be:  leave IL_00da
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00c3:  ldloc.s 4
+	  IL_00c5:  isinst [mscorlib]System.IDisposable
+	  IL_00ca:  dup 
+	  IL_00cb:  stloc.s 6
+	  IL_00cd:  brfalse IL_00d9
+
+	  IL_00d2:  ldloc.s 6
+	  IL_00d4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d9:  endfinally 
+	} // end handler 0
+	IL_00da:  nop 
+	IL_00db:  ldloc.1 
+	IL_00dc:  stloc.s 7
+	IL_00de:  br IL_00e3
+
+	IL_00e3:  ldloc.s 7
+	IL_00e5:  ret 
+    } // end of method VcFileConfiguration::GetToolArguments
+
+	.property instance bool ExcludeFromBuild ()
+	{
+		.get instance default bool NAnt.VSNet.VcFileConfiguration::get_ExcludeFromBuild () 
+	}
+	.property instance string RelativePath ()
+	{
+		.get instance default string NAnt.VSNet.VcFileConfiguration::get_RelativePath () 
+	}
+	.property instance string RelativeOutputDir ()
+	{
+		.get instance default string NAnt.VSNet.VcFileConfiguration::get_RelativeOutputDir () 
+	}
+	.property instance string IntermediateDir ()
+	{
+		.get instance default string NAnt.VSNet.VcFileConfiguration::get_IntermediateDir () 
+	}
+	.property instance string OutputPath ()
+	{
+		.get instance default string NAnt.VSNet.VcFileConfiguration::get_OutputPath () 
+	}
+	.property instance string ReferencesPath ()
+	{
+		.get instance default string NAnt.VSNet.VcFileConfiguration::get_ReferencesPath () 
+	}
+  } // end of class NAnt.VSNet.VcFileConfiguration
+}
+
+.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 348
+    .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 0xcc7c
+	// 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)
+	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.3 
+	IL_0025:  brtrue IL_0036
+
+	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
@@ -13730,11 +20910,11 @@
 	IL_04a7:  ret 
     } // end of method ManagedProjectBase::.ctor
 
-    // method line 225
+    // method line 349
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
     {
-        // Method begins at RVA 0xbd38
+        // Method begins at RVA 0xd17c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13749,18 +20929,18 @@
 	IL_000e:  ret 
     } // end of method ManagedProjectBase::get_ProjectSettings
 
-    // method line 226
+    // method line 350
     .method family virtual hidebysig newslot abstract specialname 
            instance default string get_FileExtension ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method ManagedProjectBase::get_FileExtension
 
-    // method line 227
+    // method line 351
     .method private hidebysig specialname 
            instance default bool get_IsWebProject ()  cil managed 
     {
-        // Method begins at RVA 0xbd54
+        // Method begins at RVA 0xd198
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -13776,11 +20956,11 @@
 	IL_0013:  ret 
     } // end of method ManagedProjectBase::get_IsWebProject
 
-    // method line 228
+    // method line 352
     .method public virtual hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xbd74
+        // Method begins at RVA 0xd1b8
 	// Code size 66 (0x42)
 	.maxstack 1
 	.locals init (
@@ -13818,11 +20998,11 @@
 	IL_0041:  ret 
     } // end of method ManagedProjectBase::get_Name
 
-    // method line 229
+    // method line 353
     .method public virtual hidebysig specialname 
            instance default string get_ProjectPath ()  cil managed 
     {
-        // Method begins at RVA 0xbdc4
+        // Method begins at RVA 0xd208
 	// Code size 50 (0x32)
 	.maxstack 1
 	.locals init (
@@ -13850,11 +21030,11 @@
 	IL_0031:  ret 
     } // end of method ManagedProjectBase::get_ProjectPath
 
-    // method line 230
+    // method line 354
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
     {
-        // Method begins at RVA 0xbe04
+        // Method begins at RVA 0xd248
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13869,11 +21049,11 @@
 	IL_000e:  ret 
     } // end of method ManagedProjectBase::get_ProjectDirectory
 
-    // method line 231
+    // method line 355
     .method public virtual hidebysig specialname 
            instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
     {
-        // Method begins at RVA 0xbe20
+        // Method begins at RVA 0xd264
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13888,11 +21068,11 @@
 	IL_000e:  ret 
     } // end of method ManagedProjectBase::get_ProjectLocation
 
-    // method line 232
+    // method line 356
     .method public virtual hidebysig specialname 
            instance default string get_Guid ()  cil managed 
     {
-        // Method begins at RVA 0xbe3c
+        // Method begins at RVA 0xd280
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -13908,11 +21088,11 @@
 	IL_0013:  ret 
     } // end of method ManagedProjectBase::get_Guid
 
-    // method line 233
+    // method line 357
     .method public virtual hidebysig specialname 
            instance default void set_Guid (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xbe5c
+        // Method begins at RVA 0xd2a0
 	// Code size 12 (0xc)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13921,11 +21101,11 @@
 	IL_000b:  throw 
     } // end of method ManagedProjectBase::set_Guid
 
-    // method line 234
+    // method line 358
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
     {
-        // Method begins at RVA 0xbe6c
+        // Method begins at RVA 0xd2b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13940,11 +21120,11 @@
 	IL_000e:  ret 
     } // end of method ManagedProjectBase::get_References
 
-    // method line 235
+    // method line 359
     .method public virtual hidebysig 
            instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xbe88
+        // Method begins at RVA 0xd2cc
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -13958,11 +21138,11 @@
 	IL_0009:  ret 
     } // end of method ManagedProjectBase::IsManaged
 
-    // method line 236
+    // method line 360
     .method family virtual hidebysig 
            instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xbea0
+        // Method begins at RVA 0xd2e4
 	// Code size 62 (0x3e)
 	.maxstack 2
 	.locals init (
@@ -13992,11 +21172,11 @@
 	IL_003d:  ret 
     } // end of method ManagedProjectBase::Prepare
 
-    // method line 237
+    // method line 361
     .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 0xbeec
+        // Method begins at RVA 0xd330
 	// Code size 245 (0xf5)
 	.maxstack 3
 	.locals init (
@@ -14113,11 +21293,11 @@
 	IL_00f4:  ret 
     } // end of method ManagedProjectBase::GetOutputFiles
 
-    // method line 238
+    // method line 362
     .method family virtual hidebysig 
            instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xc000
+        // Method begins at RVA 0xd444
 	// Code size 1547 (0x60b)
 	.maxstack 7
 	.locals init (
@@ -14766,18 +21946,18 @@
 	IL_060a:  ret 
     } // end of method ManagedProjectBase::Build
 
-    // method line 239
+    // method line 363
     .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 0x0
     } // end of method ManagedProjectBase::GetProcessStartInfo
 
-    // method line 240
+    // method line 364
     .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 0xc6dc
+        // Method begins at RVA 0xdb20
 	// Code size 183 (0xb7)
 	.maxstack 7
 	.locals init (
@@ -14854,11 +22034,11 @@
 	IL_00b6:  ret 
     } // end of method ManagedProjectBase::CreateReference
 
-    // method line 241
+    // method line 365
     .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 0xc7a0
+        // Method begins at RVA 0xdbe4
 	// Code size 18 (0x12)
 	.maxstack 4
 	.locals init (
@@ -14876,11 +22056,11 @@
 	IL_0011:  ret 
     } // end of method ManagedProjectBase::CreateProjectReference
 
-    // method line 242
+    // method line 366
     .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 0xc7c0
+        // Method begins at RVA 0xdc04
 	// Code size 383 (0x17f)
 	.maxstack 4
 	.locals init (
@@ -15066,29 +22246,29 @@
 	IL_017e:  ret 
     } // end of method ManagedProjectBase::WriteCompilerOptions
 
-    // method line 243
+    // method line 367
     .method family virtual hidebysig newslot 
            instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
     {
-        // Method begins at RVA 0xc968
+        // Method begins at RVA 0xddac
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method ManagedProjectBase::WriteProjectOptions
 
-    // method line 244
+    // method line 368
     .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 245
+    // method line 369
     .method private hidebysig 
            instance default string GetTypeLibraryPath (class NAnt.VSNet.ConfigurationSettings config)  cil managed 
     {
-        // Method begins at RVA 0xc96c
+        // Method begins at RVA 0xddb0
 	// Code size 43 (0x2b)
 	.maxstack 2
 	.locals init (
@@ -15112,11 +22292,11 @@
 	IL_002a:  ret 
     } // end of method ManagedProjectBase::GetTypeLibraryPath
 
-    // method line 246
+    // method line 370
     .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 0xc9a4
+        // Method begins at RVA 0xdde8
 	// Code size 254 (0xfe)
 	.maxstack 3
 	.locals init (
@@ -15239,11 +22419,11 @@
 	IL_00fd:  ret 
     } // end of method ManagedProjectBase::RegisterForComInterop
 
-    // method line 247
+    // method line 371
     .method private hidebysig 
            instance default void UnregisterForComInterop (class NAnt.VSNet.ConfigurationSettings config, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xcad8
+        // Method begins at RVA 0xdf1c
 	// Code size 318 (0x13e)
 	.maxstack 3
 	.locals init (
@@ -15392,11 +22572,11 @@
 	IL_013d:  ret 
     } // end of method ManagedProjectBase::UnregisterForComInterop
 
-    // method line 248
+    // method line 372
     .method private hidebysig 
            instance default void RegisterEmbeddedResource (string resourceFile, class [System.Xml]System.Xml.XmlElement elemFile)  cil managed 
     {
-        // Method begins at RVA 0xcc4c
+        // Method begins at RVA 0xe090
 	// Code size 243 (0xf3)
 	.maxstack 7
 	.locals init (
@@ -15496,11 +22676,11 @@
 	IL_00f2:  ret 
     } // end of method ManagedProjectBase::RegisterEmbeddedResource
 
-    // method line 249
+    // method line 373
     .method private hidebysig 
            instance default void CompileResXFiles (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xcd4c
+        // Method begins at RVA 0xe190
 	// Code size 812 (0x32c)
 	.maxstack 7
 	.locals init (
@@ -15842,11 +23022,11 @@
 	IL_032b:  ret 
     } // end of method ManagedProjectBase::CompileResXFiles
 
-    // method line 250
+    // method line 374
     .method private hidebysig 
            instance default void WriteNeutralResourceOptions (class [mscorlib]System.IO.StreamWriter sw, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xd0d0
+        // Method begins at RVA 0xe514
 	// Code size 233 (0xe9)
 	.maxstack 7
 	.locals init (
@@ -15951,11 +23131,11 @@
 	IL_00e8:  ret 
     } // end of method ManagedProjectBase::WriteNeutralResourceOptions
 
-    // method line 251
+    // method line 375
     .method private hidebysig 
            instance default bool PreBuild (class NAnt.VSNet.ConfigurationSettings cs)  cil managed 
     {
-        // Method begins at RVA 0xd1d8
+        // Method begins at RVA 0xe61c
 	// Code size 84 (0x54)
 	.maxstack 6
 	.locals init (
@@ -16000,11 +23180,11 @@
 	IL_0053:  ret 
     } // end of method ManagedProjectBase::PreBuild
 
-    // method line 252
+    // method line 376
     .method private hidebysig 
            instance default bool PostBuild (class NAnt.VSNet.ConfigurationSettings cs, bool bCompileSuccess, bool bOutputUpdated)  cil managed 
     {
-        // Method begins at RVA 0xd238
+        // Method begins at RVA 0xe67c
 	// Code size 359 (0x167)
 	.maxstack 7
 	.locals init (
@@ -16155,11 +23335,11 @@
 	IL_0166:  ret 
     } // end of method ManagedProjectBase::PostBuild
 
-    // method line 253
+    // method line 377
     .method private hidebysig 
            instance default bool CheckUpToDate (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xd3ac
+        // Method begins at RVA 0xe7f0
 	// Code size 603 (0x25b)
 	.maxstack 7
 	.locals init (
@@ -16438,11 +23618,11 @@
 	IL_025a:  ret 
     } // end of method ManagedProjectBase::CheckUpToDate
 
-    // method line 254
+    // method line 378
     .method private hidebysig 
            instance default class [mscorlib]System.Collections.Hashtable GetLocalizedResources ()  cil managed 
     {
-        // Method begins at RVA 0xd648
+        // Method begins at RVA 0xea8c
 	// Code size 149 (0x95)
 	.maxstack 3
 	.locals init (
@@ -16521,11 +23701,11 @@
 	IL_0094:  ret 
     } // end of method ManagedProjectBase::GetLocalizedResources
 
-    // method line 255
+    // method line 379
     .method private hidebysig 
            instance default class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask CreateRegAsmTask ()  cil managed 
     {
-        // Method begins at RVA 0xd6fc
+        // Method begins at RVA 0xeb40
 	// Code size 244 (0xf4)
 	.maxstack 3
 	.locals init (
@@ -16616,11 +23796,11 @@
 	IL_00f3:  ret 
     } // end of method ManagedProjectBase::CreateRegAsmTask
 
-    // method line 256
+    // method line 380
     .method public static hidebysig 
            default bool IsEnterpriseTemplateProject (string fileName)  cil managed 
     {
-        // Method begins at RVA 0xd7fc
+        // Method begins at RVA 0xec40
 	// Code size 138 (0x8a)
 	.maxstack 3
 	.locals init (
@@ -16701,11 +23881,11 @@
 	IL_0089:  ret 
     } // end of method ManagedProjectBase::IsEnterpriseTemplateProject
 
-    // method line 257
+    // method line 381
     .method public static hidebysig 
            default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0xd8bc
+        // Method begins at RVA 0xed00
 	// Code size 22 (0x16)
 	.maxstack 1
 	.locals init (
@@ -16724,11 +23904,11 @@
 	IL_0015:  ret 
     } // end of method ManagedProjectBase::LoadGuid
 
-    // method line 258
+    // method line 382
     .method private static hidebysig 
            default string LoadGuid (class [System.Xml]System.Xml.XmlReader guidReader)  cil managed 
     {
-        // Method begins at RVA 0xd8e0
+        // Method begins at RVA 0xed24
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
@@ -16782,11 +23962,11 @@
 	IL_006e:  ret 
     } // end of method ManagedProjectBase::LoadGuid
 
-    // method line 259
+    // method line 383
     .method family static hidebysig 
            default valuetype NAnt.VSNet.ProductVersion GetProductVersion (class [System.Xml]System.Xml.XmlNode projectNode)  cil managed 
     {
-        // Method begins at RVA 0xd95c
+        // Method begins at RVA 0xeda0
 	// Code size 208 (0xd0)
 	.maxstack 3
 	.locals init (
@@ -16880,11 +24060,11 @@
 	IL_00cf:  ret 
     } // end of method ManagedProjectBase::GetProductVersion
 
-    // method line 260
+    // method line 384
     .method family static hidebysig 
            default valuetype NAnt.VSNet.ProjectLocation GetProjectLocation (class [System.Xml]System.Xml.XmlNode projectNode)  cil managed 
     {
-        // Method begins at RVA 0xda48
+        // Method begins at RVA 0xee8c
 	// Code size 130 (0x82)
 	.maxstack 3
 	.locals init (
@@ -16985,11 +24165,11 @@
     .field  private initonly  class [mscorlib]System.Globalization.CultureInfo _culture
     .field  private initonly  class [mscorlib]System.Collections.ArrayList _resources
 
-    // method line 261
+    // method line 385
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Globalization.CultureInfo culture)  cil managed 
     {
-        // Method begins at RVA 0xdae8
+        // Method begins at RVA 0xef2c
 	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -17011,11 +24191,11 @@
 	IL_002b:  ret 
     } // end of method LocalizedResourceSet::.ctor
 
-    // method line 262
+    // method line 386
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0xdb18
+        // Method begins at RVA 0xef5c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17030,11 +24210,11 @@
 	IL_000e:  ret 
     } // end of method LocalizedResourceSet::get_Culture
 
-    // method line 263
+    // method line 387
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.ArrayList get_Resources ()  cil managed 
     {
-        // Method begins at RVA 0xdb34
+        // Method begins at RVA 0xef78
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17049,11 +24229,11 @@
 	IL_000e:  ret 
     } // end of method LocalizedResourceSet::get_Resources
 
-    // method line 264
+    // method line 388
     .method public hidebysig 
            instance default class [mscorlib]System.IO.DirectoryInfo GetBuildDirectory (class NAnt.VSNet.ConfigurationSettings projectConfig)  cil managed 
     {
-        // Method begins at RVA 0xdb50
+        // Method begins at RVA 0xef94
 	// Code size 41 (0x29)
 	.maxstack 2
 	.locals init (
@@ -17074,11 +24254,11 @@
 	IL_0028:  ret 
     } // end of method LocalizedResourceSet::GetBuildDirectory
 
-    // method line 265
+    // method line 389
     .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 0xdb88
+        // Method begins at RVA 0xefcc
 	// Code size 40 (0x28)
 	.maxstack 3
 	.locals init (
@@ -17103,11 +24283,11 @@
 	IL_0027:  ret 
     } // end of method LocalizedResourceSet::GetSatelliteAssemblyPath
 
-    // method line 266
+    // method line 390
     .method public hidebysig 
            instance default string GetRelativePath (class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
     {
-        // Method begins at RVA 0xdbbc
+        // Method begins at RVA 0xf000
 	// Code size 32 (0x20)
 	.maxstack 3
 	.locals init (
@@ -17127,11 +24307,11 @@
 	IL_001f:  ret 
     } // end of method LocalizedResourceSet::GetRelativePath
 
-    // method line 267
+    // method line 391
     .method private hidebysig 
            instance default string GetSatelliteFileName (class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
     {
-        // Method begins at RVA 0xdbe8
+        // Method begins at RVA 0xf02c
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -17177,16 +24357,966 @@
 
 .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
+
+    // method line 392
+    .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_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 "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 393
+    .method family hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlElement get_XmlDefinition ()  cil managed 
+    {
+        // Method begins at RVA 0x508c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlElement	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	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 FileReferenceBase::get_XmlDefinition
+
+    // method line 394
+    .method family hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
+    {
+        // Method begins at RVA 0x50a8
+	// 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.FileReferenceBase::_gacCache
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileReferenceBase::get_GacCache
+
+    // method line 395
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
+    {
+        // Method begins at RVA 0x50c4
+	// 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 FileReferenceBase::IsManaged
+
+    // method line 396
+    .method family hidebysig 
+           instance default void GetAssemblyOutputFiles (string assemblyFile, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    {
+        // Method begins at RVA 0x50dc
+	// 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_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_0048:  nop 
+	IL_0049:  ldarg.0 
+	IL_004a:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
+	IL_004f:  brtrue IL_0065
+
+	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_0065:  nop 
+	IL_0066:  br IL_0074
+
+	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_0081:  nop 
+	IL_0082:  ret 
+    } // end of method FileReferenceBase::GetAssemblyOutputFiles
+
+    // method line 397
+    .method private hidebysig 
+           instance default string[] GetAllReferencedModules (string module)  cil managed 
+    {
+        // Method begins at RVA 0x516c
+	// Code size 201 (0xc9)
+	.maxstack 5
+	.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)
+	IL_0000:  nop 
+	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_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_0077:  nop 
+	  IL_0078:  leave IL_009d
+
+	} // 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_00c6:  ldloc.s 8
+	IL_00c8:  ret 
+    } // end of method FileReferenceBase::GetAllReferencedModules
+
+	.property instance class [System.Xml]System.Xml.XmlElement XmlDefinition ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::get_XmlDefinition () 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Util.GacCache GacCache ()
+	{
+		.get instance default class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::get_GacCache () 
+	}
+  } // end of class NAnt.VSNet.FileReferenceBase
+}
+
+.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
+
+    // method line 398
+    .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 0x10dd4
+	// 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_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_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_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 399
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x10ea0
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedWrapperReference::get_Name
+
+    // method line 400
+    .method public virtual hidebysig specialname 
+           instance default string get_WrapperTool ()  cil managed 
+    {
+        // Method begins at RVA 0x10ebc
+	// 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::_wrapperTool
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedWrapperReference::get_WrapperTool
+
+    // method line 401
+    .method public virtual hidebysig specialname 
+           instance default string get_WrapperAssembly ()  cil managed 
+    {
+        // Method begins at RVA 0x10ed8
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedWrapperReference::get_WrapperAssembly
+
+    // method line 402
+    .method family virtual hidebysig specialname 
+           instance default string get_PrimaryInteropAssembly ()  cil managed 
+    {
+        // Method begins at RVA 0x10ef4
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedWrapperReference::get_PrimaryInteropAssembly
+
+    // method line 403
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x10f10
+	// Code size 176 (0xb0)
+	.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)
+	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_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_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_00ad:  ldloc.s 6
+	IL_00af:  ret 
+    } // end of method ManagedWrapperReference::get_TypeLibVersion
+
+    // method line 404
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibGuid ()  cil managed 
+    {
+        // Method begins at RVA 0x10fcc
+	// 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 "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_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_0035:  ldloc.1 
+	IL_0036:  ret 
+    } // end of method ManagedWrapperReference::get_TypeLibGuid
+
+    // method line 405
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibLocale ()  cil managed 
+    {
+        // Method begins at RVA 0x11010
+	// 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_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_0047:  ldloc.2 
+	IL_0048:  ret 
+    } // end of method ManagedWrapperReference::get_TypeLibLocale
+
+    // method line 406
+    .method private hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
+    {
+        // Method begins at RVA 0x11068
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ProjectSettings	V_0)
+	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedWrapperReference::get_ProjectSettings
+
+    // method line 407
+    .method family virtual hidebysig 
+           instance default void ImportTypeLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x11084
+	// 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_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_00bd:  ldloc.3 
+	  IL_00be:  callvirt instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
+	  IL_00c3:  brfalse IL_00dd
+
+	  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_00dd:  nop 
+	  IL_00de:  leave IL_00fb
+
+	  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_0106:  leave IL_0121
+
+	} // 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_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_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_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 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 408
+    .method family virtual hidebysig 
+           instance default void ImportActiveXLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x11254
+	// Code size 328 (0x148)
+	.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:  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_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_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 WrapperReferenceBase
   	extends NAnt.VSNet.FileReferenceBase
   {
     .field  private  bool _isCreated
 
-    // method line 268
+    // method line 409
     .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 0xdc12
+        // Method begins at RVA 0x105a8
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -17199,11 +25329,11 @@
 	IL_000c:  ret 
     } // end of method WrapperReferenceBase::.ctor
 
-    // method line 269
+    // method line 410
     .method public virtual hidebysig specialname 
            instance default bool get_CopyLocal ()  cil managed 
     {
-        // Method begins at RVA 0xdc20
+        // Method begins at RVA 0x105b8
 	// Code size 25 (0x19)
 	.maxstack 2
 	.locals init (
@@ -17220,11 +25350,11 @@
 	IL_0018:  ret 
     } // end of method WrapperReferenceBase::get_CopyLocal
 
-    // method line 270
+    // method line 411
     .method family virtual hidebysig specialname 
            instance default bool get_IsSystem ()  cil managed 
     {
-        // Method begins at RVA 0xdc48
+        // Method begins at RVA 0x105e0
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -17238,11 +25368,11 @@
 	IL_0009:  ret 
     } // end of method WrapperReferenceBase::get_IsSystem
 
-    // method line 271
+    // method line 412
     .method public virtual hidebysig 
            instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xdc60
+        // Method begins at RVA 0x105f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17257,11 +25387,11 @@
 	IL_000e:  ret 
     } // end of method WrapperReferenceBase::GetPrimaryOutputFile
 
-    // method line 272
+    // method line 413
     .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 0xdc7c
+        // Method begins at RVA 0x10614
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -17282,11 +25412,11 @@
 	IL_0021:  ret 
     } // end of method WrapperReferenceBase::GetOutputFiles
 
-    // method line 273
+    // method line 414
     .method public virtual hidebysig 
            instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xdcac
+        // Method begins at RVA 0x10644
 	// Code size 100 (0x64)
 	.maxstack 4
 	.locals init (
@@ -17334,11 +25464,11 @@
 	IL_0063:  ret 
     } // end of method WrapperReferenceBase::GetAssemblyReferences
 
-    // method line 274
+    // method line 415
     .method public virtual hidebysig 
            instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xdd1c
+        // Method begins at RVA 0x106b4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -17355,25 +25485,25 @@
 	IL_0014:  ret 
     } // end of method WrapperReferenceBase::GetTimestamp
 
-    // method line 275
+    // method line 416
     .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 276
+    // method line 417
     .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 277
+    // method line 418
     .method public hidebysig specialname 
            instance default bool get_IsCreated ()  cil managed 
     {
-        // Method begins at RVA 0xdd40
+        // Method begins at RVA 0x106d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17388,39 +25518,39 @@
 	IL_000e:  ret 
     } // end of method WrapperReferenceBase::get_IsCreated
 
-    // method line 278
+    // method line 419
     .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 279
+    // method line 420
     .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 280
+    // method line 421
     .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 281
+    // method line 422
     .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 282
+    // method line 423
     .method family virtual hidebysig newslot specialname 
            instance default string get_TypeLibraryName ()  cil managed 
     {
-        // Method begins at RVA 0xdd5c
+        // Method begins at RVA 0x106f4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -17437,25 +25567,25 @@
 	IL_0014:  ret 
     } // end of method WrapperReferenceBase::get_TypeLibraryName
 
-    // method line 283
+    // method line 424
     .method family virtual hidebysig newslot abstract 
            instance default void ImportTypeLibrary ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method WrapperReferenceBase::ImportTypeLibrary
 
-    // method line 284
+    // method line 425
     .method family virtual hidebysig newslot abstract 
            instance default void ImportActiveXLibrary ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method WrapperReferenceBase::ImportActiveXLibrary
 
-    // method line 285
+    // method line 426
     .method family hidebysig 
            instance default string ResolveWrapperAssembly ()  cil managed 
     {
-        // Method begins at RVA 0xdd80
+        // Method begins at RVA 0x10718
 	// Code size 201 (0xc9)
 	.maxstack 4
 	.locals init (
@@ -17534,11 +25664,11 @@
 	IL_00c8:  ret 
     } // end of method WrapperReferenceBase::ResolveWrapperAssembly
 
-    // method line 286
+    // method line 427
     .method family hidebysig 
            instance default string GetPrimaryInteropAssembly ()  cil managed 
     {
-        // Method begins at RVA 0xde58
+        // Method begins at RVA 0x107f0
 	// Code size 206 (0xce)
 	.maxstack 4
 	.locals init (
@@ -17636,11 +25766,11 @@
 	IL_00cd:  ret 
     } // end of method WrapperReferenceBase::GetPrimaryInteropAssembly
 
-    // method line 287
+    // method line 428
     .method family hidebysig 
            instance default string GetTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0xdf50
+        // Method begins at RVA 0x108e8
 	// Code size 145 (0x91)
 	.maxstack 5
 	.locals init (
@@ -17715,11 +25845,11 @@
 	IL_0090:  ret 
     } // end of method WrapperReferenceBase::GetTypeLibrary
 
-    // method line 288
+    // method line 429
     .method family hidebysig 
            instance default string GetTypeLibraryName (string typeLibraryPath)  cil managed 
     {
-        // Method begins at RVA 0xe000
+        // Method begins at RVA 0x10998
 	// Code size 100 (0x64)
 	.maxstack 3
 	.locals init (
@@ -17770,11 +25900,11 @@
 	IL_0063:  ret 
     } // end of method WrapperReferenceBase::GetTypeLibraryName
 
-    // method line 289
+    // method line 430
     .method private hidebysig 
            instance default string CreateWrapper (class NAnt.VSNet.ConfigurationBase config)  cil managed 
     {
-        // Method begins at RVA 0xe080
+        // Method begins at RVA 0x10a18
 	// Code size 253 (0xfd)
 	.maxstack 7
 	.locals init (
@@ -17875,11 +26005,11 @@
 	IL_00fc:  ret 
     } // end of method WrapperReferenceBase::CreateWrapper
 
-    // method line 290
+    // method line 431
     .method private hidebysig 
            instance default void Sync (class NAnt.VSNet.ConfigurationBase config)  cil managed 
     {
-        // Method begins at RVA 0xe18c
+        // Method begins at RVA 0x10b24
 	// Code size 164 (0xa4)
 	.maxstack 2
 	.locals init (
@@ -17944,11 +26074,11 @@
 	IL_00a3:  ret 
     } // end of method WrapperReferenceBase::Sync
 
-    // method line 291
+    // method line 432
     .method private hidebysig 
            instance default class [NAnt.Core]NAnt.Core.BuildException CreateTypeLibraryNotRegisteredException ()  cil managed 
     {
-        // Method begins at RVA 0xe23c
+        // Method begins at RVA 0x10bd4
 	// Code size 149 (0x95)
 	.maxstack 6
 	.locals init (
@@ -18016,11 +26146,11 @@
 	IL_0094:  ret 
     } // end of method WrapperReferenceBase::CreateTypeLibraryNotRegisteredException
 
-    // method line 292
+    // method line 433
     .method private hidebysig 
            instance default class [NAnt.Core]NAnt.Core.BuildException CreateInvalidTypeLibraryRegistrationException ()  cil managed 
     {
-        // Method begins at RVA 0xe2e0
+        // Method begins at RVA 0x10c78
 	// Code size 149 (0x95)
 	.maxstack 6
 	.locals init (
@@ -18088,11 +26218,11 @@
 	IL_0094:  ret 
     } // end of method WrapperReferenceBase::CreateInvalidTypeLibraryRegistrationException
 
-    // method line 293
+    // method line 434
     .method private hidebysig 
            instance default class [NAnt.Core]NAnt.Core.BuildException CreateTypeLibraryPathDoesNotExistException (string typeLibraryPath)  cil managed 
     {
-        // Method begins at RVA 0xe384
+        // Method begins at RVA 0x10d1c
 	// Code size 172 (0xac)
 	.maxstack 6
 	.locals init (
@@ -18179,7 +26309,7 @@
 	IL_00ab:  ret 
     } // end of method WrapperReferenceBase::CreateTypeLibraryPathDoesNotExistException
 
-    // method line 294
+    // method line 435
     .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 
     {
@@ -18231,1968 +26361,1051 @@
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit WebDavClient
+  .class private auto ansi beforefieldinit VCProjectProvider
   	extends [mscorlib]System.Object
-  {
-    .field  private  string _webProjectBaseUrl
+  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 295
+    // method line 436
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System]System.Uri uriBase)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe43c
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x113b8
+	// 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 string object::ToString()
-	IL_000e:  stfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
-	IL_0013:  ret 
-    } // end of method WebDavClient::.ctor
+	IL_0006:  ret 
+    } // end of method VCProjectProvider::.ctor
 
-    // method line 296
-    .method public hidebysig 
-           instance default void UploadFile (string localFileName, string remoteFileName)  cil managed 
+    // method line 437
+    .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 0xe454
-	// Code size 276 (0x114)
-	.maxstack 4
+        // Method begins at RVA 0x113c0
+	// Code size 52 (0x34)
+	.maxstack 2
 	.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)
+		int32	V_0)
 	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 "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
-
-	    IL_0097:  nop 
-	    IL_0098:  leave IL_00ac
-
-	  } // 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
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr ".vcproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00b2:  ldloc.s 4
-	  IL_00b4:  brfalse IL_00c0
+	IL_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
 
-	  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
+	IL_0018:  ldarg.2 
+	IL_0019:  call bool class NAnt.VSNet.VcProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_001e:  brfalse IL_002b
 
-	  } // end .try 2
-	  finally  { // 2
-	    IL_00d3:  ldloc.s 7
-	    IL_00d5:  brfalse IL_00e1
+	IL_0023:  ldc.i4.s 0x0a
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0032
 
-	    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
+	IL_002b:  ldc.i4.0 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
 
-	} // 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_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method VCProjectProvider::IsSupported
 
-	  IL_010a:  nop 
-	  IL_010b:  rethrow 
-	  IL_010d:  nop 
-	  IL_010e:  leave IL_0113
+    // method line 438
+    .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 0x11400
+	// 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.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
 
-	} // end handler 3
-	IL_0113:  ret 
-    } // end of method WebDavClient::UploadFile
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method VCProjectProvider::GetInstance
 
-    // method line 297
-    .method public hidebysig 
-           instance default void DeleteFile (string localFileName, string remoteFileName)  cil managed 
+    // method line 439
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0xe5a8
-	// Code size 90 (0x5a)
-	.maxstack 3
+        // Method begins at RVA 0x11428
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [System]System.Net.WebResponse	V_1)
+		string	V_0)
 	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
+	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
 
-	} // end .try 0
-	finally  { // 0
-	  IL_004c:  ldloc.1 
-	  IL_004d:  brfalse IL_0058
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VCProjectProvider::LoadGuid
 
-	  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
+  } // end of class NAnt.VSNet.VCProjectProvider
+}
 
-    // method line 298
-    .method public hidebysig 
-           instance default void DownloadFile (string localFileName, string remoteFileName)  cil managed 
+.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 440
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe620
-	// Code size 219 (0xdb)
-	.maxstack 4
+        // Method begins at RVA 0x11443
+	// 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 441
+    .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 0x1144c
+	// Code size 52 (0x34)
+	.maxstack 2
 	.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)
+		int32	V_0)
 	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_0001:  ldarg.1 
+	IL_0002:  ldstr ".csproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
 
-	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
+	IL_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
 
-	    IL_00ae:  nop 
-	    IL_00af:  leave IL_00c3
+	IL_0018:  ldarg.2 
+	IL_0019:  call bool class NAnt.VSNet.CSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_001e:  brfalse IL_002b
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00b4:  ldloc.s 5
-	    IL_00b6:  brfalse IL_00c2
+	IL_0023:  ldc.i4.s 0x0a
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0032
 
-	    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
+	IL_002b:  ldc.i4.0 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00c9:  ldloc.s 4
-	  IL_00cb:  brfalse IL_00d7
+	IL_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method CSharpProjectProvider::IsSupported
 
-	  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 442
+    .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 0x1148c
+	// 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
 
-    // method line 299
-    .method public hidebysig 
-           instance default string GetFileContents (string remoteFileName)  cil managed 
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method CSharpProjectProvider::GetInstance
+
+    // method line 443
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0xe724
-	// Code size 107 (0x6b)
-	.maxstack 3
+        // Method begins at RVA 0x114b4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1,
-		string	V_2)
+		string	V_0)
 	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
-
-	} // end .try 0
-	finally  { // 0
-	  IL_005c:  ldloc.1 
-	  IL_005d:  brfalse IL_0068
-
-	  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 300
-    .method public static hidebysig 
-           default string GetFileContentsStatic (string remoteFileName)  cil managed 
-    {
-        // Method begins at RVA 0xe7ac
-	// Code size 91 (0x5b)
-	.maxstack 2
-	.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:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	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:  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_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 CSharpProjectProvider::LoadGuid
 
-  } // end of class NAnt.VSNet.WebDavClient
+  } // end of class NAnt.VSNet.CSharpProjectProvider
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit ProjectSettings
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit JSharpProject
+  	extends NAnt.VSNet.ManagedProjectBase
   {
-    .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 301
+    // method line 444
     .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 
+           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 0xe824
-	// 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)
+        // Method begins at RVA 0x114d0
+	// Code size 21 (0x15)
+	.maxstack 9
 	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 302
-    .method public hidebysig specialname 
-           instance default string[] get_Settings ()  cil managed 
-    {
-        // Method begins at RVA 0xece0
-	// 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 303
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ApplicationIcon ()  cil managed 
-    {
-        // Method begins at RVA 0xed10
-	// 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 304
-    .method public hidebysig specialname 
-           instance default string get_AssemblyName ()  cil managed 
-    {
-        // Method begins at RVA 0xed2c
-	// 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 305
-    .method public hidebysig specialname 
-           instance default string get_AssemblyOriginatorKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0xed48
-	// 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
+	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 306
-    .method public hidebysig specialname 
-           instance default string get_AssemblyKeyContainerName ()  cil managed 
+    // method line 445
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0xed64
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x114f4
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.VSNet.ProjectType	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_0001:  ldc.i4.3 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_AssemblyKeyContainerName
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method JSharpProject::get_Type
 
-    // method line 307
-    .method public hidebysig specialname 
-           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
+    // method line 446
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xed80
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [System]System.CodeDom.Compiler.TempFileCollection	V_0)
+        // Method begins at RVA 0x1150a
+	// Code size 46 (0x2e)
+	.maxstack 8
 	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_0001:  ldarg.1 
+	IL_0002:  call bool class NAnt.VSNet.JSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  brtrue IL_002d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectSettings::get_TemporaryFiles
+	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 308
-    .method public hidebysig specialname 
-           instance default string get_OutputFileName ()  cil managed 
+    // method line 447
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xeda0
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x1153c
+	// Code size 25 (0x19)
 	.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 309
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ManagedOutputType get_OutputType ()  cil managed 
-    {
-        // Method begins at RVA 0xedc8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ManagedOutputType	V_0)
+		valuetype NAnt.VSNet.ProductVersion	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_OutputType
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method JSharpProject::DetermineProductVersion
 
-    // method line 310
-    .method public hidebysig specialname 
-           instance default string get_OutputExtension ()  cil managed 
+    // method line 448
+    .method family virtual hidebysig 
+           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xede4
-	// Code size 57 (0x39)
+        // Method begins at RVA 0x11564
+	// Code size 55 (0x37)
 	.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 311
-    .method public hidebysig specialname 
-           instance default string get_RootNamespace ()  cil managed 
-    {
-        // Method begins at RVA 0xee2c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ConfigurationBase	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_RootNamespace
+	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 312
-    .method public hidebysig specialname 
-           instance default string get_Guid ()  cil managed 
+    // method line 449
+    .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 0xee48
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x115a8
+	// Code size 137 (0x89)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		class [System]System.Diagnostics.ProcessStartInfo	V_0,
+		class [System]System.Diagnostics.ProcessStartInfo	V_1)
 	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_Guid
+	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
 
-    // method line 313
-    .method public hidebysig specialname 
-           instance default string get_RunPostBuildEvent ()  cil managed 
-    {
-        // Method begins at RVA 0xee64
-	// 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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_RunPostBuildEvent
+	IL_0087:  ldloc.1 
+	IL_0088:  ret 
+    } // end of method JSharpProject::GetProcessStartInfo
 
-    // method line 314
-    .method public hidebysig specialname 
-           instance default string get_PreBuildEvent ()  cil managed 
+    // method line 450
+    .method family virtual hidebysig specialname 
+           instance default string get_FileExtension ()  cil managed 
     {
-        // Method begins at RVA 0xee80
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x11640
+	// Code size 14 (0xe)
 	.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_0001:  ldstr ".jsl"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_PreBuildEvent
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method JSharpProject::get_FileExtension
 
-    // method line 315
-    .method public hidebysig specialname 
-           instance default string get_PostBuildEvent ()  cil managed 
+    // method line 451
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xee9c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1165c
+	// Code size 25 (0x19)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		valuetype NAnt.VSNet.ProjectLocation	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_PostBuildEvent
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method JSharpProject::DetermineProjectLocation
 
-    // method line 316
-    .method private hidebysig specialname 
-           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
+    // method line 452
+    .method public static hidebysig 
+           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xeeb8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x11684
+	// Code size 102 (0x66)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ManagedProjectBase	V_0)
+		bool	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1)
 	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 317
-    .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 0xeed4
-	// 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_0002:  brtrue IL_000f
 
-	IL_008a:  ldc.i4.1 
-	IL_008b:  stloc.2 
-	IL_008c:  br IL_00ca
+	IL_0007:  nop 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0064
 
-	IL_0091:  ldc.i4.2 
-	IL_0092:  stloc.2 
-	IL_0093:  br IL_00ca
+	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_0098:  ldc.i4.3 
-	IL_0099:  stloc.2 
-	IL_009a:  br IL_00ca
+	IL_0024:  nop 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_0064
 
-	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
+	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
 
-    // method line 318
-    .method public static hidebysig 
-           default string GetProjectGuid (string projectFile, class [System.Xml]System.Xml.XmlElement elemRoot)  cil managed 
-    {
-        // Method begins at RVA 0xefac
-	// 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_003e:  nop 
+	IL_003f:  ldc.i4.0 
+	IL_0040:  stloc.0 
+	IL_0041:  br IL_0064
 
-	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
+	.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
 
-	IL_005a:  ldloc.1 
-	IL_005b:  ret 
-    } // end of method ProjectSettings::GetProjectGuid
+	} // 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
 
-    // method line 319
-    .method public hidebysig 
-           instance default string GetTemporaryFilename (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0xf014
-	// 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
+	} // end handler 0
+	IL_005d:  ldc.i4.1 
+	IL_005e:  stloc.0 
+	IL_005f:  br IL_0064
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ProjectSettings::GetTemporaryFilename
+	IL_0064:  ldloc.0 
+	IL_0065:  ret 
+    } // end of method JSharpProject::IsSupported
 
-	.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 ()
+	.property instance valuetype NAnt.VSNet.ProjectType Type ()
 	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_PostBuildEvent () 
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.JSharpProject::get_Type () 
 	}
-	.property instance class NAnt.VSNet.ManagedProjectBase Project ()
+	.property instance string FileExtension ()
 	{
-		.get instance default class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::get_Project () 
+		.get instance default string NAnt.VSNet.JSharpProject::get_FileExtension () 
 	}
-  } // end of class NAnt.VSNet.ProjectSettings
+  } // end of class NAnt.VSNet.JSharpProject
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit VcFileConfiguration
-  	extends NAnt.VSNet.VcConfigurationBase
+  .class public auto ansi beforefieldinit ManagedAssemblyReference
+  	extends NAnt.VSNet.AssemblyReferenceBase
   {
-    .field  private initonly  string _relativePath
-    .field  private initonly  string _parentName
-    .field  private initonly  bool _excludeFromBuild
-    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration _parentConfig
-    .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  string _assemblyFile
+    .field  private initonly  bool _isPrivateSpecified
+    .field  private initonly  bool _isPrivate
+    .field  private initonly  string _name
 
-    // method line 320
-    .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 line 453
+    .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 0xf03c
-	// Code size 151 (0x97)
+        // Method begins at RVA 0x11708
+	// Code size 127 (0x7f)
 	.maxstack 5
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1)
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.3 
-	IL_0002:  ldarg.s 4
-	IL_0004:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0009:  ldarg.s 5
-	IL_000b:  call instance void class NAnt.VSNet.VcConfigurationBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ProjectBase, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0010:  nop 
-	IL_0011:  ldarg.1 
-	IL_0012:  brtrue IL_0023
-
-	IL_0017:  nop 
-	IL_0018:  ldstr "relativePath"
-	IL_001d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0022:  throw 
-	IL_0023:  ldarg.2 
-	IL_0024:  brtrue IL_0035
-
-	IL_0029:  nop 
-	IL_002a:  ldstr "parentName"
-	IL_002f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0034:  throw 
-	IL_0035:  ldarg.s 4
-	IL_0037:  brtrue IL_0048
+	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_003c:  nop 
-	IL_003d:  ldstr "parentConfig"
-	IL_0042:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0047:  throw 
+	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:  ldarg.1 
-	IL_004a:  stfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_004f:  ldarg.0 
-	IL_0050:  ldarg.2 
-	IL_0051:  stfld string NAnt.VSNet.VcFileConfiguration::_parentName
-	IL_0056:  ldarg.3 
-	IL_0057:  ldstr "ExcludedFromBuild"
-	IL_005c:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0061:  stloc.0 
-	IL_0062:  ldloc.0 
-	IL_0063:  callvirt instance int32 string::get_Length()
-	IL_0068:  brfalse IL_008e
-
-	IL_006d:  nop 
-	IL_006e:  ldarg.0 
-	IL_006f:  ldloc.0 
-	IL_0070:  callvirt instance string string::Trim()
-	IL_0075:  ldstr "true"
-	IL_007a:  ldc.i4.1 
-	IL_007b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0080:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0085:  ldc.i4.0 
-	IL_0086:  ceq 
-	IL_0088:  stfld bool NAnt.VSNet.VcFileConfiguration::_excludeFromBuild
-	IL_008d:  nop 
-	IL_008e:  ldarg.0 
-	IL_008f:  ldarg.s 4
-	IL_0091:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0096:  ret 
-    } // end of method VcFileConfiguration::.ctor
-
-    // method line 321
-    .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 0xf0e0
-	// Code size 97 (0x61)
-	.maxstack 4
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.3 
-	IL_0002:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	IL_0007:  ldarg.3 
-	IL_0008:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_000d:  ldarg.s 4
-	IL_000f:  call instance void class NAnt.VSNet.VcConfigurationBase::'.ctor'(string, class NAnt.VSNet.ProjectBase, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0014:  nop 
-	IL_0015:  ldarg.1 
-	IL_0016:  brtrue IL_0027
-
-	IL_001b:  nop 
-	IL_001c:  ldstr "relativePath"
-	IL_0021:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0026:  throw 
-	IL_0027:  ldarg.2 
-	IL_0028:  brtrue IL_0039
-
-	IL_002d:  nop 
-	IL_002e:  ldstr "parentName"
-	IL_0033:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0038:  throw 
-	IL_0039:  ldarg.3 
-	IL_003a:  brtrue IL_004b
+	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_003f:  nop 
-	IL_0040:  ldstr "parentConfig"
-	IL_0045:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_004a:  throw 
-	IL_004b:  ldarg.0 
-	IL_004c:  ldarg.1 
-	IL_004d:  stfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_0052:  ldarg.0 
-	IL_0053:  ldarg.2 
-	IL_0054:  stfld string NAnt.VSNet.VcFileConfiguration::_parentName
-	IL_0059:  ldarg.0 
-	IL_005a:  ldarg.3 
-	IL_005b:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0060:  ret 
-    } // end of method VcFileConfiguration::.ctor
+	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 322
-    .method public hidebysig specialname 
-           instance default bool get_ExcludeFromBuild ()  cil managed 
+    // method line 454
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0xf150
+        // Method begins at RVA 0x11794
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcFileConfiguration::_excludeFromBuild
+	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 VcFileConfiguration::get_ExcludeFromBuild
+    } // end of method ManagedAssemblyReference::get_IsPrivate
 
-    // method line 323
-    .method public hidebysig specialname 
-           instance default string get_RelativePath ()  cil managed 
+    // method line 455
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
     {
-        // Method begins at RVA 0xf16c
+        // Method begins at RVA 0x117b0
 	// 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.VSNet.VcFileConfiguration::_relativePath
+	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 VcFileConfiguration::get_RelativePath
-
-    // method line 324
-    .method public virtual hidebysig specialname 
-           instance default string get_RelativeOutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0xf188
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0008:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::get_RawRelativeOutputDir()
-	IL_000d:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method VcFileConfiguration::get_RelativeOutputDir
+    } // end of method ManagedAssemblyReference::get_IsPrivateSpecified
 
-    // method line 325
-    .method famorassem virtual hidebysig 
-           instance default string ExpandMacro (string macro)  cil managed 
+    // method line 456
+    .method family virtual hidebysig 
+           instance default string ResolveAssemblyReference ()  cil managed 
     {
-        // Method begins at RVA 0xf1b0
-	// Code size 388 (0x184)
+        // Method begins at RVA 0x117cc
+	// Code size 153 (0x99)
 	.maxstack 3
 	.locals init (
 		string	V_0,
-		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
-		int32	V_2,
+		class [System.Xml]System.Xml.XmlElement	V_1,
+		string	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_0170
-
-	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcFileConfiguration::'<>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 "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.VcFileConfiguration::'<>f__switch$map2'
-	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcFileConfiguration::'<>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_0170
-
-	IL_0090:  ldloc.2 
-	IL_0091:  switch (
-	  IL_00bb,
-	  IL_00f0,
-	  IL_0101,
-	  IL_0122,
-	  IL_0133,
-	  IL_0144,
-	  IL_015f,
-	  IL_0170)
-	IL_00b6:  br IL_0170
-
-	IL_00bb:  ldarg.0 
-	IL_00bc:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_00c1:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_00c6:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_00d1:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00d6:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00db:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00e0:  box [mscorlib]System.Char
-	IL_00e5:  call string string::Concat(object, object)
-	IL_00ea:  stloc.3 
-	IL_00eb:  br IL_0182
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
+	IL_0007:  brfalse IL_002b
 
-	IL_00f0:  ldarg.0 
-	IL_00f1:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_00f6:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_00fb:  stloc.3 
-	IL_00fc:  br IL_0182
+	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_0101:  ldarg.0 
-	IL_0102:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0107:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_010c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0111:  ldarg.0 
-	IL_0112:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_0117:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_011c:  stloc.3 
-	IL_011d:  br IL_0182
+	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_0122:  ldarg.0 
-	IL_0123:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_0128:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_012d:  stloc.3 
-	IL_012e:  br IL_0182
+	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_0133:  ldarg.0 
-	IL_0134:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_0139:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_013e:  stloc.3 
-	IL_013f:  br IL_0182
+	IL_0051:  nop 
+	IL_0052:  ldloc.3 
+	IL_0053:  stloc.0 
+	IL_0054:  br IL_0097
 
-	IL_0144:  ldarg.0 
-	IL_0145:  ldfld string NAnt.VSNet.VcFileConfiguration::_parentName
-	IL_014a:  ldstr " "
-	IL_014f:  ldsfld string [mscorlib]System.String::Empty
-	IL_0154:  callvirt instance string string::Replace(string, string)
-	IL_0159:  stloc.3 
-	IL_015a:  br IL_0182
+	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_015f:  ldarg.0 
-	IL_0160:  ldfld string NAnt.VSNet.VcFileConfiguration::_relativePath
-	IL_0165:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_016a:  stloc.3 
-	IL_016b:  br IL_0182
+	IL_0068:  nop 
+	IL_0069:  ldloc.3 
+	IL_006a:  stloc.0 
+	IL_006b:  br IL_0097
 
-	IL_0170:  ldarg.0 
-	IL_0171:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0176:  ldarg.1 
-	IL_0177:  callvirt instance string class NAnt.VSNet.ConfigurationBase::ExpandMacro(string)
-	IL_017c:  stloc.3 
-	IL_017d:  br IL_0182
+	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_0182:  ldloc.3 
-	IL_0183:  ret 
-    } // end of method VcFileConfiguration::ExpandMacro
+	IL_0088:  nop 
+	IL_0089:  ldloc.3 
+	IL_008a:  stloc.0 
+	IL_008b:  br IL_0097
 
-    // method line 326
-    .method public virtual hidebysig specialname 
-           instance default string get_IntermediateDir ()  cil managed 
-    {
-        // Method begins at RVA 0xf340
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0008:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::get_RawIntermediateDir()
-	IL_000d:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0090:  ldnull 
+	IL_0091:  stloc.0 
+	IL_0092:  br IL_0097
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method VcFileConfiguration::get_IntermediateDir
+	IL_0097:  ldloc.0 
+	IL_0098:  ret 
+    } // end of method ManagedAssemblyReference::ResolveAssemblyReference
 
-    // method line 327
+    // method line 457
     .method public virtual hidebysig specialname 
-           instance default string get_OutputPath ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xf368
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x11874
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0007:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method VcFileConfiguration::get_OutputPath
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedAssemblyReference::get_Name
 
-    // method line 328
-    .method public virtual hidebysig specialname 
-           instance default string get_ReferencesPath ()  cil managed 
+    // method line 458
+    .method private hidebysig specialname 
+           instance default string get_AssemblyFoldersKey ()  cil managed 
     {
-        // Method begins at RVA 0xf388
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x11890
+	// Code size 57 (0x39)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0008:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::get_RawReferencesPath()
-	IL_000d:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method VcFileConfiguration::get_ReferencesPath
+	IL_0037:  ldloc.1 
+	IL_0038:  ret 
+    } // end of method ManagedAssemblyReference::get_AssemblyFoldersKey
 
-    // method line 329
-    .method public virtual hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName, string projectDefault)  cil managed 
+    // method line 459
+    .method private hidebysig 
+           instance default string GetComponentAssemblyFolder (class [System.Xml]System.Xml.XmlElement referenceElement)  cil managed 
     {
-        // Method begins at RVA 0xf3b0
-	// Code size 98 (0x62)
-	.maxstack 6
+        // Method begins at RVA 0x118d8
+	// Code size 546 (0x222)
+	.maxstack 7
 	.locals init (
 		string	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		string	V_2)
+		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.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_003e
+	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_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_003d
+	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_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  ldloc.0 
-	IL_0032:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_0037:  stloc.2 
-	IL_0038:  br IL_0060
+	IL_0044:  ldloc.3 
+	IL_0045:  ldlen 
+	IL_0046:  conv.i4 
+	IL_0047:  ldc.i4.3 
+	IL_0048:  ble IL_007a
 
-	IL_003d:  nop 
-	IL_003e:  ldarg.0 
-	IL_003f:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0044:  ldarg.1 
-	IL_0045:  ldarg.2 
-	IL_0046:  ldarg.3 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_004e:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
-	IL_0053:  callvirt instance string class NAnt.VSNet.VcProjectConfiguration::GetToolSetting(string, string, string, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
-	IL_0058:  stloc.0 
-	IL_0059:  ldloc.0 
-	IL_005a:  stloc.2 
-	IL_005b:  br IL_0060
+	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_0060:  ldloc.2 
-	IL_0061:  ret 
-    } // end of method VcFileConfiguration::GetToolSetting
+	IL_0086:  ldloc.s 4
+	IL_0088:  ldstr "hklm"
+	IL_008d:  call bool string::op_Equality(string, string)
+	IL_0092:  brtrue IL_00ad
 
-    // method line 330
-    .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 0xf420
-	// Code size 230 (0xe6)
-	.maxstack 5
-	.locals init (
-		class NAnt.VSNet.VcConfigurationBase/ExpansionHandler	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		class [mscorlib]System.Collections.Hashtable	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,
-		class [mscorlib]System.Collections.Hashtable	V_7)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_0008:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
-	IL_000d:  stloc.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0014:  brfalse IL_0030
+	IL_0097:  ldloc.s 4
+	IL_0099:  ldstr "hkcu"
+	IL_009e:  call bool string::op_Equality(string, string)
+	IL_00a3:  brtrue IL_00b8
 
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcFileConfiguration::_parentConfig
-	IL_0020:  ldarg.1 
-	IL_0021:  ldarg.2 
-	IL_0022:  ldarg.3 
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt 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_0029:  stloc.1 
-	IL_002a:  nop 
-	IL_002b:  br IL_0038
+	IL_00a8:  br IL_00c3
 
-	IL_0030:  nop 
-	IL_0031:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0036:  stloc.1 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
-	IL_003e:  ldarg.1 
-	IL_003f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0044:  castclass [mscorlib]System.Collections.Hashtable
-	IL_0049:  stloc.2 
-	IL_004a:  ldloc.2 
-	IL_004b:  brfalse IL_00db
+	IL_00ad:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
+	IL_00b2:  stloc.2 
+	IL_00b3:  br IL_00ef
 
-	IL_0050:  nop 
-	IL_0051:  nop 
-	IL_0052:  ldloc.2 
-	IL_0053:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0058:  stloc.s 4
-	.try { // 0
-	  IL_005a:  br IL_00b2
+	IL_00b8:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::CurrentUser
+	IL_00bd:  stloc.2 
+	IL_00be:  br IL_00ef
 
-	  IL_005f:  ldloc.s 4
-	  IL_0061:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0066:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_006b:  stloc.3 
-	  IL_006c:  nop 
-	  IL_006d:  ldarg.2 
-	  IL_006e:  ldloca.s 3
-	  IL_0070:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0075:  castclass [mscorlib]System.String
-	  IL_007a:  ldarg.0 
-	  IL_007b:  ldloca.s 3
-	  IL_007d:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0082:  castclass [mscorlib]System.String
-	  IL_0087:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	  IL_008c:  ldarg.3 
-	  IL_008d:  callvirt instance string class NAnt.VSNet.VcArgumentMap::GetArgument(string, string, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup)
-	  IL_0092:  stloc.s 5
-	  IL_0094:  ldloc.s 5
-	  IL_0096:  brfalse IL_00b1
+	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_009b:  nop 
-	  IL_009c:  ldloc.1 
-	  IL_009d:  ldloca.s 3
-	  IL_009f:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_00a4:  castclass [mscorlib]System.String
-	  IL_00a9:  ldloc.s 5
-	  IL_00ab:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_00b0:  nop 
-	  IL_00b1:  nop 
-	  IL_00b2:  ldloc.s 4
-	  IL_00b4:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00b9:  brtrue IL_005f
+	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_00be:  leave IL_00da
+	IL_0108:  ldloc.s 6
+	IL_010a:  ldstr "dn"
+	IL_010f:  call bool string::op_Equality(string, string)
+	IL_0114:  brtrue IL_011e
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00c3:  ldloc.s 4
-	  IL_00c5:  isinst [mscorlib]System.IDisposable
-	  IL_00ca:  dup 
-	  IL_00cb:  stloc.s 6
-	  IL_00cd:  brfalse IL_00d9
+	IL_0119:  br IL_0130
 
-	  IL_00d2:  ldloc.s 6
-	  IL_00d4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d9:  endfinally 
-	} // end handler 0
-	IL_00da:  nop 
-	IL_00db:  ldloc.1 
-	IL_00dc:  stloc.s 7
-	IL_00de:  br IL_00e3
+	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_00e3:  ldloc.s 7
-	IL_00e5:  ret 
-    } // end of method VcFileConfiguration::GetToolArguments
+	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
 
-	.property instance bool ExcludeFromBuild ()
-	{
-		.get instance default bool NAnt.VSNet.VcFileConfiguration::get_ExcludeFromBuild () 
-	}
-	.property instance string RelativePath ()
-	{
-		.get instance default string NAnt.VSNet.VcFileConfiguration::get_RelativePath () 
-	}
-	.property instance string RelativeOutputDir ()
+	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 460
+    .method family virtual hidebysig 
+           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x11b08
+	// 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 string NAnt.VSNet.VcFileConfiguration::get_RelativeOutputDir () 
+		.get instance default bool NAnt.VSNet.ManagedAssemblyReference::get_IsPrivate () 
 	}
-	.property instance string IntermediateDir ()
+	.property instance bool IsPrivateSpecified ()
 	{
-		.get instance default string NAnt.VSNet.VcFileConfiguration::get_IntermediateDir () 
+		.get instance default bool NAnt.VSNet.ManagedAssemblyReference::get_IsPrivateSpecified () 
 	}
-	.property instance string OutputPath ()
+	.property instance string Name ()
 	{
-		.get instance default string NAnt.VSNet.VcFileConfiguration::get_OutputPath () 
+		.get instance default string NAnt.VSNet.ManagedAssemblyReference::get_Name () 
 	}
-	.property instance string ReferencesPath ()
+	.property instance string AssemblyFoldersKey ()
 	{
-		.get instance default string NAnt.VSNet.VcFileConfiguration::get_ReferencesPath () 
+		.get instance default string NAnt.VSNet.ManagedAssemblyReference::get_AssemblyFoldersKey () 
 	}
-  } // end of class NAnt.VSNet.VcFileConfiguration
+  } // end of class NAnt.VSNet.ManagedAssemblyReference
 }
 
 .namespace NAnt.VSNet
@@ -20205,11 +27418,11 @@
     .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjectXml
     .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectprovs
 
-    // method line 331
+    // method line 461
     .method private hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
     {
-        // Method begins at RVA 0xf524
+        // Method begins at RVA 0x11b58
 	// Code size 52 (0x34)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -20230,11 +27443,11 @@
 	IL_0033:  ret 
     } // end of method ProjectFactory::.ctor
 
-    // method line 332
+    // method line 462
     .method public static hidebysig 
            default class NAnt.VSNet.ProjectFactory Create (class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
     {
-        // Method begins at RVA 0xf55c
+        // Method begins at RVA 0x11b90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20249,11 +27462,11 @@
 	IL_000e:  ret 
     } // end of method ProjectFactory::Create
 
-    // method line 333
+    // method line 463
     .method public static hidebysig 
            default bool IsUrl (string fileName)  cil managed 
     {
-        // Method begins at RVA 0xf578
+        // Method begins at RVA 0x11bac
 	// Code size 66 (0x42)
 	.maxstack 2
 	.locals init (
@@ -20287,11 +27500,11 @@
 	IL_0041:  ret 
     } // end of method ProjectFactory::IsUrl
 
-    // method line 334
+    // method line 464
     .method public hidebysig 
            instance default class [System.Xml]System.Xml.XmlDocument LoadProjectXml (string path)  cil managed 
     {
-        // Method begins at RVA 0xf5c8
+        // Method begins at RVA 0x11bfc
 	// Code size 220 (0xdc)
 	.maxstack 3
 	.locals init (
@@ -20402,11 +27615,11 @@
 	IL_00db:  ret 
     } // end of method ProjectFactory::LoadProjectXml
 
-    // method line 335
+    // method line 465
     .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 0xf6cc
+        // Method begins at RVA 0x11d00
 	// Code size 79 (0x4f)
 	.maxstack 8
 	.locals init (
@@ -20448,11 +27661,11 @@
 	IL_004e:  ret 
     } // end of method ProjectFactory::LoadProject
 
-    // method line 336
+    // method line 466
     .method public hidebysig 
            instance default string LoadGuid (string fileName)  cil managed 
     {
-        // Method begins at RVA 0xf728
+        // Method begins at RVA 0x11d5c
 	// Code size 191 (0xbf)
 	.maxstack 4
 	.locals init (
@@ -20542,11 +27755,11 @@
 	IL_00be:  ret 
     } // end of method ProjectFactory::LoadGuid
 
-    // method line 337
+    // method line 467
     .method public hidebysig 
            instance default void RegisterProvider (class NAnt.VSNet.Extensibility.IProjectBuildProvider provider)  cil managed 
     {
-        // Method begins at RVA 0xf804
+        // Method begins at RVA 0x11e38
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20558,11 +27771,11 @@
 	IL_000e:  ret 
     } // end of method ProjectFactory::RegisterProvider
 
-    // method line 338
+    // method line 468
     .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 0xf814
+        // Method begins at RVA 0x11e48
 	// Code size 181 (0xb5)
 	.maxstack 9
 	.locals init (
@@ -20650,11 +27863,11 @@
 	IL_00b4:  ret 
     } // end of method ProjectFactory::CreateProject
 
-    // method line 339
+    // method line 469
     .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 0xf8e8
+        // Method begins at RVA 0x11f1c
 	// Code size 111 (0x6f)
 	.maxstack 3
 	.locals init (
@@ -20725,11 +27938,11 @@
 	IL_006e:  ret 
     } // end of method ProjectFactory::FindProvider
 
-    // method line 340
+    // method line 470
     .method private static hidebysig 
            default string GetProjectFileName (string fileName)  cil managed 
     {
-        // Method begins at RVA 0xf974
+        // Method begins at RVA 0x11fa8
 	// Code size 53 (0x35)
 	.maxstack 1
 	.locals init (
@@ -20771,9728 +27984,1211 @@
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi abstract beforefieldinit SolutionBase
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit ReferencesResolver
+  	extends [mscorlib]System.MarshalByRefObject
   {
-    .field  private initonly  class [mscorlib]System.IO.FileInfo _file
-    .field  private initonly  class NAnt.VSNet.ProjectEntryCollection _projectEntries
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _htOutputFiles
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _htReferenceProjects
-    .field  private initonly  class NAnt.VSNet.Tasks.SolutionTask _solutionTask
-    .field  private initonly  class NAnt.VSNet.Types.WebMapCollection _webMaps
-    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
-    .field  private initonly  class [System]System.CodeDom.Compiler.TempFileCollection _tfc
 
-    // method line 341
-    .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 line 471
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2b80
-	// Code size 102 (0x66)
-	.maxstack 4
+        // Method begins at RVA 0x11fe9
+	// Code size 7 (0x7)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.VSNet.SolutionBase::'.ctor'(class [System]System.CodeDom.Compiler.TempFileCollection, class NAnt.VSNet.Tasks.SolutionTask)
-	IL_0008:  nop 
-	IL_0009:  ldarg.1 
-	IL_000a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_000f:  brfalse IL_0027
-
-	IL_0014:  nop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.1 
-	IL_0017:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_001c:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.SolutionBase::_file
-	IL_0021:  nop 
-	IL_0022:  br IL_0065
-
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.1 
-	IL_002a:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_Projects()
-	IL_002f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0034:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
-	IL_0039:  ldc.i4.0 
-	IL_003a:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
-	IL_003f:  ldarg.0 
-	IL_0040:  ldarg.1 
-	IL_0041:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ReferenceProjects()
-	IL_0046:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_004b:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
-	IL_0050:  ldc.i4.1 
-	IL_0051:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
-	IL_0056:  ldarg.0 
-	IL_0057:  ldarg.3 
-	IL_0058:  ldarg.s 4
-	IL_005a:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_005f:  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_0064:  nop 
-	IL_0065:  ret 
-    } // end of method SolutionBase::.ctor
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ReferencesResolver::.ctor
 
-    // method line 342
-    .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 line 472
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0x2bf4
-	// Code size 79 (0x4f)
+        // Method begins at RVA 0x11ff4
+	// Code size 47 (0x2f)
 	.maxstack 2
-	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.SolutionBase::_htOutputFiles
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class NAnt.VSNet.ProjectEntryCollection::'.ctor'()
-	IL_0018:  stfld class NAnt.VSNet.ProjectEntryCollection NAnt.VSNet.SolutionBase::_projectEntries
-	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.SolutionBase::_htReferenceProjects
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.1 
-	IL_002a:  stfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::_tfc
-	IL_002f:  ldarg.0 
-	IL_0030:  ldarg.2 
-	IL_0031:  stfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	IL_0036:  ldarg.0 
-	IL_0037:  ldarg.2 
-	IL_0038:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
-	IL_003d:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
-	IL_0042:  ldarg.0 
-	IL_0043:  ldarg.2 
-	IL_0044:  callvirt instance class NAnt.VSNet.Types.WebMapCollection class NAnt.VSNet.Tasks.SolutionTask::get_WebMaps()
-	IL_0049:  stfld class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::_webMaps
-	IL_004e:  ret 
-    } // end of method SolutionBase::.ctor
-
-    // method line 343
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
-    {
-        // Method begins at RVA 0x2c50
-	// 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.SolutionBase::_file
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SolutionBase::get_File
-
-    // method line 344
-    .method public hidebysig specialname 
-           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x2c6c
-	// 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.SolutionBase::_tfc
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SolutionBase::get_TemporaryFiles
-
-    // method line 345
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.Types.WebMapCollection get_WebMaps ()  cil managed 
-    {
-        // Method begins at RVA 0x2c88
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.Types.WebMapCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::_webMaps
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SolutionBase::get_WebMaps
-
-    // method line 346
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectEntryCollection get_ProjectEntries ()  cil managed 
-    {
-        // Method begins at RVA 0x2ca4
-	// Code size 15 (0xf)
-	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectEntryCollection	V_0)
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectEntryCollection NAnt.VSNet.SolutionBase::_projectEntries
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
+	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:  ret 
-    } // end of method SolutionBase::get_ProjectEntries
-
-    // method line 347
-    .method public hidebysig 
-           instance default void RecursiveLoadTemplateProject (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x2cc0
-	// Code size 494 (0x1ee)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [System.Xml]System.Xml.XmlNode	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [System.Xml]System.Xml.XmlNode	V_3,
-		class [System.Xml]System.Xml.XmlNode	V_4,
-		string	V_5,
-		string	V_6,
-		string	V_7,
-		class [System]System.Uri	V_8,
-		class [mscorlib]System.IDisposable	V_9)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	IL_0007:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class [System.Xml]System.Xml.XmlDocument class NAnt.VSNet.ProjectFactory::LoadProjectXml(string)
-	IL_0012:  stloc.0 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldstr "//Reference"
-	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_001f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0024:  stloc.2 
-	.try { // 1
-	  IL_0025:  br IL_01c7
-
-	  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:  ldloc.1 
-	  IL_0038:  ldstr "GUIDPROJECTID"
-	  IL_003d:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_0042:  stloc.3 
-	  IL_0043:  ldloc.1 
-	  IL_0044:  ldstr "FILE"
-	  IL_0049:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_004e:  stloc.s 4
-	  IL_0050:  ldloc.s 4
-	  IL_0052:  brtrue IL_006d
-
-	  IL_0057:  nop 
-	  IL_0058:  ldarg.0 
-	  IL_0059:  ldc.i4 4000
-	  IL_005e:  ldstr "Reference with missing <FILE> node. Skipping."
-	  IL_0063:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_0068:  leave IL_01c7
-
-	  IL_006d:  ldloc.3 
-	  IL_006e:  brfalse IL_01a4
-
-	  IL_0073:  nop 
-	  IL_0074:  ldloc.1 
-	  IL_0075:  ldstr "FILE"
-	  IL_007a:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_007f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	  IL_0084:  stloc.s 5
-	  IL_0086:  ldarg.0 
-	  IL_0087:  ldfld class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::_webMaps
-	  IL_008c:  ldloc.s 5
-	  IL_008e:  callvirt instance string class NAnt.VSNet.Types.WebMapCollection::FindBestMatch(string)
-	  IL_0093:  stloc.s 7
-	  IL_0095:  ldloc.s 7
-	  IL_0097:  brfalse IL_00c2
-
-	  IL_009c:  nop 
-	  IL_009d:  ldarg.0 
-	  IL_009e:  ldc.i4 1000
-	  IL_00a3:  ldstr "Found webmap match '{0}' for '{1}."
-	  IL_00a8:  ldc.i4.2 
-	  IL_00a9:  newarr [mscorlib]System.Object
-	  IL_00ae:  dup 
-	  IL_00af:  ldc.i4.0 
-	  IL_00b0:  ldloc.s 7
-	  IL_00b2:  stelem.ref 
-	  IL_00b3:  dup 
-	  IL_00b4:  ldc.i4.1 
-	  IL_00b5:  ldloc.s 5
-	  IL_00b7:  stelem.ref 
-	  IL_00b8:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_00bd:  ldloc.s 7
-	  IL_00bf:  stloc.s 5
-	  IL_00c1:  nop 
-	  .try { // 0
-	    IL_00c2:  nop 
-	    IL_00c3:  ldloc.s 5
-	    IL_00c5:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	    IL_00ca:  stloc.s 8
-	    IL_00cc:  ldloc.s 8
-	    IL_00ce:  callvirt instance string class [System]System.Uri::get_Scheme()
-	    IL_00d3:  ldsfld string [System]System.Uri::UriSchemeFile
-	    IL_00d8:  call bool string::op_Equality(string, string)
-	    IL_00dd:  brfalse IL_0102
-
-	    IL_00e2:  nop 
-	    IL_00e3:  ldarg.1 
-	    IL_00e4:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	    IL_00e9:  ldloc.s 8
-	    IL_00eb:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	    IL_00f0:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	    IL_00f5:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	    IL_00fa:  stloc.s 6
-	    IL_00fc:  nop 
-	    IL_00fd:  br IL_0130
-
-	    IL_0102:  nop 
-	    IL_0103:  ldloc.s 5
-	    IL_0105:  stloc.s 6
-	    IL_0107:  ldarg.0 
-	    IL_0108:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	    IL_010d:  callvirt instance bool class NAnt.VSNet.Tasks.SolutionTask::get_EnableWebDav()
-	    IL_0112:  brtrue IL_012f
-
-	    IL_0117:  nop 
-	    IL_0118:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_011d:  ldstr "Cannot build web project '{0}'.  Please use <webmap> to map the given URL to a project-relative path, or specify enablewebdav=\"true\" on the <solution> task element to use WebDAV."
-	    IL_0122:  ldloc.s 6
-	    IL_0124:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0129:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	    IL_012e:  throw 
-	    IL_012f:  nop 
-	    IL_0130:  nop 
-	    IL_0131:  leave IL_0152
-
-	  } // end .try 0
-	  catch class [System]System.UriFormatException { // 0
-	    IL_0136:  pop 
-	    IL_0137:  nop 
-	    IL_0138:  ldarg.1 
-	    IL_0139:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	    IL_013e:  ldloc.s 5
-	    IL_0140:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	    IL_0145:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	    IL_014a:  stloc.s 6
-	    IL_014c:  nop 
-	    IL_014d:  leave IL_0152
-
-	  } // end handler 0
-	  IL_0152:  ldloc.s 6
-	  IL_0154:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_0159:  brtrue IL_0168
-
-	  IL_015e:  nop 
-	  IL_015f:  ldarg.0 
-	  IL_0160:  ldloc.s 6
-	  IL_0162:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.SolutionBase::CreateProjectDoesNotExistException(string)
-	  IL_0167:  throw 
-	  IL_0168:  ldloc.s 6
-	  IL_016a:  call bool class NAnt.VSNet.ManagedProjectBase::IsEnterpriseTemplateProject(string)
-	  IL_016f:  brfalse IL_0183
-
-	  IL_0174:  nop 
-	  IL_0175:  ldarg.0 
-	  IL_0176:  ldloc.s 6
-	  IL_0178:  call instance void class NAnt.VSNet.SolutionBase::RecursiveLoadTemplateProject(string)
-	  IL_017d:  nop 
-	  IL_017e:  br IL_019e
-
-	  IL_0183:  nop 
-	  IL_0184:  ldarg.0 
-	  IL_0185:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_018a:  ldloc.3 
-	  IL_018b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	  IL_0190:  ldloc.s 6
-	  IL_0192:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
-	  IL_0197:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	  IL_019c:  pop 
-	  IL_019d:  nop 
-	  IL_019e:  nop 
-	  IL_019f:  br IL_01c6
-
-	  IL_01a4:  nop 
-	  IL_01a5:  ldarg.0 
-	  IL_01a6:  ldc.i4 2000
-	  IL_01ab:  ldstr "Skipping file reference '{0}'."
-	  IL_01b0:  ldc.i4.1 
-	  IL_01b1:  newarr [mscorlib]System.Object
-	  IL_01b6:  dup 
-	  IL_01b7:  ldc.i4.0 
-	  IL_01b8:  ldloc.s 4
-	  IL_01ba:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	  IL_01bf:  stelem.ref 
-	  IL_01c0:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_01c5:  nop 
-	  IL_01c6:  nop 
-	  IL_01c7:  ldloc.2 
-	  IL_01c8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_01cd:  brtrue IL_002a
-
-	  IL_01d2:  leave IL_01ed
-
-	} // end .try 1
-	finally  { // 1
-	  IL_01d7:  ldloc.2 
-	  IL_01d8:  isinst [mscorlib]System.IDisposable
-	  IL_01dd:  dup 
-	  IL_01de:  stloc.s 9
-	  IL_01e0:  brfalse IL_01ec
-
-	  IL_01e5:  ldloc.s 9
-	  IL_01e7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01ec:  endfinally 
-	} // end handler 1
-	IL_01ed:  ret 
-    } // end of method SolutionBase::RecursiveLoadTemplateProject
-
-    // method line 348
-    .method public hidebysig 
-           instance default string GetProjectFileFromGuid (string projectGuid)  cil managed 
-    {
-        // Method begins at RVA 0x2ef0
-	// Code size 62 (0x3e)
-	.maxstack 3
-	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  brtrue IL_0030
+	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_0014:  nop 
-	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001a:  ldstr "Project with GUID '{0}' must be included for the build to work."
-	IL_001f:  ldarg.1 
-	IL_0020:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0025:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_002a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_002f:  throw 
-	IL_0030:  ldloc.0 
-	IL_0031:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
+	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_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method SolutionBase::GetProjectFileFromGuid
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method ReferencesResolver::InitializeLifetimeService
 
-    // method line 349
+    // method line 473
     .method public hidebysig 
-           instance default class NAnt.VSNet.ProjectBase GetProjectFromGuid (string projectGuid)  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 0x2f3c
-	// Code size 73 (0x49)
+        // Method begins at RVA 0x12030
+	// Code size 139 (0x8b)
 	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0,
-		class NAnt.VSNet.ProjectBase	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  brfalse IL_001f
-
-	IL_0014:  ldloc.0 
-	IL_0015:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	IL_001a:  brtrue IL_003b
-
-	IL_001f:  nop 
-	IL_0020:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0025:  ldstr "Project with GUID '{0}' is not loaded."
-	IL_002a:  ldarg.1 
-	IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	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:  ldloc.0 
-	IL_003c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	IL_0041:  stloc.1 
-	IL_0042:  br IL_0047
-
-	IL_0047:  ldloc.1 
-	IL_0048:  ret 
-    } // end of method SolutionBase::GetProjectFromGuid
-
-    // method line 350
-    .method public hidebysig 
-           instance default bool Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x2f94
-	// Code size 765 (0x2fd)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		class [mscorlib]System.Collections.ArrayList	V_2,
-		bool	V_3,
-		bool	V_4,
-		class NAnt.VSNet.ProjectEntry	V_5,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_6,
-		class NAnt.VSNet.ProjectBase	V_7,
-		bool	V_8,
-		class NAnt.VSNet.ProjectEntry	V_9,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_10,
-		class NAnt.VSNet.ProjectBase	V_11,
-		class [mscorlib]System.IDisposable	V_12,
-		class [mscorlib]System.Exception	V_13,
-		class [mscorlib]System.IDisposable	V_14,
-		string	V_15,
-		class [mscorlib]System.Collections.IEnumerator	V_16,
-		class [mscorlib]System.IDisposable	V_17,
-		bool	V_18)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0006:  stloc.0 
-	IL_0007:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_000c:  stloc.1 
-	IL_000d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0012:  stloc.2 
-	IL_0013:  ldc.i4.1 
-	IL_0014:  stloc.3 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.1 
-	IL_0017:  call instance void class NAnt.VSNet.SolutionBase::GetDependenciesFromProjects(class NAnt.VSNet.Configuration)
-	IL_001c:  nop 
-	IL_001d:  nop 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  stloc.s 4
-	IL_0021:  nop 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0028:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	IL_002d:  stloc.s 6
-	.try { // 3
-	  IL_002f:  br IL_0207
-
-	  IL_0034:  ldloc.s 6
-	  IL_0036:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	  IL_003b:  stloc.s 5
-	  IL_003d:  nop 
-	  IL_003e:  ldloc.s 5
-	  IL_0040:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	  IL_0045:  stloc.s 7
-	  IL_0047:  ldloc.s 7
-	  IL_0049:  brtrue IL_0062
-
-	  IL_004e:  nop 
-	  IL_004f:  ldloc.0 
-	  IL_0050:  ldloc.s 5
-	  IL_0052:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Guid()
-	  IL_0057:  ldnull 
-	  IL_0058:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_005d:  leave IL_0207
-
-	  IL_0062:  ldloc.0 
-	  IL_0063:  ldloc.s 7
-	  IL_0065:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_006a:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	  IL_006f:  brfalse IL_007a
-
-	  IL_0074:  nop 
-	  IL_0075:  leave IL_0207
-
-	  IL_007a:  ldloc.1 
-	  IL_007b:  ldloc.s 7
-	  IL_007d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_0082:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	  IL_0087:  stloc.s 8
-	  IL_0089:  ldloc.s 8
-	  IL_008b:  brtrue IL_00b5
-
-	  IL_0090:  nop 
-	  IL_0091:  ldarg.0 
-	  IL_0092:  ldloc.s 7
-	  IL_0094:  ldarg.1 
-	  IL_0095:  ldloc.0 
-	  IL_0096:  ldloc.1 
-	  IL_0097:  call instance bool class NAnt.VSNet.SolutionBase::FixProjectReferences(class NAnt.VSNet.ProjectBase, class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Hashtable)
-	  IL_009c:  brfalse IL_00b4
-
-	  IL_00a1:  nop 
-	  IL_00a2:  ldc.i4.1 
-	  IL_00a3:  stloc.s 8
-	  IL_00a5:  ldloc.1 
-	  IL_00a6:  ldloc.s 7
-	  IL_00a8:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_00ad:  ldnull 
-	  IL_00ae:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_00b3:  nop 
-	  IL_00b4:  nop 
-	  IL_00b5:  ldarg.0 
-	  IL_00b6:  ldloc.s 7
-	  IL_00b8:  ldloc.0 
-	  IL_00b9:  call instance bool class NAnt.VSNet.SolutionBase::HasDirtyProjectDependency(class NAnt.VSNet.ProjectBase, class [mscorlib]System.Collections.Hashtable)
-	  IL_00be:  brtrue IL_0206
-
-	  IL_00c3:  nop 
-	  .try { // 1
-	    IL_00c4:  nop 
-	    IL_00c5:  ldarg.0 
-	    IL_00c6:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htReferenceProjects
-	    IL_00cb:  ldloc.s 7
-	    IL_00cd:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	    IL_00d2:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	    IL_00d7:  brtrue IL_01c4
-
-	    IL_00dc:  ldloc.s 8
-	    IL_00de:  brtrue IL_00f0
-
-	    IL_00e3:  ldloc.s 7
-	    IL_00e5:  ldarg.1 
-	    IL_00e6:  callvirt instance bool class NAnt.VSNet.ProjectBase::Compile(class NAnt.VSNet.Configuration)
-	    IL_00eb:  brtrue IL_01c4
-
-	    IL_00f0:  nop 
-	    IL_00f1:  ldloc.s 8
-	    IL_00f3:  brtrue IL_0138
-
-	    IL_00f8:  nop 
-	    IL_00f9:  ldarg.0 
-	    IL_00fa:  ldc.i4 5000
-	    IL_00ff:  ldstr "Project '{0}' failed!"
-	    IL_0104:  ldc.i4.1 
-	    IL_0105:  newarr [mscorlib]System.Object
-	    IL_010a:  dup 
-	    IL_010b:  ldc.i4.0 
-	    IL_010c:  ldloc.s 7
-	    IL_010e:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	    IL_0113:  stelem.ref 
-	    IL_0114:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_0119:  ldarg.0 
-	    IL_011a:  ldc.i4 5000
-	    IL_011f:  ldstr "Continuing build with non-dependent projects."
-	    IL_0124:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	    IL_0129:  ldloc.2 
-	    IL_012a:  ldloc.s 7
-	    IL_012c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	    IL_0131:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	    IL_0136:  pop 
-	    IL_0137:  nop 
-	    IL_0138:  ldc.i4.0 
-	    IL_0139:  stloc.3 
-	    IL_013a:  ldloc.1 
-	    IL_013b:  ldloc.s 7
-	    IL_013d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	    IL_0142:  ldnull 
-	    IL_0143:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0148:  nop 
-	    IL_0149:  ldarg.0 
-	    IL_014a:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	    IL_014f:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	    IL_0154:  stloc.s 10
-	    .try { // 0
-	      IL_0156:  br IL_019b
-
-	      IL_015b:  ldloc.s 10
-	      IL_015d:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	      IL_0162:  stloc.s 9
-	      IL_0164:  nop 
-	      IL_0165:  ldloc.s 9
-	      IL_0167:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	      IL_016c:  stloc.s 11
-	      IL_016e:  ldloc.s 11
-	      IL_0170:  brtrue IL_0177
-
-	      IL_0175:  nop 
-	      IL_0176:  nop 
-	      IL_0177:  ldloc.s 11
-	      IL_0179:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
-	      IL_017e:  ldloc.s 7
-	      IL_0180:  callvirt instance bool class NAnt.VSNet.ProjectBaseCollection::Contains(class NAnt.VSNet.ProjectBase)
-	      IL_0185:  brfalse IL_019a
-
-	      IL_018a:  nop 
-	      IL_018b:  ldloc.1 
-	      IL_018c:  ldloc.s 11
-	      IL_018e:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	      IL_0193:  ldnull 
-	      IL_0194:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	      IL_0199:  nop 
-	      IL_019a:  nop 
-	      IL_019b:  ldloc.s 10
-	      IL_019d:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	      IL_01a2:  brtrue IL_015b
-
-	      IL_01a7:  leave IL_01c3
-
-	    } // end .try 0
-	    finally  { // 0
-	      IL_01ac:  ldloc.s 10
-	      IL_01ae:  isinst [mscorlib]System.IDisposable
-	      IL_01b3:  dup 
-	      IL_01b4:  stloc.s 12
-	      IL_01b6:  brfalse IL_01c2
-
-	      IL_01bb:  ldloc.s 12
-	      IL_01bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_01c2:  endfinally 
-	    } // end handler 0
-	    IL_01c3:  nop 
-	    IL_01c4:  nop 
-	    IL_01c5:  leave IL_01f4
-
-	  } // end .try 1
-	  catch class [NAnt.Core]NAnt.Core.BuildException { // 1
-	    IL_01ca:  pop 
-	    IL_01cb:  nop 
-	    IL_01cc:  rethrow 
-	  } // end handler 1
-	  catch class [mscorlib]System.Exception { // 2
-	    IL_01ce:  stloc.s 13
-	    IL_01d0:  nop 
-	    IL_01d1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_01d6:  ldstr "Unexpected error while compiling project '{0}'"
-	    IL_01db:  ldloc.s 7
-	    IL_01dd:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	    IL_01e2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_01e7:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	    IL_01ec:  ldloc.s 13
-	    IL_01ee:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_01f3:  throw 
-	  } // end handler 2
-	  IL_01f4:  ldc.i4.1 
-	  IL_01f5:  stloc.s 4
-	  IL_01f7:  ldloc.0 
-	  IL_01f8:  ldloc.s 7
-	  IL_01fa:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_01ff:  ldnull 
-	  IL_0200:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0205:  nop 
-	  IL_0206:  nop 
-	  IL_0207:  ldloc.s 6
-	  IL_0209:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	  IL_020e:  brtrue IL_0034
-
-	  IL_0213:  leave IL_022f
-
-	} // end .try 3
-	finally  { // 3
-	  IL_0218:  ldloc.s 6
-	  IL_021a:  isinst [mscorlib]System.IDisposable
-	  IL_021f:  dup 
-	  IL_0220:  stloc.s 14
-	  IL_0222:  brfalse IL_022e
-
-	  IL_0227:  ldloc.s 14
-	  IL_0229:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_022e:  endfinally 
-	} // end handler 3
-	IL_022f:  ldarg.0 
-	IL_0230:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0235:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_023a:  ldloc.0 
-	IL_023b:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_0240:  bne.un IL_024b
-
-	IL_0245:  nop 
-	IL_0246:  br IL_0269
-
-	IL_024b:  ldloc.s 4
-	IL_024d:  brtrue IL_0263
-
-	IL_0252:  nop 
-	IL_0253:  ldstr "Circular dependency detected."
-	IL_0258:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_025d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0262:  throw 
-	IL_0263:  nop 
-	IL_0264:  br IL_001c
-
-	IL_0269:  ldloc.2 
-	IL_026a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_026f:  ldc.i4.0 
-	IL_0270:  ble IL_02f2
-
-	IL_0275:  nop 
-	IL_0276:  ldarg.0 
-	IL_0277:  ldc.i4 5000
-	IL_027c:  ldsfld string [mscorlib]System.String::Empty
-	IL_0281:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0286:  ldarg.0 
-	IL_0287:  ldc.i4 5000
-	IL_028c:  ldstr "Solution failed to build!  Failed projects were:"
-	IL_0291:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0296:  nop 
-	IL_0297:  ldloc.2 
-	IL_0298:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_029d:  stloc.s 16
-	.try { // 4
-	  IL_029f:  br IL_02c9
-
-	  IL_02a4:  ldloc.s 16
-	  IL_02a6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_02ab:  castclass [mscorlib]System.String
-	  IL_02b0:  stloc.s 15
-	  IL_02b2:  ldarg.0 
-	  IL_02b3:  ldc.i4 5000
-	  IL_02b8:  ldstr "  - "
-	  IL_02bd:  ldloc.s 15
-	  IL_02bf:  call string string::Concat(string, string)
-	  IL_02c4:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_02c9:  ldloc.s 16
-	  IL_02cb:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02d0:  brtrue IL_02a4
-
-	  IL_02d5:  leave IL_02f1
-
-	} // end .try 4
-	finally  { // 4
-	  IL_02da:  ldloc.s 16
-	  IL_02dc:  isinst [mscorlib]System.IDisposable
-	  IL_02e1:  dup 
-	  IL_02e2:  stloc.s 17
-	  IL_02e4:  brfalse IL_02f0
-
-	  IL_02e9:  ldloc.s 17
-	  IL_02eb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02f0:  endfinally 
-	} // end handler 4
-	IL_02f1:  nop 
-	IL_02f2:  ldloc.3 
-	IL_02f3:  stloc.s 18
-	IL_02f5:  br IL_02fa
-
-	IL_02fa:  ldloc.s 18
-	IL_02fc:  ret 
-    } // end of method SolutionBase::Compile
-
-    // method line 351
-    .method family hidebysig 
-           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
-    {
-        // Method begins at RVA 0x331c
-	// Code size 28 (0x1c)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	IL_0007:  brfalse IL_001b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_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 SolutionBase::Log
-
-    // method line 352
-    .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 0x3339
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	IL_0007:  brfalse IL_001c
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_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 SolutionBase::Log
-
-    // method line 353
-    .method family hidebysig 
-           instance default void LoadProjectGuids (class [mscorlib]System.Collections.ArrayList projects, bool isReferenceProject)  cil managed 
-    {
-        // Method begins at RVA 0x3358
-	// Code size 172 (0xac)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		string	V_2,
-		class NAnt.VSNet.ProjectEntry	V_3,
-		class [mscorlib]System.IDisposable	V_4)
+		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:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0008:  stloc.1 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
 	.try { // 0
-	  IL_0009:  br IL_0085
-
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0014:  castclass [mscorlib]System.String
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldarg.0 
-	  IL_001c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	  IL_0021:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
-	  IL_0026:  ldloc.0 
-	  IL_0027:  callvirt instance string class NAnt.VSNet.ProjectFactory::LoadGuid(string)
-	  IL_002c:  stloc.2 
-	  IL_002d:  ldarg.0 
-	  IL_002e:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_0033:  ldloc.2 
-	  IL_0034:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	  IL_0039:  stloc.3 
-	  IL_003a:  ldloc.3 
-	  IL_003b:  brfalse IL_005e
-
-	  IL_0040:  nop 
-	  IL_0041:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0046:  ldstr "Error loading project {0}.  Project GUID {1} already exists! Conflicting project is {2}."
-	  IL_004b:  ldloc.0 
-	  IL_004c:  ldloc.2 
-	  IL_004d:  ldloc.3 
-	  IL_004e:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
-	  IL_0053:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0058:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	  IL_005d:  throw 
-	  IL_005e:  ldarg.0 
-	  IL_005f:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_0064:  ldloc.2 
-	  IL_0065:  ldloc.0 
-	  IL_0066:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
-	  IL_006b:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	  IL_0070:  pop 
-	  IL_0071:  ldarg.2 
-	  IL_0072:  brfalse IL_0084
-
-	  IL_0077:  ldarg.0 
-	  IL_0078:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htReferenceProjects
-	  IL_007d:  ldloc.2 
-	  IL_007e:  ldnull 
-	  IL_007f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0084:  nop 
-	  IL_0085:  ldloc.1 
-	  IL_0086:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_008b:  brtrue IL_000e
-
-	  IL_0090:  leave IL_00ab
+	  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
 
 	} // end .try 0
-	finally  { // 0
-	  IL_0095:  ldloc.1 
-	  IL_0096:  isinst [mscorlib]System.IDisposable
-	  IL_009b:  dup 
-	  IL_009c:  stloc.s 4
-	  IL_009e:  brfalse IL_00aa
+	catch class [mscorlib]System.IO.FileLoadException { // 0
+	  IL_0011:  pop 
+	  IL_0012:  nop 
+	  IL_0013:  leave IL_008a
 
-	  IL_00a3:  ldloc.s 4
-	  IL_00a5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00aa:  endfinally 
 	} // end handler 0
-	IL_00ab:  ret 
-    } // end of method SolutionBase::LoadProjectGuids
-
-    // method line 354
-    .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 0x3420
-	// Code size 822 (0x336)
-	.maxstack 8
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0,
-		class NAnt.VSNet.ProjectEntry	V_1,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_2,
-		string	V_3,
-		string	V_4,
-		bool	V_5,
-		bool	V_6,
-		string	V_7,
-		class [System]System.Collections.Specialized.StringEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class NAnt.VSNet.ProjectBase	V_10,
-		class [mscorlib]System.IDisposable	V_11,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_12,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_13,
-		string	V_14,
-		class [mscorlib]System.Collections.Hashtable	V_15,
-		class NAnt.VSNet.ProjectEntry	V_16,
-		class NAnt.VSNet.ProjectBase	V_17,
-		string	V_18,
-		class [mscorlib]System.Collections.IEnumerator	V_19,
-		class NAnt.VSNet.ProjectEntry	V_20,
-		class [mscorlib]System.IDisposable	V_21,
-		class [mscorlib]System.IDisposable	V_22)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Loading projects..."
-	IL_000c:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0011:  ldarg.0 
-	IL_0012:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	IL_0017:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ExcludeProjects()
-	IL_001c:  stloc.0 
-	IL_001d:  nop 
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0024:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	IL_0029:  stloc.2 
-	.try { // 1
-	  IL_002a:  br IL_01a0
-
-	  IL_002f:  ldloc.2 
-	  IL_0030:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	  IL_0035:  stloc.1 
-	  IL_0036:  nop 
-	  IL_0037:  ldloc.1 
-	  IL_0038:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
-	  IL_003d:  stloc.3 
-	  IL_003e:  ldloc.1 
-	  IL_003f:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Guid()
-	  IL_0044:  stloc.s 4
-	  IL_0046:  ldloc.3 
-	  IL_0047:  call bool class [NAnt.Core]NAnt.Core.PlatformHelper::IsVolumeCaseSensitive(string)
-	  IL_004c:  stloc.s 5
-	  IL_004e:  ldc.i4.0 
-	  IL_004f:  stloc.s 6
-	  IL_0051:  nop 
-	  IL_0052:  ldloc.0 
-	  IL_0053:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_0058:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_005d:  stloc.s 8
-	  .try { // 0
-	    IL_005f:  br IL_00a9
-
-	    IL_0064:  ldloc.s 8
-	    IL_0066:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_006b:  stloc.s 7
-	    IL_006d:  nop 
-	    IL_006e:  ldloc.s 7
-	    IL_0070:  ldloc.3 
-	    IL_0071:  ldloc.s 5
-	    IL_0073:  ldc.i4.0 
-	    IL_0074:  ceq 
-	    IL_0076:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_007b:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	    IL_0080:  brtrue IL_00a8
-
-	    IL_0085:  nop 
-	    IL_0086:  ldarg.0 
-	    IL_0087:  ldc.i4 2000
-	    IL_008c:  ldstr "Excluding project '{0}'."
-	    IL_0091:  ldc.i4.1 
-	    IL_0092:  newarr [mscorlib]System.Object
-	    IL_0097:  dup 
-	    IL_0098:  ldc.i4.0 
-	    IL_0099:  ldloc.3 
-	    IL_009a:  stelem.ref 
-	    IL_009b:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_00a0:  ldc.i4.1 
-	    IL_00a1:  stloc.s 6
-	    IL_00a3:  leave IL_00b5
-
-	    IL_00a8:  nop 
-	    IL_00a9:  ldloc.s 8
-	    IL_00ab:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_00b0:  brtrue IL_0064
-
-	    IL_00b5:  leave IL_00d1
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00ba:  ldloc.s 8
-	    IL_00bc:  isinst [mscorlib]System.IDisposable
-	    IL_00c1:  dup 
-	    IL_00c2:  stloc.s 9
-	    IL_00c4:  brfalse IL_00d0
-
-	    IL_00c9:  ldloc.s 9
-	    IL_00cb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00d0:  endfinally 
-	  } // end handler 0
-	  IL_00d1:  ldloc.s 6
-	  IL_00d3:  brfalse IL_00f5
-
-	  IL_00d8:  nop 
-	  IL_00d9:  ldarg.3 
-	  IL_00da:  ldloc.s 4
-	  IL_00dc:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_00e1:  brfalse IL_00f0
-
-	  IL_00e6:  nop 
-	  IL_00e7:  ldarg.3 
-	  IL_00e8:  ldloc.s 4
-	  IL_00ea:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	  IL_00ef:  nop 
-	  IL_00f0:  leave IL_01a0
-
-	  IL_00f5:  ldarg.0 
-	  IL_00f6:  ldc.i4 2000
-	  IL_00fb:  ldstr "Loading project '{0}'."
-	  IL_0100:  ldc.i4.1 
-	  IL_0101:  newarr [mscorlib]System.Object
-	  IL_0106:  dup 
-	  IL_0107:  ldc.i4.0 
-	  IL_0108:  ldloc.3 
-	  IL_0109:  stelem.ref 
-	  IL_010a:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_010f:  ldarg.0 
-	  IL_0110:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	  IL_0115:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
-	  IL_011a:  ldarg.0 
-	  IL_011b:  ldarg.0 
-	  IL_011c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	  IL_0121:  ldarg.0 
-	  IL_0122:  ldfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::_tfc
-	  IL_0127:  ldarg.1 
-	  IL_0128:  ldarg.2 
-	  IL_0129:  ldarg.0 
-	  IL_012a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
-	  IL_012f:  ldloc.3 
-	  IL_0130:  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_0135:  stloc.s 10
-	  IL_0137:  ldloc.s 10
-	  IL_0139:  brtrue IL_015e
-
-	  IL_013e:  nop 
-	  IL_013f:  ldarg.0 
-	  IL_0140:  ldc.i4 4000
-	  IL_0145:  ldstr "Project '{0}' is of unsupported type. Skipping."
-	  IL_014a:  ldc.i4.1 
-	  IL_014b:  newarr [mscorlib]System.Object
-	  IL_0150:  dup 
-	  IL_0151:  ldc.i4.0 
-	  IL_0152:  ldloc.3 
-	  IL_0153:  stelem.ref 
-	  IL_0154:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0159:  leave IL_01a0
-
-	  IL_015e:  ldloc.s 10
-	  IL_0160:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_0165:  brfalse IL_0180
-
-	  IL_016a:  ldloc.s 10
-	  IL_016c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_0171:  ldsfld string [mscorlib]System.String::Empty
-	  IL_0176:  call bool string::op_Equality(string, string)
-	  IL_017b:  brfalse IL_0190
-
-	  IL_0180:  nop 
-	  IL_0181:  ldloc.s 10
-	  IL_0183:  ldarg.0 
-	  IL_0184:  ldloc.3 
-	  IL_0185:  call instance string class NAnt.VSNet.SolutionBase::FindGuidFromPath(string)
-	  IL_018a:  callvirt instance void class NAnt.VSNet.ProjectBase::set_Guid(string)
-	  IL_018f:  nop 
-	  IL_0190:  ldloc.1 
-	  IL_0191:  ldloc.s 10
-	  IL_0193:  callvirt instance void class NAnt.VSNet.ProjectEntry::set_Project(class NAnt.VSNet.ProjectBase)
-	  IL_0198:  ldarg.0 
-	  IL_0199:  ldloc.1 
-	  IL_019a:  callvirt instance void class NAnt.VSNet.SolutionBase::SetProjectBuildConfiguration(class NAnt.VSNet.ProjectEntry)
-	  IL_019f:  nop 
-	  IL_01a0:  ldloc.2 
-	  IL_01a1:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	  IL_01a6:  brtrue IL_002f
-
-	  IL_01ab:  leave IL_01c6
-
-	} // end .try 1
-	finally  { // 1
-	  IL_01b0:  ldloc.2 
-	  IL_01b1:  isinst [mscorlib]System.IDisposable
-	  IL_01b6:  dup 
-	  IL_01b7:  stloc.s 11
-	  IL_01b9:  brfalse IL_01c5
-
-	  IL_01be:  ldloc.s 11
-	  IL_01c0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01c5:  endfinally 
-	} // end handler 1
-	IL_01c6:  nop 
-	IL_01c7:  ldarg.3 
-	IL_01c8:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_01cd:  stloc.s 13
-	.try { // 3
-	  IL_01cf:  br IL_030d
-
-	  IL_01d4:  ldloc.s 13
-	  IL_01d6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01db:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_01e0:  stloc.s 12
-	  IL_01e2:  nop 
-	  IL_01e3:  ldloca.s 12
-	  IL_01e5:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_01ea:  castclass [mscorlib]System.String
-	  IL_01ef:  stloc.s 14
-	  IL_01f1:  ldloca.s 12
-	  IL_01f3:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_01f8:  castclass [mscorlib]System.Collections.Hashtable
-	  IL_01fd:  stloc.s 15
-	  IL_01ff:  ldarg.0 
-	  IL_0200:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_0205:  ldloc.s 14
-	  IL_0207:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	  IL_020c:  stloc.s 16
-	  IL_020e:  ldloc.s 16
-	  IL_0210:  brtrue IL_0232
-
-	  IL_0215:  nop 
-	  IL_0216:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_021b:  ldstr "Dependencies for project '{0}' could not be analyzed. Project is not included."
-	  IL_0220:  ldloc.s 14
-	  IL_0222:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0227:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_022c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_0231:  throw 
-	  IL_0232:  ldloc.s 16
-	  IL_0234:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	  IL_0239:  stloc.s 17
-	  IL_023b:  ldloc.s 17
-	  IL_023d:  brtrue IL_025f
-
-	  IL_0242:  nop 
-	  IL_0243:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0248:  ldstr "Dependencies for project '{0}' could not be analyzed. Project is not loaded."
-	  IL_024d:  ldloc.s 14
-	  IL_024f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0254:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0259:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_025e:  throw 
-	  IL_025f:  nop 
-	  IL_0260:  ldloc.s 15
-	  IL_0262:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	  IL_0267:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	  IL_026c:  stloc.s 19
-	  .try { // 2
-	    IL_026e:  br IL_02e4
-
-	    IL_0273:  ldloc.s 19
-	    IL_0275:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_027a:  castclass [mscorlib]System.String
-	    IL_027f:  stloc.s 18
-	    IL_0281:  nop 
-	    IL_0282:  ldarg.0 
-	    IL_0283:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	    IL_0288:  ldloc.s 18
-	    IL_028a:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	    IL_028f:  stloc.s 20
-	    IL_0291:  ldloc.s 20
-	    IL_0293:  brfalse IL_02a4
-
-	    IL_0298:  ldloc.s 20
-	    IL_029a:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	    IL_029f:  brtrue IL_02cf
-
-	    IL_02a4:  nop 
-	    IL_02a5:  ldarg.0 
-	    IL_02a6:  ldc.i4 4000
-	    IL_02ab:  ldstr "Project \"{0}\": ignored dependency on project \"{1}\", which is not included."
-	    IL_02b0:  ldc.i4.2 
-	    IL_02b1:  newarr [mscorlib]System.Object
-	    IL_02b6:  dup 
-	    IL_02b7:  ldc.i4.0 
-	    IL_02b8:  ldloc.s 17
-	    IL_02ba:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	    IL_02bf:  stelem.ref 
-	    IL_02c0:  dup 
-	    IL_02c1:  ldc.i4.1 
-	    IL_02c2:  ldloc.s 18
-	    IL_02c4:  stelem.ref 
-	    IL_02c5:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_02ca:  leave IL_02e4
-
-	    IL_02cf:  ldloc.s 17
-	    IL_02d1:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
-	    IL_02d6:  ldloc.s 20
-	    IL_02d8:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	    IL_02dd:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
-	    IL_02e2:  pop 
-	    IL_02e3:  nop 
-	    IL_02e4:  ldloc.s 19
-	    IL_02e6:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_02eb:  brtrue IL_0273
-
-	    IL_02f0:  leave IL_030c
-
-	  } // end .try 2
-	  finally  { // 2
-	    IL_02f5:  ldloc.s 19
-	    IL_02f7:  isinst [mscorlib]System.IDisposable
-	    IL_02fc:  dup 
-	    IL_02fd:  stloc.s 21
-	    IL_02ff:  brfalse IL_030b
+	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_0304:  ldloc.s 21
-	    IL_0306:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_030b:  endfinally 
-	  } // end handler 2
-	  IL_030c:  nop 
-	  IL_030d:  ldloc.s 13
-	  IL_030f:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0314:  brtrue IL_01d4
+	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_0319:  leave IL_0335
+	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
 
-	} // end .try 3
-	finally  { // 3
-	  IL_031e:  ldloc.s 13
-	  IL_0320:  isinst [mscorlib]System.IDisposable
-	  IL_0325:  dup 
-	  IL_0326:  stloc.s 22
-	  IL_0328:  brfalse IL_0334
+	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_032d:  ldloc.s 22
-	  IL_032f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0334:  endfinally 
-	} // end handler 3
-	IL_0335:  ret 
-    } // end of method SolutionBase::LoadProjects
+	IL_008a:  ret 
+    } // end of method ReferencesResolver::AppendReferencedModulesLocatedInGivenDirectory
 
-    // method line 355
-    .method family hidebysig 
-           instance default void GetDependenciesFromProjects (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 474
+    .method public hidebysig 
+           instance default string GetAssemblyFileName (string assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x37c8
-	// Code size 770 (0x302)
-	.maxstack 3
+        // Method begins at RVA 0x120d8
+	// Code size 32 (0x20)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_1,
-		class NAnt.VSNet.ProjectBase	V_2,
-		class NAnt.VSNet.ConfigurationBase	V_3,
-		class [mscorlib]System.Collections.IEnumerator	V_4,
-		string	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [mscorlib]System.Collections.Hashtable	V_8,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_9,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_10,
-		string	V_11,
-		string	V_12,
-		class [mscorlib]System.IDisposable	V_13,
-		class NAnt.VSNet.ProjectEntry	V_14,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_15,
-		class NAnt.VSNet.ProjectBase	V_16,
-		class NAnt.VSNet.ConfigurationBase	V_17,
-		class NAnt.VSNet.ReferenceBase	V_18,
-		class [mscorlib]System.Collections.IEnumerator	V_19,
-		class NAnt.VSNet.ProjectReferenceBase	V_20,
-		string	V_21,
-		string	V_22,
-		class NAnt.VSNet.ProjectEntry	V_23,
-		class [mscorlib]System.IDisposable	V_24,
-		class [mscorlib]System.IDisposable	V_25)
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Gathering additional dependencies..."
-	IL_000c:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0018:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	IL_001d:  stloc.1 
-	.try { // 1
-	  IL_001e:  br IL_00b2
-
-	  IL_0023:  ldloc.1 
-	  IL_0024:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	  IL_0029:  stloc.0 
-	  IL_002a:  nop 
-	  IL_002b:  ldloc.0 
-	  IL_002c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	  IL_0031:  stloc.2 
-	  IL_0032:  ldloc.2 
-	  IL_0033:  brtrue IL_003e
-
-	  IL_0038:  nop 
-	  IL_0039:  leave IL_00b2
-
-	  IL_003e:  nop 
-	  IL_003f:  ldloc.2 
-	  IL_0040:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	  IL_0045:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.VSNet.ConfigurationDictionary::get_Values()
-	  IL_004a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	  IL_004f:  stloc.s 4
-	  .try { // 0
-	    IL_0051:  br IL_0089
-
-	    IL_0056:  ldloc.s 4
-	    IL_0058:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_005d:  castclass NAnt.VSNet.ConfigurationBase
-	    IL_0062:  stloc.3 
-	    IL_0063:  nop 
-	    IL_0064:  ldloc.3 
-	    IL_0065:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	    IL_006a:  stloc.s 5
-	    IL_006c:  ldloc.s 5
-	    IL_006e:  brfalse IL_0088
-
-	    IL_0073:  nop 
-	    IL_0074:  ldarg.0 
-	    IL_0075:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
-	    IL_007a:  ldloc.s 5
-	    IL_007c:  ldloc.2 
-	    IL_007d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	    IL_0082:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0087:  nop 
-	    IL_0088:  nop 
-	    IL_0089:  ldloc.s 4
-	    IL_008b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0090:  brtrue IL_0056
-
-	    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 6
-	    IL_00a4:  brfalse IL_00b0
-
-	    IL_00a9:  ldloc.s 6
-	    IL_00ab:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00b0:  endfinally 
-	  } // end handler 0
-	  IL_00b1:  nop 
-	  IL_00b2:  ldloc.1 
-	  IL_00b3:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	  IL_00b8:  brtrue IL_0023
-
-	  IL_00bd:  leave IL_00d8
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00c2:  ldloc.1 
-	  IL_00c3:  isinst [mscorlib]System.IDisposable
-	  IL_00c8:  dup 
-	  IL_00c9:  stloc.s 7
-	  IL_00cb:  brfalse IL_00d7
-
-	  IL_00d0:  ldloc.s 7
-	  IL_00d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d7:  endfinally 
-	} // end handler 1
-	IL_00d8:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_00dd:  stloc.s 8
-	IL_00df:  nop 
-	IL_00e0:  ldarg.0 
-	IL_00e1:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
-	IL_00e6:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_00eb:  stloc.s 10
-	.try { // 2
-	  IL_00ed:  br IL_014c
-
-	  IL_00f2:  ldloc.s 10
-	  IL_00f4:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00f9:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_00fe:  stloc.s 9
-	  IL_0100:  nop 
-	  IL_0101:  ldloca.s 9
-	  IL_0103:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0108:  castclass [mscorlib]System.String
-	  IL_010d:  stloc.s 11
-	  IL_010f:  ldloc.s 11
-	  IL_0111:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	  IL_0116:  stloc.s 12
-	  IL_0118:  ldarg.0 
-	  IL_0119:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	  IL_011e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.Tasks.SolutionTask::get_AssemblyFolderList()
-	  IL_0123:  ldloc.s 12
-	  IL_0125:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_012a:  brfalse IL_014b
-
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.s 8
-	  IL_0132:  ldloc.s 11
-	  IL_0134:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_0139:  ldloca.s 9
-	  IL_013b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0140:  castclass [mscorlib]System.String
-	  IL_0145:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_014a:  nop 
-	  IL_014b:  nop 
-	  IL_014c:  ldloc.s 10
-	  IL_014e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0153:  brtrue IL_00f2
-
-	  IL_0158:  leave IL_0174
-
-	} // end .try 2
-	finally  { // 2
-	  IL_015d:  ldloc.s 10
-	  IL_015f:  isinst [mscorlib]System.IDisposable
-	  IL_0164:  dup 
-	  IL_0165:  stloc.s 13
-	  IL_0167:  brfalse IL_0173
-
-	  IL_016c:  ldloc.s 13
-	  IL_016e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0173:  endfinally 
-	} // end handler 2
-	IL_0174:  nop 
-	IL_0175:  ldarg.0 
-	IL_0176:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_017b:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	IL_0180:  stloc.s 15
-	.try { // 4
-	  IL_0182:  br IL_02d9
-
-	  IL_0187:  ldloc.s 15
-	  IL_0189:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	  IL_018e:  stloc.s 14
-	  IL_0190:  nop 
-	  IL_0191:  ldloc.s 14
-	  IL_0193:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	  IL_0198:  stloc.s 16
-	  IL_019a:  ldloc.s 16
-	  IL_019c:  brtrue IL_01a7
-
-	  IL_01a1:  nop 
-	  IL_01a2:  leave IL_02d9
-
-	  IL_01a7:  ldloc.s 16
-	  IL_01a9:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	  IL_01ae:  ldarg.1 
-	  IL_01af:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	  IL_01b4:  stloc.s 17
-	  IL_01b6:  ldloc.s 17
-	  IL_01b8:  brtrue IL_01c3
-
-	  IL_01bd:  nop 
-	  IL_01be:  leave IL_02d9
-
-	  IL_01c3:  ldloc.s 17
-	  IL_01c5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	  IL_01ca:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_01cf:  brtrue IL_01ee
-
-	  IL_01d4:  nop 
-	  IL_01d5:  ldloc.s 17
-	  IL_01d7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	  IL_01dc:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	  IL_01e1:  ldloc.s 17
-	  IL_01e3:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	  IL_01e8:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	  IL_01ed:  nop 
-	  IL_01ee:  nop 
-	  IL_01ef:  ldloc.s 16
-	  IL_01f1:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	  IL_01f6:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	  IL_01fb:  stloc.s 19
-	  .try { // 3
-	    IL_01fd:  br IL_02b0
-
-	    IL_0202:  ldloc.s 19
-	    IL_0204:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0209:  castclass NAnt.VSNet.ReferenceBase
-	    IL_020e:  stloc.s 18
-	    IL_0210:  nop 
-	    IL_0211:  ldloc.s 18
-	    IL_0213:  isinst NAnt.VSNet.ProjectReferenceBase
-	    IL_0218:  stloc.s 20
-	    IL_021a:  ldloc.s 20
-	    IL_021c:  brfalse IL_023c
-
-	    IL_0221:  nop 
-	    IL_0222:  ldloc.s 16
-	    IL_0224:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
-	    IL_0229:  ldloc.s 20
-	    IL_022b:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	    IL_0230:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
-	    IL_0235:  pop 
-	    IL_0236:  nop 
-	    IL_0237:  br IL_02af
-
-	    IL_023c:  nop 
-	    IL_023d:  ldloc.s 18
-	    IL_023f:  ldarg.1 
-	    IL_0240:  callvirt instance string class NAnt.VSNet.ReferenceBase::GetPrimaryOutputFile(class NAnt.VSNet.Configuration)
-	    IL_0245:  stloc.s 21
-	    IL_0247:  ldloc.s 21
-	    IL_0249:  brtrue IL_0254
-
-	    IL_024e:  nop 
-	    IL_024f:  leave IL_02b0
-
-	    IL_0254:  ldloc.s 8
-	    IL_0256:  ldloc.s 21
-	    IL_0258:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	    IL_025d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	    IL_0262:  castclass [mscorlib]System.String
-	    IL_0267:  stloc.s 22
-	    IL_0269:  ldloc.s 22
-	    IL_026b:  brtrue IL_0276
-
-	    IL_0270:  nop 
-	    IL_0271:  leave IL_02b0
-
-	    IL_0276:  ldarg.0 
-	    IL_0277:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	    IL_027c:  ldloc.s 22
-	    IL_027e:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	    IL_0283:  stloc.s 23
-	    IL_0285:  ldloc.s 23
-	    IL_0287:  brfalse IL_02ae
-
-	    IL_028c:  ldloc.s 23
-	    IL_028e:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	    IL_0293:  brfalse IL_02ae
-
-	    IL_0298:  nop 
-	    IL_0299:  ldloc.s 16
-	    IL_029b:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
-	    IL_02a0:  ldloc.s 23
-	    IL_02a2:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	    IL_02a7:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
-	    IL_02ac:  pop 
-	    IL_02ad:  nop 
-	    IL_02ae:  nop 
-	    IL_02af:  nop 
-	    IL_02b0:  ldloc.s 19
-	    IL_02b2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_02b7:  brtrue IL_0202
-
-	    IL_02bc:  leave IL_02d8
-
-	  } // end .try 3
-	  finally  { // 3
-	    IL_02c1:  ldloc.s 19
-	    IL_02c3:  isinst [mscorlib]System.IDisposable
-	    IL_02c8:  dup 
-	    IL_02c9:  stloc.s 24
-	    IL_02cb:  brfalse IL_02d7
-
-	    IL_02d0:  ldloc.s 24
-	    IL_02d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_02d7:  endfinally 
-	  } // end handler 3
-	  IL_02d8:  nop 
-	  IL_02d9:  ldloc.s 15
-	  IL_02db:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	  IL_02e0:  brtrue IL_0187
+	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_02e5:  leave IL_0301
+	IL_001e:  ldloc.1 
+	IL_001f:  ret 
+    } // end of method ReferencesResolver::GetAssemblyFileName
 
-	} // end .try 4
-	finally  { // 4
-	  IL_02ea:  ldloc.s 15
-	  IL_02ec:  isinst [mscorlib]System.IDisposable
-	  IL_02f1:  dup 
-	  IL_02f2:  stloc.s 25
-	  IL_02f4:  brfalse IL_0300
+  } // end of class NAnt.VSNet.ReferencesResolver
+}
 
-	  IL_02f9:  ldloc.s 25
-	  IL_02fb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0300:  endfinally 
-	} // end handler 4
-	IL_0301:  ret 
-    } // end of method SolutionBase::GetDependenciesFromProjects
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit AssemblyReferenceBase
+  	extends NAnt.VSNet.FileReferenceBase
+  {
 
-    // method line 356
-    .method family hidebysig 
-           instance default string TranslateProjectPath (string solutionDir, string projectPath)  cil managed 
+    // method line 475
+    .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 0x3b54
-	// Code size 269 (0x10d)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [System]System.Uri	V_2,
-		string	V_3)
-	IL_0000:  nop 
+        // Method begins at RVA 0x5254
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "solutionDir"
-	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 "projectPath"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldnull 
-	IL_0026:  stloc.0 
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance class NAnt.VSNet.Types.WebMapCollection class NAnt.VSNet.SolutionBase::get_WebMaps()
-	IL_002d:  ldarg.2 
-	IL_002e:  callvirt instance string class NAnt.VSNet.Types.WebMapCollection::FindBestMatch(string)
-	IL_0033:  stloc.1 
-	IL_0034:  ldloc.1 
-	IL_0035:  brfalse IL_0061
-
-	IL_003a:  nop 
-	IL_003b:  ldarg.0 
-	IL_003c:  ldc.i4 1000
-	IL_0041:  ldstr "Found webmap match '{0}' for '{1}."
-	IL_0046:  ldc.i4.2 
-	IL_0047:  newarr [mscorlib]System.Object
-	IL_004c:  dup 
-	IL_004d:  ldc.i4.0 
-	IL_004e:  ldloc.1 
-	IL_004f:  stelem.ref 
-	IL_0050:  dup 
-	IL_0051:  ldc.i4.1 
-	IL_0052:  ldarg.2 
-	IL_0053:  stelem.ref 
-	IL_0054:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0059:  ldloc.1 
-	IL_005a:  stloc.0 
-	IL_005b:  nop 
-	IL_005c:  br IL_0065
-
-	IL_0061:  nop 
-	IL_0062:  ldarg.2 
-	IL_0063:  stloc.0 
-	IL_0064:  nop 
-	.try { // 0
-	  IL_0065:  nop 
-	  IL_0066:  ldnull 
-	  IL_0067:  stloc.2 
-	  IL_0068:  ldloc.0 
-	  IL_0069:  ldc.i4.1 
-	  IL_006a:  ldloca.s 2
-	  IL_006c:  call bool class [System]System.Uri::TryCreate(string, valuetype [System]System.UriKind, [out] class [System]System.Uri&)
-	  IL_0071:  pop 
-	  IL_0072:  ldloc.2 
-	  IL_0073:  ldnull 
-	  IL_0074:  call bool class [System]System.Uri::op_Equality(class [System]System.Uri, class [System]System.Uri)
-	  IL_0079:  brfalse IL_0092
-
-	  IL_007e:  nop 
-	  IL_007f:  ldarg.1 
-	  IL_0080:  ldloc.0 
-	  IL_0081:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	  IL_008b:  stloc.0 
-	  IL_008c:  nop 
-	  IL_008d:  br IL_00e9
-
-	  IL_0092:  ldloc.2 
-	  IL_0093:  callvirt instance string class [System]System.Uri::get_Scheme()
-	  IL_0098:  ldsfld string [System]System.Uri::UriSchemeFile
-	  IL_009d:  call bool string::op_Equality(string, string)
-	  IL_00a2:  brfalse IL_00c0
-
-	  IL_00a7:  nop 
-	  IL_00a8:  ldarg.1 
-	  IL_00a9:  ldloc.2 
-	  IL_00aa:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	  IL_00af:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_00b4:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	  IL_00b9:  stloc.0 
-	  IL_00ba:  nop 
-	  IL_00bb:  br IL_00e9
-
-	  IL_00c0:  nop 
-	  IL_00c1:  ldarg.0 
-	  IL_00c2:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.SolutionBase::_solutionTask
-	  IL_00c7:  callvirt instance bool class NAnt.VSNet.Tasks.SolutionTask::get_EnableWebDav()
-	  IL_00cc:  brtrue IL_00e8
-
-	  IL_00d1:  nop 
-	  IL_00d2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00d7:  ldstr "Cannot build web project '{0}'.  Please use <webmap> to map the given URL to a project-relative path, or specify enablewebdav=\"true\" on the <solution> task element to use WebDAV."
-	  IL_00dc:  ldloc.0 
-	  IL_00dd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00e2:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	  IL_00e7:  throw 
-	  IL_00e8:  nop 
-	  IL_00e9:  nop 
-	  IL_00ea:  leave IL_0104
-
-	} // end .try 0
-	catch class [System]System.UriFormatException { // 0
-	  IL_00ef:  pop 
-	  IL_00f0:  nop 
-	  IL_00f1:  ldarg.1 
-	  IL_00f2:  ldloc.0 
-	  IL_00f3:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_00f8:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	  IL_00fd:  stloc.0 
-	  IL_00fe:  nop 
-	  IL_00ff:  leave IL_0104
+	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
 
-	} // end handler 0
-	IL_0104:  ldloc.0 
-	IL_0105:  stloc.3 
-	IL_0106:  br IL_010b
+    // method line 476
+    .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
 
-	IL_010b:  ldloc.3 
-	IL_010c:  ret 
-    } // end of method SolutionBase::TranslateProjectPath
+    // method line 477
+    .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 357
-    .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 line 478
+    .method public virtual hidebysig specialname 
+           instance default bool get_CopyLocal ()  cil managed 
     {
-        // Method begins at RVA 0x3c80
-	// Code size 685 (0x2ad)
-	.maxstack 7
+        // Method begins at RVA 0x5264
+	// Code size 76 (0x4c)
+	.maxstack 2
 	.locals init (
 		bool	V_0,
-		class NAnt.VSNet.ConfigurationBase	V_1,
-		class [mscorlib]System.Collections.ArrayList	V_2,
-		bool	V_3,
-		class NAnt.VSNet.ReferenceBase	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class NAnt.VSNet.AssemblyReferenceBase	V_6,
-		class NAnt.VSNet.ProjectBase	V_7,
-		string	V_8,
-		string	V_9,
-		class NAnt.VSNet.ProjectEntry	V_10,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_11,
-		class NAnt.VSNet.ManagedProjectBase	V_12,
-		class [mscorlib]System.IDisposable	V_13,
-		class NAnt.VSNet.ProjectReferenceBase	V_14,
-		class [mscorlib]System.IDisposable	V_15)
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.3 
-	IL_0004:  call instance bool class NAnt.VSNet.SolutionBase::HasDirtyProjectDependency(class NAnt.VSNet.ProjectBase, class [mscorlib]System.Collections.Hashtable)
-	IL_0009:  brfalse IL_0016
-
-	IL_000e:  nop 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stloc.0 
-	IL_0011:  br IL_02ab
-
-	IL_0016:  ldarg.1 
-	IL_0017:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_001c:  ldarg.2 
-	IL_001d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0022:  stloc.1 
-	IL_0023:  ldloc.1 
-	IL_0024:  brtrue IL_0031
-
-	IL_0029:  nop 
-	IL_002a:  ldc.i4.0 
-	IL_002b:  stloc.0 
-	IL_002c:  br IL_02ab
-
-	IL_0031:  ldarg.0 
-	IL_0032:  ldc.i4 2000
-	IL_0037:  ldstr "Fixing up references..."
-	IL_003c:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0041:  ldarg.1 
-	IL_0042:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_0047:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
-	IL_004c:  castclass [mscorlib]System.Collections.ArrayList
-	IL_0051:  stloc.2 
-	IL_0052:  ldc.i4.0 
-	IL_0053:  stloc.3 
-	IL_0054:  nop 
-	IL_0055:  ldloc.2 
-	IL_0056:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_005b:  stloc.s 5
-	.try { // 1
-	  IL_005d:  br IL_027c
-
-	  IL_0062:  ldloc.s 5
-	  IL_0064:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0069:  castclass NAnt.VSNet.ReferenceBase
-	  IL_006e:  stloc.s 4
-	  IL_0070:  nop 
-	  IL_0071:  ldloc.s 4
-	  IL_0073:  isinst NAnt.VSNet.AssemblyReferenceBase
-	  IL_0078:  stloc.s 6
-	  IL_007a:  ldloc.s 6
-	  IL_007c:  brtrue IL_0087
-
-	  IL_0081:  nop 
-	  IL_0082:  leave IL_027c
-
-	  IL_0087:  ldnull 
-	  IL_0088:  stloc.s 7
-	  IL_008a:  ldloc.s 6
-	  IL_008c:  ldarg.2 
-	  IL_008d:  callvirt instance string class NAnt.VSNet.ReferenceBase::GetPrimaryOutputFile(class NAnt.VSNet.Configuration)
-	  IL_0092:  stloc.s 8
-	  IL_0094:  ldloc.s 8
-	  IL_0096:  brtrue IL_00a1
-
-	  IL_009b:  nop 
-	  IL_009c:  leave IL_027c
-
-	  IL_00a1:  ldarg.0 
-	  IL_00a2:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
-	  IL_00a7:  ldloc.s 8
-	  IL_00a9:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	  IL_00ae:  brfalse IL_00de
-
-	  IL_00b3:  nop 
-	  IL_00b4:  ldarg.0 
-	  IL_00b5:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_00ba:  ldarg.0 
-	  IL_00bb:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
-	  IL_00c0:  ldloc.s 8
-	  IL_00c2:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_00c7:  castclass [mscorlib]System.String
-	  IL_00cc:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	  IL_00d1:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	  IL_00d6:  stloc.s 7
-	  IL_00d8:  nop 
-	  IL_00d9:  br IL_013c
-
-	  IL_00de:  ldarg.0 
-	  IL_00df:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
-	  IL_00e4:  brfalse IL_013c
-
-	  IL_00e9:  nop 
-	  IL_00ea:  ldarg.0 
-	  IL_00eb:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.SolutionBase::_outputDir
-	  IL_00f0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00f5:  ldloc.s 8
-	  IL_00f7:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_00fc:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_0101:  stloc.s 9
-	  IL_0103:  ldarg.0 
-	  IL_0104:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
-	  IL_0109:  ldloc.s 9
-	  IL_010b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	  IL_0110:  brfalse IL_013b
-
-	  IL_0115:  nop 
-	  IL_0116:  ldarg.0 
-	  IL_0117:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_011c:  ldarg.0 
-	  IL_011d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.SolutionBase::_htOutputFiles
-	  IL_0122:  ldloc.s 9
-	  IL_0124:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0129:  castclass [mscorlib]System.String
-	  IL_012e:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	  IL_0133:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	  IL_0138:  stloc.s 7
-	  IL_013a:  nop 
-	  IL_013b:  nop 
-	  IL_013c:  ldloc.s 7
-	  IL_013e:  brtrue IL_01d9
-
-	  IL_0143:  ldloc.s 8
-	  IL_0145:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_014a:  brtrue IL_01d9
-
-	  IL_014f:  nop 
-	  IL_0150:  nop 
-	  IL_0151:  ldarg.0 
-	  IL_0152:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_0157:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	  IL_015c:  stloc.s 11
-	  .try { // 0
-	    IL_015e:  br IL_01b0
-
-	    IL_0163:  ldloc.s 11
-	    IL_0165:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	    IL_016a:  stloc.s 10
-	    IL_016c:  nop 
-	    IL_016d:  ldloc.s 10
-	    IL_016f:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	    IL_0174:  isinst NAnt.VSNet.ManagedProjectBase
-	    IL_0179:  stloc.s 12
-	    IL_017b:  ldloc.s 12
-	    IL_017d:  brtrue IL_0188
-
-	    IL_0182:  nop 
-	    IL_0183:  leave IL_01b0
-
-	    IL_0188:  ldloc.s 6
-	    IL_018a:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	    IL_018f:  ldloc.s 12
-	    IL_0191:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	    IL_0196:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyName()
-	    IL_019b:  call bool string::op_Equality(string, string)
-	    IL_01a0:  brfalse IL_01af
-
-	    IL_01a5:  nop 
-	    IL_01a6:  ldloc.s 12
-	    IL_01a8:  stloc.s 7
-	    IL_01aa:  leave IL_01bc
-
-	    IL_01af:  nop 
-	    IL_01b0:  ldloc.s 11
-	    IL_01b2:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	    IL_01b7:  brtrue IL_0163
-
-	    IL_01bc:  leave IL_01d8
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_01c1:  ldloc.s 11
-	    IL_01c3:  isinst [mscorlib]System.IDisposable
-	    IL_01c8:  dup 
-	    IL_01c9:  stloc.s 13
-	    IL_01cb:  brfalse IL_01d7
-
-	    IL_01d0:  ldloc.s 13
-	    IL_01d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_01d7:  endfinally 
-	  } // end handler 0
-	  IL_01d8:  nop 
-	  IL_01d9:  ldloc.s 7
-	  IL_01db:  brfalse IL_027b
-
-	  IL_01e0:  nop 
-	  IL_01e1:  ldloc.3 
-	  IL_01e2:  brtrue IL_01fe
-
-	  IL_01e7:  ldarg.s 4
-	  IL_01e9:  ldloc.s 7
-	  IL_01eb:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_01f0:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_01f5:  brfalse IL_01fe
-
-	  IL_01fa:  nop 
-	  IL_01fb:  ldc.i4.1 
-	  IL_01fc:  stloc.3 
-	  IL_01fd:  nop 
-	  IL_01fe:  ldloc.s 6
-	  IL_0200:  ldloc.s 7
-	  IL_0202:  callvirt instance class NAnt.VSNet.ProjectReferenceBase class NAnt.VSNet.AssemblyReferenceBase::CreateProjectReference(class NAnt.VSNet.ProjectBase)
-	  IL_0207:  stloc.s 14
-	  IL_0209:  ldarg.0 
-	  IL_020a:  ldc.i4 2000
-	  IL_020f:  ldstr "Converted assembly reference to project reference: {0} -> {1}"
-	  IL_0214:  ldc.i4.2 
-	  IL_0215:  newarr [mscorlib]System.Object
-	  IL_021a:  dup 
-	  IL_021b:  ldc.i4.0 
-	  IL_021c:  ldloc.s 6
-	  IL_021e:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	  IL_0223:  stelem.ref 
-	  IL_0224:  dup 
-	  IL_0225:  ldc.i4.1 
-	  IL_0226:  ldloc.s 14
-	  IL_0228:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	  IL_022d:  stelem.ref 
-	  IL_022e:  call instance void class NAnt.VSNet.SolutionBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0233:  ldarg.1 
-	  IL_0234:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	  IL_0239:  ldloc.s 6
-	  IL_023b:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
-	  IL_0240:  ldarg.1 
-	  IL_0241:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	  IL_0246:  ldloc.s 14
-	  IL_0248:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_024d:  pop 
-	  IL_024e:  ldarg.3 
-	  IL_024f:  ldloc.s 14
-	  IL_0251:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	  IL_0256:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_025b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	  IL_0260:  brtrue IL_027a
-
-	  IL_0265:  nop 
-	  IL_0266:  ldarg.1 
-	  IL_0267:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
-	  IL_026c:  ldloc.s 14
-	  IL_026e:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	  IL_0273:  callvirt instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
-	  IL_0278:  pop 
-	  IL_0279:  nop 
-	  IL_027a:  nop 
-	  IL_027b:  nop 
-	  IL_027c:  ldloc.s 5
-	  IL_027e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0283:  brtrue IL_0062
-
-	  IL_0288:  leave IL_02a4
-
-	} // end .try 1
-	finally  { // 1
-	  IL_028d:  ldloc.s 5
-	  IL_028f:  isinst [mscorlib]System.IDisposable
-	  IL_0294:  dup 
-	  IL_0295:  stloc.s 15
-	  IL_0297:  brfalse IL_02a3
-
-	  IL_029c:  ldloc.s 15
-	  IL_029e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02a3:  endfinally 
-	} // end handler 1
-	IL_02a4:  ldloc.3 
-	IL_02a5:  stloc.0 
-	IL_02a6:  br IL_02ab
-
-	IL_02ab:  ldloc.0 
-	IL_02ac:  ret 
-    } // end of method SolutionBase::FixProjectReferences
-
-    // method line 358
-    .method family hidebysig 
-           instance default class [NAnt.Core]NAnt.Core.BuildException CreateProjectDoesNotExistException (string projectPath)  cil managed 
-    {
-        // Method begins at RVA 0x3f70
-	// Code size 30 (0x1e)
-	.maxstack 3
-	.locals init (
-		class [NAnt.Core]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 "Project '{0}' does not exist."
-	IL_000b:  ldarg.1 
-	IL_000c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0011:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
-
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method SolutionBase::CreateProjectDoesNotExistException
-
-    // method line 359
-    .method family virtual hidebysig newslot 
-           instance default void SetProjectBuildConfiguration (class NAnt.VSNet.ProjectEntry projectEntry)  cil managed 
-    {
-        // Method begins at RVA 0x3f9c
-	// Code size 263 (0x107)
-	.maxstack 3
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0,
-		class NAnt.VSNet.ConfigurationDictionaryEntry	V_1,
-		class NAnt.VSNet.ConfigurationDictionaryEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.VSNet.ProjectBase	V_4,
-		class NAnt.VSNet.ConfigurationMapEntry	V_5,
-		class NAnt.VSNet.ConfigurationMapEnumerator	V_6,
-		class NAnt.VSNet.Configuration	V_7,
-		class NAnt.VSNet.Configuration	V_8,
-		class NAnt.VSNet.ConfigurationBase	V_9,
-		class [mscorlib]System.IDisposable	V_10)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class NAnt.VSNet.ConfigurationMap class NAnt.VSNet.ProjectEntry::get_BuildConfigurations()
-	IL_0007:  brtrue IL_007b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	IL_0013:  stloc.0 
-	IL_0014:  ldloc.0 
-	IL_0015:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_001a:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::Clear()
-	IL_001f:  nop 
-	IL_0020:  ldloc.0 
-	IL_0021:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	IL_0026:  callvirt instance class NAnt.VSNet.ConfigurationDictionaryEnumerator class NAnt.VSNet.ConfigurationDictionary::GetEnumerator()
-	IL_002b:  stloc.2 
-	.try { // 0
-	  IL_002c:  br IL_0051
-
-	  IL_0031:  ldloc.2 
-	  IL_0032:  callvirt instance class NAnt.VSNet.ConfigurationDictionaryEntry class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Current()
-	  IL_0037:  stloc.1 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	  IL_003f:  ldloc.1 
-	  IL_0040:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEntry::get_Name()
-	  IL_0045:  ldloc.1 
-	  IL_0046:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEntry::get_Config()
-	  IL_004b:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	  IL_0050:  nop 
-	  IL_0051:  ldloc.2 
-	  IL_0052:  callvirt instance bool class NAnt.VSNet.ConfigurationDictionaryEnumerator::MoveNext()
-	  IL_0057:  brtrue IL_0031
-
-	  IL_005c:  leave IL_0075
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0061:  ldloc.2 
-	  IL_0062:  isinst [mscorlib]System.IDisposable
-	  IL_0067:  dup 
-	  IL_0068:  stloc.3 
-	  IL_0069:  brfalse IL_0074
-
-	  IL_006e:  ldloc.3 
-	  IL_006f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0074:  endfinally 
-	} // end handler 0
-	IL_0075:  nop 
-	IL_0076:  br IL_0106
-
-	IL_007b:  nop 
-	IL_007c:  ldarg.1 
-	IL_007d:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectEntry::get_Project()
-	IL_0082:  stloc.s 4
-	IL_0084:  nop 
-	IL_0085:  ldarg.1 
-	IL_0086:  callvirt instance class NAnt.VSNet.ConfigurationMap class NAnt.VSNet.ProjectEntry::get_BuildConfigurations()
-	IL_008b:  callvirt instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
-	IL_0090:  stloc.s 6
-	.try { // 1
-	  IL_0092:  br IL_00dd
-
-	  IL_0097:  ldloc.s 6
-	  IL_0099:  callvirt instance class NAnt.VSNet.ConfigurationMapEntry class NAnt.VSNet.ConfigurationMapEnumerator::get_Current()
-	  IL_009e:  stloc.s 5
-	  IL_00a0:  nop 
-	  IL_00a1:  ldloc.s 5
-	  IL_00a3:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEntry::get_Key()
-	  IL_00a8:  stloc.s 7
-	  IL_00aa:  ldloc.s 5
-	  IL_00ac:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEntry::get_Value()
-	  IL_00b1:  stloc.s 8
-	  IL_00b3:  ldloc.s 4
-	  IL_00b5:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	  IL_00ba:  ldloc.s 8
-	  IL_00bc:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	  IL_00c1:  stloc.s 9
-	  IL_00c3:  ldloc.s 9
-	  IL_00c5:  brfalse IL_00dc
-
-	  IL_00ca:  nop 
-	  IL_00cb:  ldloc.s 4
-	  IL_00cd:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	  IL_00d2:  ldloc.s 7
-	  IL_00d4:  ldloc.s 9
-	  IL_00d6:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	  IL_00db:  nop 
-	  IL_00dc:  nop 
-	  IL_00dd:  ldloc.s 6
-	  IL_00df:  callvirt instance bool class NAnt.VSNet.ConfigurationMapEnumerator::MoveNext()
-	  IL_00e4:  brtrue IL_0097
-
-	  IL_00e9:  leave IL_0105
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00ee:  ldloc.s 6
-	  IL_00f0:  isinst [mscorlib]System.IDisposable
-	  IL_00f5:  dup 
-	  IL_00f6:  stloc.s 10
-	  IL_00f8:  brfalse IL_0104
-
-	  IL_00fd:  ldloc.s 10
-	  IL_00ff:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0104:  endfinally 
-	} // end handler 1
-	IL_0105:  nop 
-	IL_0106:  ret 
-    } // end of method SolutionBase::SetProjectBuildConfiguration
-
-    // method line 360
-    .method private hidebysig 
-           instance default bool HasDirtyProjectDependency (class NAnt.VSNet.ProjectBase project, class [mscorlib]System.Collections.Hashtable builtProjects)  cil managed 
-    {
-        // Method begins at RVA 0x40cc
-	// Code size 98 (0x62)
-	.maxstack 2
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0,
-		class NAnt.VSNet.ProjectBaseEnumerator	V_1,
-		bool	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class NAnt.VSNet.ProjectBaseCollection class NAnt.VSNet.ProjectBase::get_ProjectDependencies()
-	IL_0008:  callvirt instance class NAnt.VSNet.ProjectBaseEnumerator class NAnt.VSNet.ProjectBaseCollection::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_0035
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectBaseEnumerator::get_Current()
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldarg.2 
-	  IL_001c:  ldloc.0 
-	  IL_001d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_0022:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_0027:  brtrue IL_0034
-
-	  IL_002c:  nop 
-	  IL_002d:  ldc.i4.1 
-	  IL_002e:  stloc.2 
-	  IL_002f:  leave IL_0060
-
-	  IL_0034:  nop 
-	  IL_0035:  ldloc.1 
-	  IL_0036:  callvirt instance bool class NAnt.VSNet.ProjectBaseEnumerator::MoveNext()
-	  IL_003b:  brtrue IL_0013
-
-	  IL_0040:  leave IL_0059
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0045:  ldloc.1 
-	  IL_0046:  isinst [mscorlib]System.IDisposable
-	  IL_004b:  dup 
-	  IL_004c:  stloc.3 
-	  IL_004d:  brfalse IL_0058
-
-	  IL_0052:  ldloc.3 
-	  IL_0053:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0058:  endfinally 
-	} // end handler 0
-	IL_0059:  ldc.i4.0 
-	IL_005a:  stloc.2 
-	IL_005b:  br IL_0060
-
-	IL_0060:  ldloc.2 
-	IL_0061:  ret 
-    } // end of method SolutionBase::HasDirtyProjectDependency
-
-    // method line 361
-    .method private hidebysig 
-           instance default string FindGuidFromPath (string projectPath)  cil managed 
-    {
-        // Method begins at RVA 0x414c
-	// Code size 113 (0x71)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.ProjectEntry	V_0,
-		class NAnt.VSNet.ProjectEntryEnumerator	V_1,
-		string	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	IL_0008:  callvirt instance class NAnt.VSNet.ProjectEntryEnumerator class NAnt.VSNet.ProjectEntryCollection::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_0040
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryEnumerator::get_Current()
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Path()
-	  IL_0021:  ldarg.1 
-	  IL_0022:  ldc.i4.1 
-	  IL_0023:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0028:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_002d:  brtrue IL_003f
-
-	  IL_0032:  nop 
-	  IL_0033:  ldloc.0 
-	  IL_0034:  callvirt instance string class NAnt.VSNet.ProjectEntry::get_Guid()
-	  IL_0039:  stloc.2 
-	  IL_003a:  leave IL_006f
-
-	  IL_003f:  nop 
-	  IL_0040:  ldloc.1 
-	  IL_0041:  callvirt instance bool class NAnt.VSNet.ProjectEntryEnumerator::MoveNext()
-	  IL_0046:  brtrue IL_0013
-
-	  IL_004b:  leave IL_0064
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0050:  ldloc.1 
-	  IL_0051:  isinst [mscorlib]System.IDisposable
-	  IL_0056:  dup 
-	  IL_0057:  stloc.3 
-	  IL_0058:  brfalse IL_0063
-
-	  IL_005d:  ldloc.3 
-	  IL_005e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0063:  endfinally 
-	} // end handler 0
-	IL_0064:  ldsfld string [mscorlib]System.String::Empty
-	IL_0069:  stloc.2 
-	IL_006a:  br IL_006f
-
-	IL_006f:  ldloc.2 
-	IL_0070:  ret 
-    } // end of method SolutionBase::FindGuidFromPath
-
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.SolutionBase::get_File () 
-	}
-	.property instance class [System]System.CodeDom.Compiler.TempFileCollection TemporaryFiles ()
-	{
-		.get instance default class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.SolutionBase::get_TemporaryFiles () 
-	}
-	.property instance class NAnt.VSNet.Types.WebMapCollection WebMaps ()
-	{
-		.get instance default class NAnt.VSNet.Types.WebMapCollection NAnt.VSNet.SolutionBase::get_WebMaps () 
-	}
-	.property instance class NAnt.VSNet.ProjectEntryCollection ProjectEntries ()
-	{
-		.get instance default class NAnt.VSNet.ProjectEntryCollection NAnt.VSNet.SolutionBase::get_ProjectEntries () 
-	}
-  } // end of class NAnt.VSNet.SolutionBase
-}
-
-.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
-
-    // method line 362
-    .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 0x50df
-	// 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_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 "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 363
-    .method family hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlElement get_XmlDefinition ()  cil managed 
-    {
-        // Method begins at RVA 0x5120
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System.Xml]System.Xml.XmlElement	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	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 FileReferenceBase::get_XmlDefinition
-
-    // method line 364
-    .method family hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
-    {
-        // Method begins at RVA 0x513c
-	// 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.FileReferenceBase::_gacCache
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FileReferenceBase::get_GacCache
-
-    // method line 365
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
-    {
-        // Method begins at RVA 0x5158
-	// 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 FileReferenceBase::IsManaged
-
-    // method line 366
-    .method family hidebysig 
-           instance default void GetAssemblyOutputFiles (string assemblyFile, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
-    {
-        // Method begins at RVA 0x5170
-	// 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_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_0048:  nop 
-	IL_0049:  ldarg.0 
-	IL_004a:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
-	IL_004f:  brtrue IL_0065
-
-	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_0065:  nop 
-	IL_0066:  br IL_0074
-
-	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_0081:  nop 
-	IL_0082:  ret 
-    } // end of method FileReferenceBase::GetAssemblyOutputFiles
-
-    // method line 367
-    .method private hidebysig 
-           instance default string[] GetAllReferencedModules (string module)  cil managed 
-    {
-        // Method begins at RVA 0x5200
-	// Code size 201 (0xc9)
-	.maxstack 5
-	.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)
-	IL_0000:  nop 
-	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_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_0077:  nop 
-	  IL_0078:  leave IL_009d
-
-	} // 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_00c6:  ldloc.s 8
-	IL_00c8:  ret 
-    } // end of method FileReferenceBase::GetAllReferencedModules
-
-	.property instance class [System.Xml]System.Xml.XmlElement XmlDefinition ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::get_XmlDefinition () 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Util.GacCache GacCache ()
-	{
-		.get instance default class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::get_GacCache () 
-	}
-  } // end of class NAnt.VSNet.FileReferenceBase
-}
-
-.namespace NAnt.VSNet
-{
-  .class private auto ansi beforefieldinit VBProjectProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
-
-    // method line 368
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xf9b5
-	// 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
-
-    // method line 369
-    .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 0xf9c0
-	// 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 370
-    .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 0xfa00
-	// 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.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_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method VBProjectProvider::GetInstance
-
-    // method line 371
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0xfa28
-	// 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 VBProjectProvider::LoadGuid
-
-  } // end of class NAnt.VSNet.VBProjectProvider
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit ProjectReferenceBase
-  	extends NAnt.VSNet.ReferenceBase
-  {
-    .field  private static initonly  class [mscorlib]System.Collections.Stack ProjectStack
-
-    // method line 372
-    .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 0xa324
-	// 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 line 373
-    .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
-
-    // method line 374
-    .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
-
-    // method line 375
-    .method public virtual hidebysig specialname 
-           instance default bool get_CopyLocal ()  cil managed 
-    {
-        // Method begins at RVA 0xa330
-	// 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_000c:  ldarg.0 
-	IL_000d:  callvirt instance bool class NAnt.VSNet.ProjectReferenceBase::get_IsPrivate()
-	IL_0012:  br IL_0018
-
-	IL_0017:  ldc.i4.1 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
-
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method ProjectReferenceBase::get_CopyLocal
-
-    // method line 376
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0xa35c
-	// Code size 20 (0x14)
-	.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:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectReferenceBase::get_Name
-
-    // method line 377
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsSystem ()  cil managed 
-    {
-        // Method begins at RVA 0xa37c
-	// 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 ProjectReferenceBase::get_IsSystem
-
-    // method line 378
-    .method public virtual hidebysig 
-           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa394
-	// 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
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectReferenceBase::GetPrimaryOutputFile
-
-    // method line 379
-    .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 0xa3b5
-	// Code size 15 (0xf)
-	.maxstack 8
-	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 380
-    .method public virtual hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa3c8
-	// Code size 128 (0x80)
-	.maxstack 2
-	.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)
-	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_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_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_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_005f:  nop 
-	IL_0060:  ldloc.2 
-	IL_0061:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0066:  brfalse IL_0075
-
-	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_007e:  ldloc.3 
-	IL_007f:  ret 
-    } // end of method ProjectReferenceBase::GetAssemblyReferences
-
-    // method line 381
-    .method public virtual hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa454
-	// 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 382
-    .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 383
-    .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 0xa490
-	// 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 384
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xa54c
-	// 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 beforefieldinit VBProject
-  	extends NAnt.VSNet.ManagedProjectBase
-  {
-    .field  private initonly  class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection _imports
-
-    // method line 385
-    .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 0xfa44
-	// 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 386
-    .method family virtual hidebysig 
-           instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
-    {
-        // Method begins at RVA 0xfb0c
-	// 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 387
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0xfb38
-	// 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 388
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0xfb4e
-	// 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 389
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0xfb80
-	// 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 390
-    .method family virtual hidebysig specialname 
-           instance default string get_FileExtension ()  cil managed 
-    {
-        // Method begins at RVA 0xfbb8
-	// 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 391
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0xfbd4
-	// 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 392
-    .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 0xfbfc
-	// 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 393
-    .method public static hidebysig 
-           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0xfc8c
-	// 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
-}
-
-.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$map3'
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-
-    // method line 394
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project)  cil managed 
-    {
-        // Method begins at RVA 0xa73b
-	// 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 395
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0xa778
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationBase::get_Project
-
-    // method line 396
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_Name
-
-    // method line 397
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
-    {
-        // Method begins at RVA 0xa794
-	// 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_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_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method ConfigurationBase::get_ObjectDir
-
-    // method line 398
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_OutputDir
-
-    // method line 399
-    .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 400
-    .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 401
-    .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 402
-    .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 403
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
-    {
-        // Method begins at RVA 0xa7cc
-	// 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.ConfigurationBase::_extraOutputFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationBase::get_ExtraOutputFiles
-
-    // method line 404
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
-    {
-        // Method begins at RVA 0xa7e8
-	// 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_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
-
-    // method line 405
-    .method public hidebysig 
-           instance default string ExpandMacros (string s)  cil managed 
-    {
-        // Method begins at RVA 0xa808
-	// Code size 47 (0x2f)
-	.maxstack 4
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	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 406
-    .method famorassem virtual hidebysig newslot 
-           instance default string ExpandMacro (string macro)  cil managed 
-    {
-        // Method begins at RVA 0xa844
-	// 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:  brfalse IL_018a
-
-	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map3'
-	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$map3'
-	IL_008a:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map3'
-	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 407
-    .method private hidebysig 
-           instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
-    {
-        // Method begins at RVA 0xaa38
-	// 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_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method ConfigurationBase::EvaluateMacro
-
-	.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 ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_OutputPath () 
-	}
-	.property instance string BuildPath ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_BuildPath () 
-	}
-	.property instance string RelativeOutputDir ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir () 
-	}
-	.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 private auto ansi beforefieldinit CSharpProjectProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
-
-    // method line 408
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xfd10
-	// 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 409
-    .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 0xfd18
-	// 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
-
-	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 410
-    .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 0xfd58
-	// 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 411
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0xfd80
-	// 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 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 412
-    .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 0xfd9c
-	// 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 413
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivate ()  cil managed 
-    {
-        // Method begins at RVA 0xfe28
-	// 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 414
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
-    {
-        // Method begins at RVA 0xfe44
-	// 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 415
-    .method family virtual hidebysig 
-           instance default string ResolveAssemblyReference ()  cil managed 
-    {
-        // Method begins at RVA 0xfe60
-	// 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 416
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0xff08
-	// 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 417
-    .method private hidebysig specialname 
-           instance default string get_AssemblyFoldersKey ()  cil managed 
-    {
-        // Method begins at RVA 0xff24
-	// 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 418
-    .method private hidebysig 
-           instance default string GetComponentAssemblyFolder (class [System.Xml]System.Xml.XmlElement referenceElement)  cil managed 
-    {
-        // Method begins at RVA 0xff6c
-	// 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 419
-    .method family virtual hidebysig 
-           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x1019c
-	// 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 public auto ansi beforefieldinit GenericSolution
-  	extends NAnt.VSNet.SolutionBase
-  {
-
-    // method line 420
-    .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 0x101ec
-	// 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 private auto ansi sealed beforefieldinit SolutionFactory
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectProviders
-
-    // method line 421
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x101fa
-	// 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 line 422
-    .method assembly static hidebysig 
-           default class NAnt.VSNet.SolutionFactory Create ()  cil managed 
-    {
-        // Method begins at RVA 0x10210
-	// 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_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method SolutionFactory::Create
-
-    // method line 423
-    .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 0x1022c
-	// Code size 147 (0x93)
-	.maxstack 6
-	.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)
-	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_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_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 424
-    .method public hidebysig 
-           instance default void RegisterProvider (class NAnt.VSNet.Extensibility.ISolutionBuildProvider provider)  cil managed 
-    {
-        // Method begins at RVA 0x102dc
-	// Code size 15 (0xf)
-	.maxstack 8
-	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
-
-    // method line 425
-    .method private hidebysig 
-           instance default class NAnt.VSNet.Extensibility.ISolutionBuildProvider FindProvider (string fileContents)  cil managed 
-    {
-        // Method begins at RVA 0x102ec
-	// Code size 110 (0x6e)
-	.maxstack 2
-	.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)
-	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 
-	.try { // 0
-	  IL_0012:  br IL_003d
-
-	  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_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_0048:  leave IL_0063
-
-	} // 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_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_006b:  ldloc.s 6
-	IL_006d:  ret 
-    } // end of method SolutionFactory::FindProvider
-
-  } // end of class NAnt.VSNet.SolutionFactory
-}
-
-.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 426
-    .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 0x10378
-	// 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 427
-    .method public virtual hidebysig specialname 
-           instance default string get_PlatformName ()  cil managed 
-    {
-        // Method begins at RVA 0x10924
-	// 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 428
-    .method public virtual hidebysig specialname 
-           instance default string get_RelativeOutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x10940
-	// 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 429
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x1095c
-	// 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 430
-    .method public virtual hidebysig specialname 
-           instance default string get_OutputPath ()  cil managed 
-    {
-        // Method begins at RVA 0x10978
-	// 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 431
-    .method public virtual hidebysig specialname 
-           instance default string get_BuildPath ()  cil managed 
-    {
-        // Method begins at RVA 0x109b4
-	// 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 432
-    .method public hidebysig specialname 
-           instance default string[] get_Settings ()  cil managed 
-    {
-        // Method begins at RVA 0x109e4
-	// 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 433
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x10a14
-	// 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 434
-    .method public hidebysig specialname 
-           instance default bool get_RegisterForComInterop ()  cil managed 
-    {
-        // Method begins at RVA 0x10a30
-	// 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 435
-    .method private hidebysig specialname 
-           instance default bool get_IncrementalBuildSupported ()  cil managed 
-    {
-        // Method begins at RVA 0x10a4c
-	// 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 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
-
-    // method line 436
-    .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 0x10a9c
-	// 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_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_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_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 437
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x10b68
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_Name
-
-    // method line 438
-    .method public virtual hidebysig specialname 
-           instance default string get_WrapperTool ()  cil managed 
-    {
-        // Method begins at RVA 0x10b84
-	// 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::_wrapperTool
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_WrapperTool
-
-    // method line 439
-    .method public virtual hidebysig specialname 
-           instance default string get_WrapperAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x10ba0
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_WrapperAssembly
-
-    // method line 440
-    .method family virtual hidebysig specialname 
-           instance default string get_PrimaryInteropAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x10bbc
-	// 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_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_PrimaryInteropAssembly
-
-    // method line 441
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x10bd8
-	// Code size 176 (0xb0)
-	.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)
-	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_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_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_00ad:  ldloc.s 6
-	IL_00af:  ret 
-    } // end of method ManagedWrapperReference::get_TypeLibVersion
-
-    // method line 442
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibGuid ()  cil managed 
-    {
-        // Method begins at RVA 0x10c94
-	// 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 "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_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_0035:  ldloc.1 
-	IL_0036:  ret 
-    } // end of method ManagedWrapperReference::get_TypeLibGuid
-
-    // method line 443
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibLocale ()  cil managed 
-    {
-        // Method begins at RVA 0x10cd8
-	// 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_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_0047:  ldloc.2 
-	IL_0048:  ret 
-    } // end of method ManagedWrapperReference::get_TypeLibLocale
-
-    // method line 444
-    .method private hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
-    {
-        // Method begins at RVA 0x10d30
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectSettings	V_0)
-	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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_ProjectSettings
-
-    // method line 445
-    .method family virtual hidebysig 
-           instance default void ImportTypeLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x10d4c
-	// 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_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_00bd:  ldloc.3 
-	  IL_00be:  callvirt instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
-	  IL_00c3:  brfalse IL_00dd
-
-	  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_00dd:  nop 
-	  IL_00de:  leave IL_00fb
-
-	  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_0106:  leave IL_0121
-
-	} // 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_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_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_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 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 446
-    .method family virtual hidebysig 
-           instance default void ImportActiveXLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x10f1c
-	// Code size 328 (0x148)
-	.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:  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_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_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 ReferenceBase
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class NAnt.VSNet.ProjectBase _parent
-    .field  private  class NAnt.VSNet.ReferencesResolver _referencesResolver
-
-    // method line 447
-    .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 0x4f13
-	// 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 448
-    .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
-
-    // method line 449
-    .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
-
-    // method line 450
-    .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
-
-    // method line 451
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Parent ()  cil managed 
-    {
-        // Method begins at RVA 0x4f2c
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReferenceBase::get_Parent
-
-    // method line 452
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
-    {
-        // Method begins at RVA 0x4f48
-	// 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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ReferenceBase::get_SolutionTask
-
-    // method line 453
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
-    {
-        // Method begins at RVA 0x4f68
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReferenceBase::get_ReferencesResolver
-
-    // method line 454
-    .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
-
-    // method line 455
-    .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 456
-    .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
-
-    // method line 457
-    .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 458
-    .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 459
-    .method family hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetFileTimestamp (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x4f84
-	// 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_000c:  nop 
-	IL_000d:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0024
-
-	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_0024:  ldloc.0 
-	IL_0025:  ret 
-    } // end of method ReferenceBase::GetFileTimestamp
-
-    // method line 460
-    .method family hidebysig 
-           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
-    {
-        // Method begins at RVA 0x4fb6
-	// 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
-
-    // method line 461
-    .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 0x4fc6
-	// 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
-
-    // method line 462
-    .method public static hidebysig 
-           default void GetRelatedFiles (string file, class [mscorlib]System.Collections.Hashtable relatedFiles)  cil managed 
-    {
-        // Method begins at RVA 0x4fd8
-	// 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_0013:  ldloc.0 
-	IL_0014:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0019:  brtrue IL_0024
-
-	IL_001e:  nop 
-	IL_001f:  br IL_00fa
-
-	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_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_007a:  nop 
-	IL_007b:  br IL_00ea
-
-	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_00a3:  ldloc.s 5
-	IL_00a5:  ldstr ".xml"
-	IL_00aa:  call bool string::op_Inequality(string, string)
-	IL_00af:  brfalse IL_00dc
-
-	IL_00b4:  ldloc.s 5
-	IL_00b6:  ldstr ".pdb"
-	IL_00bb:  call bool string::op_Inequality(string, string)
-	IL_00c0:  brfalse IL_00dc
-
-	IL_00c5:  ldloc.s 5
-	IL_00c7:  ldstr ".mdb"
-	IL_00cc:  call bool string::op_Inequality(string, string)
-	IL_00d1:  brfalse IL_00dc
-
-	IL_00d6:  nop 
-	IL_00d7:  br IL_00ea
-
-	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_00fa:  ret 
-    } // end of method ReferenceBase::GetRelatedFiles
-
-	.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
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit JSharpProject
-  	extends NAnt.VSNet.ManagedProjectBase
-  {
-
-    // method line 463
-    .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 0x11080
-	// 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 464
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x110a4
-	// 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 465
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x110ba
-	// 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 466
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x110ec
-	// 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 467
-    .method family virtual hidebysig 
-           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x11114
-	// 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 468
-    .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 0x11158
-	// 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 469
-    .method family virtual hidebysig specialname 
-           instance default string get_FileExtension ()  cil managed 
-    {
-        // Method begins at RVA 0x111f0
-	// 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 470
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x1120c
-	// 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 471
-    .method public static hidebysig 
-           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x11234
-	// 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 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
-
-    // method line 472
-    .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 0x112b8
-	// 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
-
-    // method line 473
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
-    {
-        // Method begins at RVA 0x11304
-	// 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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Resource::get_Culture
-
-    // method line 474
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x11320
-	// 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.Resource::_resourceSourceFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Resource::get_InputFile
-
-    // method line 475
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x1133c
-	// 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.Resource::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Resource::get_Project
-
-    // method line 476
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_LogicalFile ()  cil managed 
-    {
-        // Method begins at RVA 0x11358
-	// 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 477
-    .method public hidebysig specialname 
-           instance default bool get_IsResX ()  cil managed 
-    {
-        // Method begins at RVA 0x11390
-	// 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 478
-    .method public hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x113c4
-	// 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 479
-    .method public hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo GetCompiledResourceFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x11444
-	// 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 480
-    .method public hidebysig 
-           instance default string GetManifestResourceName (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x11518
-	// 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 481
-    .method private hidebysig 
-           instance default string GetManifestResourceNameCSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x115c4
-	// 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 482
-    .method private hidebysig 
-           instance default string GetManifestResourceNameVB (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x116b4
-	// 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 483
-    .method private hidebysig 
-           instance default string GetManifestResourceNameJSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x117b8
-	// 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 484
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo CompileResource (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x118a8
-	// 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 485
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo CompileLicx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x118c4
-	// 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 486
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo CompileResx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x11ab0
-	// 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 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 487
-    .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 0x11ab8
-	// 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 488
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x11d4c
-	// 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 489
-    .method public hidebysig specialname 
-           instance default bool get_WholeProgramOptimization ()  cil managed 
-    {
-        // Method begins at RVA 0x11d68
-	// 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 490
-    .method public hidebysig specialname 
-           instance default valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet get_CharacterSet ()  cil managed 
-    {
-        // Method begins at RVA 0x11d84
-	// 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 491
-    .method public hidebysig specialname 
-           instance default bool get_ManagedExtensions ()  cil managed 
-    {
-        // Method begins at RVA 0x11da0
-	// 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 492
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.Types.UseOfMFC get_UseOfMFC ()  cil managed 
-    {
-        // Method begins at RVA 0x11dbc
-	// 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 493
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.Types.UseOfATL get_UseOfATL ()  cil managed 
-    {
-        // Method begins at RVA 0x11dd8
-	// 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 494
-    .method assembly hidebysig specialname 
-           instance default string get_RawRelativeOutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x11df4
-	// 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 495
-    .method assembly hidebysig specialname 
-           instance default string get_RawIntermediateDir ()  cil managed 
-    {
-        // Method begins at RVA 0x11e10
-	// 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 496
-    .method assembly hidebysig specialname 
-           instance default string get_RawReferencesPath ()  cil managed 
-    {
-        // Method begins at RVA 0x11e2c
-	// 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 497
-    .method assembly hidebysig specialname 
-           instance default class NAnt.VSNet.VcProjectConfiguration/LinkerConfig get_LinkerConfiguration ()  cil managed 
-    {
-        // Method begins at RVA 0x11e48
-	// 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 498
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_ObjFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x11e64
-	// 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_0002:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified()
+	IL_0007:  brfalse IL_0019
 
 	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 499
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_SourceConfigs ()  cil managed 
-    {
-        // Method begins at RVA 0x11e94
-	// 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 500
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_RcConfigs ()  cil managed 
-    {
-        // Method begins at RVA 0x11ec4
-	// 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 501
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_IdlConfigs ()  cil managed 
-    {
-        // Method begins at RVA 0x11ef4
-	// 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 502
-    .method private hidebysig specialname 
-           instance default string get_TargetPath ()  cil managed 
-    {
-        // Method begins at RVA 0x11f24
-	// 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 503
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
-    {
-        // Method begins at RVA 0x12088
-	// 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 504
-    .method public virtual hidebysig specialname 
-           instance default string get_RelativeOutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x120c0
-	// 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 505
-    .method public virtual hidebysig specialname 
-           instance default string get_IntermediateDir ()  cil managed 
-    {
-        // Method begins at RVA 0x120e4
-	// 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 506
-    .method public virtual hidebysig specialname 
-           instance default string get_OutputPath ()  cil managed 
-    {
-        // Method begins at RVA 0x12108
-	// 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 507
-    .method public virtual hidebysig specialname 
-           instance default string get_ReferencesPath ()  cil managed 
-    {
-        // Method begins at RVA 0x12138
-	// 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 508
-    .method assembly hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
-    {
-        // Method begins at RVA 0x1215c
-	// 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 509
-    .method public virtual hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName, string defaultValue)  cil managed 
-    {
-        // Method begins at RVA 0x1217c
-	// 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 510
-    .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 0x121a8
-	// 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 511
-    .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 0x12218
-	// 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 512
-    .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 0x12244
-	// 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 513
-    .method famorassem virtual hidebysig 
-           instance default string ExpandMacro (string macro)  cil managed 
-    {
-        // Method begins at RVA 0x12314
-	// 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 514
-    .method private hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x12430
-	// 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_000e:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_004a
 
-	  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_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_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_0027:  ldarg.0 
+	IL_0028:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
+	IL_002d:  brtrue IL_0043
 
-	  IL_0283:  nop 
-	  IL_0284:  ldloc.3 
-	  IL_0285:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_028a:  brtrue IL_0036
+	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_028f:  leave IL_02aa
+	IL_0043:  ldc.i4.0 
+	IL_0044:  stloc.0 
+	IL_0045:  br IL_004a
 
-	} // 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_004a:  ldloc.0 
+	IL_004b:  ret 
+    } // end of method AssemblyReferenceBase::get_CopyLocal
 
-	  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
+    // method line 479
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsSystem ()  cil managed 
+    {
+        // Method begins at RVA 0x52bc
+	// 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_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_000e:  nop 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stloc.1 
+	IL_0011:  br IL_004a
 
-	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_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_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_004a:  ldloc.1 
+	IL_004b:  ret 
+    } // end of method AssemblyReferenceBase::get_IsSystem
 
-	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
+    // method line 480
+    .method public virtual hidebysig 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x5314
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyReferenceBase::GetPrimaryOutputFile
 
-    // method line 515
-    .method private hidebysig 
-           instance default string GetLibrarianOutputFile (string intermediateDir)  cil managed 
+    // method line 481
+    .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 0x127b0
-	// Code size 138 (0x8a)
-	.maxstack 4
+        // Method begins at RVA 0x5330
+	// Code size 25 (0x19)
+	.maxstack 3
 	.locals init (
-		string	V_0,
-		string	V_1)
+		string	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_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0018
 
-	IL_0011:  nop 
-	IL_0012:  ldnull 
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0088
+	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
 
-	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
+    // method line 482
+    .method public virtual hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x5358
+	// 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
 
-	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_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_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_0049:  ldloc.1 
+	IL_004a:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_004f:  brtrue IL_0084
 
-	IL_0088:  ldloc.0 
-	IL_0089:  ret 
-    } // end of method VcProjectConfiguration::GetLibrarianOutputFile
+	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
 
-    // method line 516
-    .method private hidebysig 
-           instance default string GetLinkerOutputFile ()  cil managed 
+	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 483
+    .method public virtual hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12848
-	// Code size 443 (0x1bb)
-	.maxstack 5
+        // Method begins at RVA 0x53fc
+	// Code size 41 (0x29)
+	.maxstack 2
 	.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)
+		valuetype [mscorlib]System.DateTime	V_1)
 	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_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brtrue IL_001a
 
-	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_000e:  nop 
+	IL_000f:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_0027
 
-	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_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_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_0027:  ldloc.1 
+	IL_0028:  ret 
+    } // end of method AssemblyReferenceBase::GetTimestamp
 
-	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
+    // method line 484
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project)  cil managed 
+    {
+        // Method begins at RVA 0x5434
+	// Code size 28 (0x1c)
+	.maxstack 4
+	.locals init (
+		class NAnt.VSNet.ProjectReferenceBase	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_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_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method AssemblyReferenceBase::CreateProjectReference
 
-	IL_00ba:  nop 
-	IL_00bb:  ldnull 
-	IL_00bc:  stloc.s 4
-	IL_00be:  br IL_01b8
+    // method line 485
+    .method family virtual hidebysig newslot abstract 
+           instance default string ResolveAssemblyReference ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method AssemblyReferenceBase::ResolveAssemblyReference
 
-	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 486
+    .method family hidebysig 
+           instance default string ResolveFromFolderList (class [System]System.Collections.Specialized.StringCollection folderList, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x545c
+	// 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_00da:  ldloc.s 6
-	IL_00dc:  ldc.i4.2 
-	IL_00dd:  beq IL_00f3
+	  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_00e2:  br IL_00ff
+	    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_00e7:  ldstr ".exe"
-	IL_00ec:  stloc.s 5
-	IL_00ee:  br IL_00ff
+	    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
 
-	IL_00f3:  ldstr ".dll"
-	IL_00f8:  stloc.s 5
-	IL_00fa:  br IL_00ff
+	  } // 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
 
-	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
+	  } // 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_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_00e7:  leave IL_0102
 
-	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
+	} // 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_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_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_01b8:  ldloc.s 4
-	IL_01ba:  ret 
-    } // end of method VcProjectConfiguration::GetLinkerOutputFile
+	IL_0109:  ldloc.3 
+	IL_010a:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromFolderList
 
-    // method line 517
-    .method private static hidebysig 
-           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
+    // method line 487
+    .method family hidebysig 
+           instance default string ResolveFromFramework (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x12a10
-	// Code size 58 (0x3a)
+        // Method begins at RVA 0x5590
+	// Code size 52 (0x34)
 	.maxstack 2
 	.locals init (
 		string	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1,
-		string	V_2)
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  brfalse IL_0031
+	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_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_0023:  nop 
+	IL_0024:  ldloc.0 
+	IL_0025:  stloc.1 
+	IL_0026:  br IL_0032
 
-	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_002b:  ldnull 
+	IL_002c:  stloc.1 
+	IL_002d:  br IL_0032
 
-	IL_0038:  ldloc.2 
-	IL_0039:  ret 
-    } // end of method VcProjectConfiguration::GetXmlAttributeValue
+	IL_0032:  ldloc.1 
+	IL_0033:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromFramework
 
-	.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 ()
+    // method line 488
+    .method family hidebysig 
+           instance default string ResolveFromRelativePath (string relativePath)  cil managed 
+    {
+        // Method begins at RVA 0x55d0
+	// Code size 105 (0x69)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.PathTooLongException	V_2)
+	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_0067:  ldloc.1 
+	IL_0068:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromRelativePath
+
+    // method line 489
+    .method family virtual hidebysig newslot 
+           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x5658
+	// 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
+
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromAssemblyFolders
+
+	.property instance bool IsPrivate ()
 	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RelativeOutputDir () 
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate () 
 	}
-	.property instance string IntermediateDir ()
+	.property instance bool IsPrivateSpecified ()
 	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_IntermediateDir () 
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified () 
 	}
-	.property instance string OutputPath ()
+	.property instance bool CopyLocal ()
 	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_OutputPath () 
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_CopyLocal () 
 	}
-	.property instance string ReferencesPath ()
+	.property instance bool IsSystem ()
 	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_ReferencesPath () 
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsSystem () 
 	}
-  .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
+  } // end of class NAnt.VSNet.AssemblyReferenceBase
+}
 
-  .class nested assembly auto ansi beforefieldinit LinkerConfig
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit WebDavClient
   	extends [mscorlib]System.Object
   {
-    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration _projectConfig
+    .field  private  string _webProjectBaseUrl
 
-    // method line 518
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
+    // method line 490
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System]System.Uri uriBase)  cil managed 
     {
-        // Method begins at RVA 0x12a56
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x12104
+	// 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:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_000e:  ret 
-    } // end of method LinkerConfig::.ctor
+	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 519
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ImportLibrary ()  cil managed 
+    // method line 491
+    .method public hidebysig 
+           instance default void UploadFile (string localFileName, string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x12a68
-	// Code size 185 (0xb9)
+        // Method begins at RVA 0x1211c
+	// Code size 276 (0x114)
 	.maxstack 4
 	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2)
+		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:  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_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 "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
 
-	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_0097:  nop 
+	    IL_0098:  leave IL_00ac
 
-	IL_004d:  nop 
-	IL_004e:  ldnull 
-	IL_004f:  stloc.2 
-	IL_0050:  br IL_00b7
+	  } // end .try 0
+	  finally  { // 0
+	    IL_009d:  ldloc.s 5
+	    IL_009f:  brfalse IL_00ab
 
-	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_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
 
-	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
+	} // end .try 1
+	finally  { // 1
+	  IL_00b2:  ldloc.s 4
+	  IL_00b4:  brfalse IL_00c0
 
-	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_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
 
-	IL_00b7:  ldloc.2 
-	IL_00b8:  ret 
-    } // end of method LinkerConfig::get_ImportLibrary
+	  } // end .try 2
+	  finally  { // 2
+	    IL_00d3:  ldloc.s 7
+	    IL_00d5:  brfalse IL_00e1
 
-    // method line 520
-    .method private hidebysig specialname 
-           instance default class NAnt.VSNet.VcProject get_Project ()  cil managed 
+	    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 492
+    .method public hidebysig 
+           instance default void DeleteFile (string localFileName, string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x12b30
-	// Code size 25 (0x19)
-	.maxstack 1
+        // Method begins at RVA 0x12270
+	// Code size 90 (0x5a)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.VcProject	V_0)
+		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 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_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
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method LinkerConfig::get_Project
+	} // end .try 0
+	finally  { // 0
+	  IL_004c:  ldloc.1 
+	  IL_004d:  brfalse IL_0058
 
-	.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
+	  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
 
-  } // end of class NAnt.VSNet.VcProjectConfiguration
+    // method line 493
+    .method public hidebysig 
+           instance default void DownloadFile (string localFileName, string remoteFileName)  cil managed 
+    {
+        // Method begins at RVA 0x122e8
+	// 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_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
+
+	    IL_00ae:  nop 
+	    IL_00af:  leave IL_00c3
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00b4:  ldloc.s 5
+	    IL_00b6:  brfalse IL_00c2
+
+	    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
+
+	} // 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 494
+    .method public hidebysig 
+           instance default string GetFileContents (string remoteFileName)  cil managed 
+    {
+        // Method begins at RVA 0x123ec
+	// 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
+
+	} // end .try 0
+	finally  { // 0
+	  IL_005c:  ldloc.1 
+	  IL_005d:  brfalse IL_0068
+
+	  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 495
+    .method public static hidebysig 
+           default string GetFileContentsStatic (string remoteFileName)  cil managed 
+    {
+        // Method begins at RVA 0x12474
+	// Code size 91 (0x5b)
+	.maxstack 2
+	.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:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(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 ManagedProjectReference
+  .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
 
-    // method line 521
+    // method line 496
     .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 0x12b58
+        // Method begins at RVA 0x124ec
 	// Code size 174 (0xae)
 	.maxstack 7
 	.locals init (
@@ -30533,7 +29229,7 @@
 	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_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 
@@ -30542,16 +29238,16 @@
 	IL_006b:  nop 
 	IL_006c:  ldarg.0 
 	IL_006d:  ldc.i4.1 
-	IL_006e:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
+	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.ManagedProjectReference::_isPrivate
+	IL_007f:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivate
 	IL_0084:  nop 
 	IL_0085:  ldarg.s 4
 	IL_0087:  ldarg.1 
-	IL_0088:  ldstr "Project"
+	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 
@@ -30563,15 +29259,15 @@
 	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_00a8:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
 	IL_00ad:  ret 
-    } // end of method ManagedProjectReference::.ctor
+    } // end of method VcProjectReference::.ctor
 
-    // method line 522
+    // method line 497
     .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 0x12c12
+        // Method begins at RVA 0x125a6
 	// Code size 37 (0x25)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -30582,938 +29278,816 @@
 	IL_000d:  nop 
 	IL_000e:  ldarg.0 
 	IL_000f:  ldarg.1 
-	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
+	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.ManagedProjectReference::_isPrivateSpecified
+	IL_0017:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
 	IL_001c:  ldarg.0 
 	IL_001d:  ldarg.s 4
-	IL_001f:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_001f:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivate
 	IL_0024:  ret 
-    } // end of method ManagedProjectReference::.ctor
+    } // end of method VcProjectReference::.ctor
 
-    // method line 523
+    // method line 498
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
+    {
+        // Method begins at RVA 0x125cc
+	// 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
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectReference::IsManaged
+
+    // method line 499
     .method public virtual hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x12c38
+        // Method begins at RVA 0x125f0
 	// 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_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 ManagedProjectReference::get_Project
+    } // end of method VcProjectReference::get_Project
 
-    // method line 524
+    // method line 500
     .method family virtual hidebysig specialname 
            instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0x12c54
+        // Method begins at RVA 0x1260c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivate
 	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 VcProjectReference::get_IsPrivate
 
-    // method line 525
+    // method line 501
     .method family virtual hidebysig specialname 
            instance default bool get_IsPrivateSpecified ()  cil managed 
     {
-        // Method begins at RVA 0x12c70
+        // Method begins at RVA 0x12628
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedProjectReference::get_IsPrivateSpecified
-
-    // method line 526
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x12c8c
-	// 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 ManagedProjectReference::IsManaged
+    } // end of method VcProjectReference::get_IsPrivateSpecified
 
 	.property instance class NAnt.VSNet.ProjectBase Project ()
 	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::get_Project () 
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::get_Project () 
 	}
 	.property instance bool IsPrivate ()
 	{
-		.get instance default bool NAnt.VSNet.ManagedProjectReference::get_IsPrivate () 
+		.get instance default bool NAnt.VSNet.VcProjectReference::get_IsPrivate () 
 	}
 	.property instance bool IsPrivateSpecified ()
 	{
-		.get instance default bool NAnt.VSNet.ManagedProjectReference::get_IsPrivateSpecified () 
+		.get instance default bool NAnt.VSNet.VcProjectReference::get_IsPrivateSpecified () 
 	}
-  } // end of class NAnt.VSNet.ManagedProjectReference
+  } // end of class NAnt.VSNet.VcProjectReference
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi sealed beforefieldinit ConfigurationMap
+  .class public auto ansi abstract beforefieldinit ReferenceBase
   	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
+  {
+    .field  private  class NAnt.VSNet.ProjectBase _parent
+    .field  private  class NAnt.VSNet.ReferencesResolver _referencesResolver
 
-    // method line 527
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 502
+    .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 0x12ca2
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x4e81
+	// 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:  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_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 528
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity)  cil managed 
+    // method line 503
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default bool get_CopyLocal ()  cil managed 
     {
-        // Method begins at RVA 0x12cb6
-	// 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 begins at RVA 0x0
+    } // end of method ReferenceBase::get_CopyLocal
 
-    // method line 529
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+    // method line 504
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default bool get_IsSystem ()  cil managed 
     {
-        // Method begins at RVA 0x12ccc
-	// 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
+        // Method begins at RVA 0x0
+    } // end of method ReferenceBase::get_IsSystem
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::get_InnerHash
+    // method line 505
+    .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
 
-    // method line 530
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ConfigurationMapEnumerator GetEnumerator ()  cil managed 
+    // method line 506
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Parent ()  cil managed 
     {
-        // Method begins at RVA 0x12ce8
+        // Method begins at RVA 0x4e98
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ConfigurationMapEnumerator	V_0)
+		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VSNet.ConfigurationMapEnumerator::'.ctor'(class NAnt.VSNet.ConfigurationMap)
+	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 ConfigurationMap::GetEnumerator
+    } // end of method ReferenceBase::get_Parent
 
-    // method line 531
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    // method line 507
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
     {
-        // Method begins at RVA 0x12d04
-	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x4eb4
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
+		class NAnt.VSNet.Tasks.SolutionTask	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_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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.GetEnumerator
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ReferenceBase::get_SolutionTask
 
-    // method line 532
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 508
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
     {
-        // Method begins at RVA 0x12d20
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+        // Method begins at RVA 0x4ed4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+		class NAnt.VSNet.ReferencesResolver	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
+	IL_0002:  ldfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::_referencesResolver
 	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 533
-    .method public hidebysig 
-           instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
-    {
-        // Method begins at RVA 0x12d3b
-	// 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 534
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
-    {
-        // Method begins at RVA 0x12d4a
-	.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
+    } // end of method ReferenceBase::get_ReferencesResolver
 
-    // method line 535
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
+    // method line 509
+    .method public virtual hidebysig newslot abstract 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12d5c
-	// 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 begins at RVA 0x0
+    } // end of method ReferenceBase::GetPrimaryOutputFile
 
-    // method line 536
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+    // method line 510
+    .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 0x12d80
-	.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 begins at RVA 0x0
+    } // end of method ReferenceBase::GetOutputFiles
 
-    // method line 537
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+    // method line 511
+    .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 0x12da1
-	// 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 begins at RVA 0x0
+    } // end of method ReferenceBase::GetAssemblyReferences
 
-    // method line 538
-    .method public hidebysig 
-           instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+    // method line 512
+    .method public virtual hidebysig newslot abstract 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12daf
-	// 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 begins at RVA 0x0
+    } // end of method ReferenceBase::GetTimestamp
 
-    // method line 539
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    // method line 513
+    .method public virtual hidebysig newslot abstract 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12dbf
-	.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 begins at RVA 0x0
+    } // end of method ReferenceBase::IsManaged
 
-    // method line 540
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
+    // method line 514
+    .method family hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetFileTimestamp (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x12dd4
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x4ef0
+	// Code size 38 (0x26)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.DateTime	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
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_0018
 
-    // method line 541
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Item (class NAnt.VSNet.Configuration key)  cil managed 
-    {
-        // Method begins at RVA 0x12df4
-	// 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_000c:  nop 
+	IL_000d:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
 	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0013:  br IL_0024
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationMap::get_Item
+	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
 
-    // method line 542
-    .method public hidebysig specialname 
-           instance default void set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+	IL_0024:  ldloc.0 
+	IL_0025:  ret 
+    } // end of method ReferenceBase::GetFileTimestamp
+
+    // method line 515
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
     {
-        // Method begins at RVA 0x12e1a
+        // Method begins at RVA 0x4f22
 	// 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_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 [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	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 ConfigurationMap::set_Item
+    } // end of method ReferenceBase::Log
 
-    // method line 543
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    // method line 516
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
-        // Method begins at RVA 0x12e2c
-	.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
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 544
-    .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 0x12e4d
-	.override class [mscorlib]System.Collections.IDictionary::set_Item
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x4f32
+	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
+	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:  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_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
 
-    // method line 545
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    // method line 517
+    .method public static hidebysig 
+           default void GetRelatedFiles (string file, class [mscorlib]System.Collections.Hashtable relatedFiles)  cil managed 
     {
-        // Method begins at RVA 0x12e64
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x4f44
+	// Code size 251 (0xfb)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		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:  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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_Values
+	IL_0013:  ldloc.0 
+	IL_0014:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0019:  brtrue IL_0024
 
-    // method line 546
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
-    {
-        // Method begins at RVA 0x12e84
-	// 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_001e:  nop 
+	IL_001f:  br IL_00fa
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_Keys
+	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
 
-    // method line 547
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
-    {
-        // Method begins at RVA 0x12ea4
-	// 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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_IsFixedSize
+	IL_007a:  nop 
+	IL_007b:  br IL_00ea
 
-    // method line 548
-    .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 0x12ec4
-	.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
+	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
 
-    // method line 549
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsSynchronized ()  cil managed 
-    {
-        // Method begins at RVA 0x12ed4
-	// 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_00a3:  ldloc.s 5
+	IL_00a5:  ldstr ".xml"
+	IL_00aa:  call bool string::op_Inequality(string, string)
+	IL_00af:  brfalse IL_00dc
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_IsSynchronized
+	IL_00b4:  ldloc.s 5
+	IL_00b6:  ldstr ".pdb"
+	IL_00bb:  call bool string::op_Inequality(string, string)
+	IL_00c0:  brfalse IL_00dc
 
-    // method line 550
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
-    {
-        // Method begins at RVA 0x12ef4
-	// 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_00c5:  ldloc.s 5
+	IL_00c7:  ldstr ".mdb"
+	IL_00cc:  call bool string::op_Inequality(string, string)
+	IL_00d1:  brfalse IL_00dc
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_Count
+	IL_00d6:  nop 
+	IL_00d7:  br IL_00ea
 
-    // method line 551
-    .method public final virtual hidebysig newslot specialname 
-           instance default object get_SyncRoot ()  cil managed 
-    {
-        // Method begins at RVA 0x12f14
-	// 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_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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_SyncRoot
+	IL_00fa:  ret 
+    } // end of method ReferenceBase::GetRelatedFiles
 
-	.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 ()
+	.property instance bool CopyLocal ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationMap::get_Values () 
+		.get instance default bool NAnt.VSNet.ReferenceBase::get_CopyLocal () 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Keys ()
+	.property instance bool IsSystem ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationMap::get_Keys () 
+		.get instance default bool NAnt.VSNet.ReferenceBase::get_IsSystem () 
 	}
-	.property instance bool IsFixedSize ()
+	.property instance string Name ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsFixedSize () 
+		.get instance default string NAnt.VSNet.ReferenceBase::get_Name () 
 	}
-	.property instance bool IsSynchronized ()
+	.property instance class NAnt.VSNet.ProjectBase Parent ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsSynchronized () 
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::get_Parent () 
 	}
-	.property instance int32 Count ()
+	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
 	{
-		.get instance default int32 NAnt.VSNet.ConfigurationMap::get_Count () 
+		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ReferenceBase::get_SolutionTask () 
 	}
-	.property instance object SyncRoot ()
+	.property instance class NAnt.VSNet.ReferencesResolver ReferencesResolver ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationMap::get_SyncRoot () 
+		.get instance default class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::get_ReferencesResolver () 
 	}
-  } // end of class NAnt.VSNet.ConfigurationMap
+  } // end of class NAnt.VSNet.ReferenceBase
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit ConfigurationMapEnumerator
+  .class private auto ansi beforefieldinit VBProjectProvider
   	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
-    .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
+  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 552
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ConfigurationMap enumerable)  cil managed 
+    // method line 518
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x12f34
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x12643
+	// 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.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_0006:  ret 
+    } // end of method VBProjectProvider::.ctor
 
-    // method line 553
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+    // method line 519
+    .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 0x12f50
-	// Code size 25 (0x19)
-	.maxstack 1
+        // Method begins at RVA 0x1264c
+	// Code size 52 (0x34)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
+		int32	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_0001:  ldarg.1 
+	IL_0002:  ldstr ".vbproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Key
+	IL_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
 
-    // method line 554
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+	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 520
+    .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 0x12f78
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
+        // Method begins at RVA 0x1268c
+	// 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.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_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method VBProjectProvider::GetInstance
+
+    // method line 521
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x126b4
 	// 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.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
+	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 ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key
+    } // end of method VBProjectProvider::LoadGuid
 
-    // method line 555
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
+  } // end of class NAnt.VSNet.VBProjectProvider
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit CSharpProject
+  	extends NAnt.VSNet.ManagedProjectBase
+  {
+
+    // method line 522
+    .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 0x12f94
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x126d0
+	// 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 523
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0x126f4
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
+		valuetype NAnt.VSNet.ProjectType	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_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Value
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method CSharpProject::get_Type
 
-    // method line 556
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    // method line 524
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x12fbc
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0x1270a
+	// Code size 46 (0x2e)
+	.maxstack 8
 	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_0001:  ldarg.1 
+	IL_0002:  call bool class NAnt.VSNet.CSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  brtrue IL_002d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value
+	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 557
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+    // method line 525
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x12fd8
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x1273c
+	// Code size 25 (0x19)
 	.maxstack 2
 	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
+		valuetype NAnt.VSNet.ProductVersion	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_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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Entry
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method CSharpProject::DetermineProductVersion
 
-    // method line 558
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
+    // method line 526
+    .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 0x12ffe
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x12764
+	// 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:  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:  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
 
-    // method line 559
-    .method public final virtual hidebysig newslot 
-           instance default bool MoveNext ()  cil managed 
+	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 527
+    .method family virtual hidebysig specialname 
+           instance default string get_FileExtension ()  cil managed 
     {
-        // Method begins at RVA 0x1300c
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x127fc
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	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_0001:  ldstr ".cs"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMapEnumerator::MoveNext
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method CSharpProject::get_FileExtension
 
-    // method line 560
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 528
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x1302c
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x12818
+	// Code size 25 (0x19)
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		valuetype NAnt.VSNet.ProjectLocation	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:  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_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method CSharpProject::DetermineProjectLocation
 
-    // method line 561
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationMapEntry get_Current ()  cil managed 
+    // method line 529
+    .method public static hidebysig 
+           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x13048
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x12840
+	// Code size 102 (0x66)
 	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ConfigurationMapEntry	V_0)
+		bool	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1)
 	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:  brtrue IL_000f
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Current
+	IL_0007:  nop 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0064
 
-	.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
-}
+	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
 
-.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
+	IL_0024:  nop 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_0064
 
-    // method line 562
-    .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 0x1306e
-	// 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
+	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
 
-    // method line 563
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0x13088
-	// 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_003e:  nop 
+	IL_003f:  ldc.i4.0 
+	IL_0040:  stloc.0 
+	IL_0041:  br IL_0064
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEntry::get_Key
+	.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
 
-    // method line 564
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0x130a4
-	// 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
+	} // 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
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEntry::get_Value
+	} // end handler 0
+	IL_005d:  ldc.i4.1 
+	IL_005e:  stloc.0 
+	IL_005f:  br IL_0064
 
-	.property instance class NAnt.VSNet.Configuration Key ()
+	IL_0064:  ldloc.0 
+	IL_0065:  ret 
+    } // end of method CSharpProject::IsSupported
+
+	.property instance valuetype NAnt.VSNet.ProjectType Type ()
 	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::get_Key () 
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.CSharpProject::get_Type () 
 	}
-	.property instance class NAnt.VSNet.Configuration Value ()
+	.property instance string FileExtension ()
 	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::get_Value () 
+		.get instance default string NAnt.VSNet.CSharpProject::get_FileExtension () 
 	}
-  } // end of class NAnt.VSNet.ConfigurationMapEntry
+  } // end of class NAnt.VSNet.CSharpProject
 }
 
 .namespace NAnt.VSNet
@@ -31525,11 +30099,11 @@
 
     .field  private initonly  class [mscorlib]System.Collections.Hashtable _innerHash
 
-    // method line 565
+    // method line 530
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x130bf
+        // Method begins at RVA 0x128c4
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -31541,11 +30115,11 @@
 	IL_0012:  ret 
     } // end of method ConfigurationDictionary::.ctor
 
-    // method line 566
+    // method line 531
     .method assembly hidebysig specialname 
            instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
     {
-        // Method begins at RVA 0x130d4
+        // Method begins at RVA 0x128d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -31560,11 +30134,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::get_InnerHash
 
-    // method line 567
+    // method line 532
     .method public hidebysig 
            instance default class NAnt.VSNet.ConfigurationDictionaryEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x130f0
+        // Method begins at RVA 0x128f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -31579,11 +30153,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::GetEnumerator
 
-    // method line 568
+    // method line 533
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x1310c
+        // Method begins at RVA 0x12910
 	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -31599,11 +30173,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IDictionary.GetEnumerator
 
-    // method line 569
+    // method line 534
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x13128
+        // Method begins at RVA 0x1292c
 	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -31619,11 +30193,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 570
+    // method line 535
     .method public hidebysig 
            instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
     {
-        // Method begins at RVA 0x13143
+        // Method begins at RVA 0x12947
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31634,11 +30208,11 @@
 	IL_000d:  ret 
     } // end of method ConfigurationDictionary::Remove
 
-    // method line 571
+    // method line 536
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
     {
-        // Method begins at RVA 0x13152
+        // Method begins at RVA 0x12956
 	.override class [mscorlib]System.Collections.IDictionary::Remove
 	// Code size 14 (0xe)
 	.maxstack 8
@@ -31650,11 +30224,11 @@
 	IL_000d:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IDictionary.Remove
 
-    // method line 572
+    // method line 537
     .method public hidebysig 
            instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
     {
-        // Method begins at RVA 0x13164
+        // Method begins at RVA 0x12968
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -31671,11 +30245,11 @@
 	IL_0014:  ret 
     } // end of method ConfigurationDictionary::Contains
 
-    // method line 573
+    // method line 538
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
     {
-        // Method begins at RVA 0x13188
+        // Method begins at RVA 0x1298c
 	.override class [mscorlib]System.Collections.IDictionary::Contains
 	// Code size 21 (0x15)
 	.maxstack 2
@@ -31693,11 +30267,11 @@
 	IL_0014:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IDictionary.Contains
 
-    // method line 574
+    // method line 539
     .method public final virtual hidebysig newslot 
            instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0x131a9
+        // Method begins at RVA 0x129ad
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31707,11 +30281,11 @@
 	IL_000c:  ret 
     } // end of method ConfigurationDictionary::Clear
 
-    // method line 575
+    // method line 540
     .method public hidebysig 
            instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x131b7
+        // Method begins at RVA 0x129bb
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31723,11 +30297,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::Add
 
-    // method line 576
+    // method line 541
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x131c7
+        // Method begins at RVA 0x129cb
 	.override class [mscorlib]System.Collections.IDictionary::Add
 	// Code size 20 (0x14)
 	.maxstack 8
@@ -31741,11 +30315,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IDictionary.Add
 
-    // method line 577
+    // method line 542
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x131dc
+        // Method begins at RVA 0x129e0
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -31761,11 +30335,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_IsReadOnly
 
-    // method line 578
+    // method line 543
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationBase get_Item (class NAnt.VSNet.Configuration key)  cil managed 
     {
-        // Method begins at RVA 0x131fc
+        // Method begins at RVA 0x12a00
 	// Code size 168 (0xa8)
 	.maxstack 4
 	.locals init (
@@ -31847,11 +30421,11 @@
 	IL_00a7:  ret 
     } // end of method ConfigurationDictionary::get_Item
 
-    // method line 579
+    // method line 544
     .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 0x132c0
+        // Method begins at RVA 0x12ac4
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -31863,11 +30437,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::set_Item
 
-    // method line 580
+    // method line 545
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
     {
-        // Method begins at RVA 0x132d0
+        // Method begins at RVA 0x12ad4
 	.override class [mscorlib]System.Collections.IDictionary::get_Item
 	// Code size 21 (0x15)
 	.maxstack 2
@@ -31885,11 +30459,11 @@
 	IL_0014:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IDictionary.get_Item
 
-    // method line 581
+    // method line 546
     .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 0x132f1
+        // Method begins at RVA 0x12af5
 	.override class [mscorlib]System.Collections.IDictionary::set_Item
 	// Code size 20 (0x14)
 	.maxstack 8
@@ -31903,11 +30477,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::System.Collections.IDictionary.set_Item
 
-    // method line 582
+    // method line 547
     .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
     {
-        // Method begins at RVA 0x13308
+        // Method begins at RVA 0x12b0c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -31923,11 +30497,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_Values
 
-    // method line 583
+    // method line 548
     .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
     {
-        // Method begins at RVA 0x13328
+        // Method begins at RVA 0x12b2c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -31943,11 +30517,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_Keys
 
-    // method line 584
+    // method line 549
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0x13348
+        // Method begins at RVA 0x12b4c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -31963,11 +30537,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_IsFixedSize
 
-    // method line 585
+    // method line 550
     .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 0x13368
+        // Method begins at RVA 0x12b6c
 	.override class [mscorlib]System.Collections.ICollection::CopyTo
 	// Code size 15 (0xf)
 	.maxstack 8
@@ -31980,11 +30554,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionary::System.Collections.ICollection.CopyTo
 
-    // method line 586
+    // method line 551
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x13378
+        // Method begins at RVA 0x12b7c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -32000,11 +30574,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_IsSynchronized
 
-    // method line 587
+    // method line 552
     .method public final virtual hidebysig newslot specialname 
            instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0x13398
+        // Method begins at RVA 0x12b9c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -32020,11 +30594,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_Count
 
-    // method line 588
+    // method line 553
     .method public final virtual hidebysig newslot specialname 
            instance default object get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0x133b8
+        // Method begins at RVA 0x12bbc
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -32040,11 +30614,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionary::get_SyncRoot
 
-    // method line 589
+    // method line 554
     .method public hidebysig 
            instance default bool ContainsKey (class NAnt.VSNet.Configuration key)  cil managed 
     {
-        // Method begins at RVA 0x133d8
+        // Method begins at RVA 0x12bdc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -32061,11 +30635,11 @@
 	IL_0014:  ret 
     } // end of method ConfigurationDictionary::ContainsKey
 
-    // method line 590
+    // method line 555
     .method public hidebysig 
            instance default bool ContainsValue (class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x133fc
+        // Method begins at RVA 0x12c00
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -32134,11 +30708,11 @@
   	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
     .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
 
-    // method line 591
+    // method line 556
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ConfigurationDictionary enumerable)  cil managed 
     {
-        // Method begins at RVA 0x1341d
+        // Method begins at RVA 0x12c21
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -32152,11 +30726,11 @@
 	IL_0018:  ret 
     } // end of method ConfigurationDictionaryEnumerator::.ctor
 
-    // method line 592
+    // method line 557
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x13438
+        // Method begins at RVA 0x12c3c
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -32173,11 +30747,11 @@
 	IL_0018:  ret 
     } // end of method ConfigurationDictionaryEnumerator::get_Key
 
-    // method line 593
+    // method line 558
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x13460
+        // Method begins at RVA 0x12c64
 	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -32193,11 +30767,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
 
-    // method line 594
+    // method line 559
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationBase get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x1347c
+        // Method begins at RVA 0x12c80
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -32214,11 +30788,11 @@
 	IL_0018:  ret 
     } // end of method ConfigurationDictionaryEnumerator::get_Value
 
-    // method line 595
+    // method line 560
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x134a4
+        // Method begins at RVA 0x12ca8
 	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -32234,11 +30808,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
 
-    // method line 596
+    // method line 561
     .method public final virtual hidebysig newslot specialname 
            instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
     {
-        // Method begins at RVA 0x134c0
+        // Method begins at RVA 0x12cc4
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -32256,11 +30830,11 @@
 	IL_0019:  ret 
     } // end of method ConfigurationDictionaryEnumerator::get_Entry
 
-    // method line 597
+    // method line 562
     .method public final virtual hidebysig newslot 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x134e6
+        // Method begins at RVA 0x12cea
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -32270,11 +30844,11 @@
 	IL_000c:  ret 
     } // end of method ConfigurationDictionaryEnumerator::Reset
 
-    // method line 598
+    // method line 563
     .method public final virtual hidebysig newslot 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x134f4
+        // Method begins at RVA 0x12cf8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -32290,11 +30864,11 @@
 	IL_0013:  ret 
     } // end of method ConfigurationDictionaryEnumerator::MoveNext
 
-    // method line 599
+    // method line 564
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x13514
+        // Method begins at RVA 0x12d18
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -32310,11 +30884,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionaryEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 600
+    // method line 565
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationDictionaryEntry get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x13530
+        // Method begins at RVA 0x12d34
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -32371,11 +30945,11 @@
     .field  private initonly  class NAnt.VSNet.Configuration _name
     .field  private initonly  class NAnt.VSNet.ConfigurationBase _config
 
-    // method line 601
+    // method line 566
     .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 0x13556
+        // Method begins at RVA 0x12d5a
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -32390,11 +30964,11 @@
 	IL_0015:  ret 
     } // end of method ConfigurationDictionaryEntry::.ctor
 
-    // method line 602
+    // method line 567
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Configuration get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x13570
+        // Method begins at RVA 0x12d74
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -32409,11 +30983,11 @@
 	IL_000e:  ret 
     } // end of method ConfigurationDictionaryEntry::get_Name
 
-    // method line 603
+    // method line 568
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationBase get_Config ()  cil managed 
     {
-        // Method begins at RVA 0x1358c
+        // Method begins at RVA 0x12d90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -32449,11 +31023,11 @@
     .field  private initonly  string _wrapperAssembly
     .field  private initonly  string _primaryInteropAssembly
 
-    // method line 604
+    // method line 569
     .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 0x135a8
+        // Method begins at RVA 0x12dac
 	// Code size 150 (0x96)
 	.maxstack 5
 	.locals init (
@@ -32510,11 +31084,11 @@
 	IL_0095:  ret 
     } // end of method VcWrapperReference::.ctor
 
-    // method line 605
+    // method line 570
     .method public virtual hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x1364c
+        // Method begins at RVA 0x12e50
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -32529,11 +31103,11 @@
 	IL_000e:  ret 
     } // end of method VcWrapperReference::get_Name
 
-    // method line 606
+    // method line 571
     .method public virtual hidebysig specialname 
            instance default string get_WrapperTool ()  cil managed 
     {
-        // Method begins at RVA 0x13668
+        // Method begins at RVA 0x12e6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -32548,11 +31122,11 @@
 	IL_000e:  ret 
     } // end of method VcWrapperReference::get_WrapperTool
 
-    // method line 607
+    // method line 572
     .method public virtual hidebysig specialname 
            instance default string get_WrapperAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x13684
+        // Method begins at RVA 0x12e88
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -32567,11 +31141,11 @@
 	IL_000e:  ret 
     } // end of method VcWrapperReference::get_WrapperAssembly
 
-    // method line 608
+    // method line 573
     .method family virtual hidebysig specialname 
            instance default string get_PrimaryInteropAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x136a0
+        // Method begins at RVA 0x12ea4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -32586,11 +31160,11 @@
 	IL_000e:  ret 
     } // end of method VcWrapperReference::get_PrimaryInteropAssembly
 
-    // method line 609
+    // method line 574
     .method family virtual hidebysig specialname 
            instance default string get_TypeLibVersion ()  cil managed 
     {
-        // Method begins at RVA 0x136bc
+        // Method begins at RVA 0x12ec0
 	// Code size 111 (0x6f)
 	.maxstack 4
 	.locals init (
@@ -32638,11 +31212,11 @@
 	IL_006e:  ret 
     } // end of method VcWrapperReference::get_TypeLibVersion
 
-    // method line 610
+    // method line 575
     .method family virtual hidebysig specialname 
            instance default string get_TypeLibGuid ()  cil managed 
     {
-        // Method begins at RVA 0x13738
+        // Method begins at RVA 0x12f3c
 	// Code size 55 (0x37)
 	.maxstack 2
 	.locals init (
@@ -32671,11 +31245,11 @@
 	IL_0036:  ret 
     } // end of method VcWrapperReference::get_TypeLibGuid
 
-    // method line 611
+    // method line 576
     .method family virtual hidebysig specialname 
            instance default string get_TypeLibLocale ()  cil managed 
     {
-        // Method begins at RVA 0x1377c
+        // Method begins at RVA 0x12f80
 	// Code size 73 (0x49)
 	.maxstack 2
 	.locals init (
@@ -32711,11 +31285,11 @@
 	IL_0048:  ret 
     } // end of method VcWrapperReference::get_TypeLibLocale
 
-    // method line 612
+    // method line 577
     .method family virtual hidebysig 
            instance default void ImportTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x137d4
+        // Method begins at RVA 0x12fd8
 	// Code size 298 (0x12a)
 	.maxstack 2
 	.locals init (
@@ -32809,2202 +31383,1196 @@
 	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 613
-    .method family virtual hidebysig 
-           instance default void ImportActiveXLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x13928
-	// 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 CSharpProject
-  	extends NAnt.VSNet.ManagedProjectBase
-  {
-
-    // method line 614
-    .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 0x13a2c
-	// 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 615
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x13a50
-	// 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 616
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x13a66
-	// 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 617
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x13a98
-	// 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 618
-    .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 0x13ac0
-	// 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 619
-    .method family virtual hidebysig specialname 
-           instance default string get_FileExtension ()  cil managed 
-    {
-        // Method begins at RVA 0x13b58
-	// 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 620
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x13b74
-	// 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 621
-    .method public static hidebysig 
-           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x13b9c
-	// 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 VcArgumentMap
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Collections.Hashtable _htArgs
-
-    // method line 622
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x13c20
-	// 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
-
-    // method line 623
-    .method public hidebysig 
-           instance default void AddString (string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13c34
-	// 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
-
-    // method line 624
-    .method public hidebysig 
-           instance default void AddString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x13c40
-	// 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 625
-    .method public hidebysig 
-           instance default void AddString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13c4d
-	// 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
-
-    // method line 626
-    .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 0x13c63
-	// 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
-
-    // method line 627
-    .method public hidebysig 
-           instance default void AddLinkerString (string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13c7b
-	// 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
-
-    // method line 628
-    .method public hidebysig 
-           instance default void AddLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x13c87
-	// 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
-
-    // method line 629
-    .method public hidebysig 
-           instance default void AddLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13c94
-	// 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
-
-    // method line 630
-    .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 0x13caa
-	// 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
-
-    // method line 631
-    .method public hidebysig 
-           instance default void AddQuotedLinkerString (string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13cc2
-	// 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
-
-    // method line 632
-    .method public hidebysig 
-           instance default void AddQuotedLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x13cce
-	// 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
-
-    // method line 633
-    .method public hidebysig 
-           instance default void AddQuotedLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13cdb
-	// 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
-
-    // method line 634
-    .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 0x13cf1
-	// 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
-
-    // method line 635
-    .method public hidebysig 
-           instance default void AddBool (string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13d09
-	// 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
-
-    // method line 636
-    .method public hidebysig 
-           instance default void AddBool (string propName, string argName, string match)  cil managed 
-    {
-        // Method begins at RVA 0x13d15
-	// 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
-
-    // method line 637
-    .method public hidebysig 
-           instance default void AddBool (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x13d22
-	// 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
-
-    // method line 638
-    .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 0x13d38
-	// 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
-
-    // method line 639
-    .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 ) // ....
-
-        // Method begins at RVA 0x13d50
-	// 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
-
-    // method line 640
-    .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 ) // ....
-
-        // Method begins at RVA 0x13d5d
-	// 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
-
-    // method line 641
-    .method public hidebysig 
-           instance default string GetArgument (string propName, string propValue, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup useIgnoreGroup)  cil managed 
-    {
-        // Method begins at RVA 0x13d78
-	// 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_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_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_004e:  ldloc.1 
-	IL_004f:  ret 
-    } // end of method VcArgumentMap::GetArgument
-
-    // method line 642
-    .method public static hidebysig 
-           default class NAnt.VSNet.VcArgumentMap CreateCLArgumentMap ()  cil managed 
-    {
-        // Method begins at RVA 0x13dd4
-	// 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_0412:  ldloc.1 
-	IL_0413:  ret 
-    } // end of method VcArgumentMap::CreateCLArgumentMap
-
-    // method line 643
-    .method public static hidebysig 
-           default class NAnt.VSNet.VcArgumentMap CreateLinkerArgumentMap ()  cil managed 
-    {
-        // Method begins at RVA 0x141f4
-	// 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_00f3:  dup 
+	  IL_00f4:  stloc.s 4
+	  IL_00f6:  brfalse IL_0102
 
-	IL_02b3:  ldloc.1 
-	IL_02b4:  ret 
-    } // end of method VcArgumentMap::CreateLinkerArgumentMap
+	  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
 
-    // method line 644
-    .method public static hidebysig 
-           default class NAnt.VSNet.VcArgumentMap CreateMidlArgumentMap ()  cil managed 
+	} // 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 578
+    .method family virtual hidebysig 
+           instance default void ImportActiveXLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x144b8
-	// Code size 419 (0x1a3)
-	.maxstack 7
+        // Method begins at RVA 0x1312c
+	// Code size 232 (0xe8)
+	.maxstack 4
 	.locals init (
-		class NAnt.VSNet.VcArgumentMap	V_0,
-		class NAnt.VSNet.VcArgumentMap	V_1)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
+	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::'.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_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_01a1:  ldloc.1 
-	IL_01a2:  ret 
-    } // end of method VcArgumentMap::CreateMidlArgumentMap
+	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
 
-  .class nested private auto ansi abstract beforefieldinit VcArgument
+	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 ProjectSettings
   	extends [mscorlib]System.Object
   {
-    .field  private  string _name
-    .field  private  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup _group
+    .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 645
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    // method line 579
+    .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 0x14667
-	// Code size 22 (0x16)
-	.maxstack 8
+        // Method begins at RVA 0x13230
+	// 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.2 
-	IL_0009:  stfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
+	IL_0008:  ldarg.3 
+	IL_0009:  stfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::_project
 	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_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
 
-    // method line 646
+	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 580
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default string[] get_Settings ()  cil managed 
+    {
+        // Method begins at RVA 0x136ec
+	// 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 581
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ApplicationIcon ()  cil managed 
     {
-        // Method begins at RVA 0x14680
+        // Method begins at RVA 0x1371c
 	// 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.VSNet.VcArgumentMap/VcArgument::_name
+	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 VcArgument::get_Name
+    } // end of method ProjectSettings::get_ApplicationIcon
 
-    // method line 647
+    // method line 582
     .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.VcArgumentMap/ArgGroup get_Group ()  cil managed 
+           instance default string get_AssemblyName ()  cil managed 
     {
-        // Method begins at RVA 0x1469c
+        // Method begins at RVA 0x13738
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.VcArgumentMap/ArgGroup	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::_group
+	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 VcArgument::get_Group
-
-    // method line 648
-    .method assembly virtual hidebysig newslot abstract 
-           instance default string MapValue (string propValue)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method VcArgument::MapValue
+    } // end of method ProjectSettings::get_AssemblyName
 
-    // method line 649
-    .method family hidebysig 
-           instance default string FormatOption (string 'value')  cil managed 
+    // method line 583
+    .method public hidebysig specialname 
+           instance default string get_AssemblyOriginatorKeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x146b8
-	// Code size 40 (0x28)
-	.maxstack 2
+        // Method begins at RVA 0x13754
+	// 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:  brtrue IL_0014
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyOriginatorKeyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0026
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_AssemblyOriginatorKeyFile
 
-	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
+    // method line 584
+    .method public hidebysig specialname 
+           instance default string get_AssemblyKeyContainerName ()  cil managed 
+    {
+        // Method begins at RVA 0x13770
+	// 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_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method VcArgument::FormatOption
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_AssemblyKeyContainerName
 
-	.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
+    // method line 585
+    .method public hidebysig specialname 
+           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
+    {
+        // Method begins at RVA 0x1378c
+	// 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
 
-  .class nested private auto ansi beforefieldinit VcStringArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcArgument
-  {
-    .field  private  bool _ignoreEmptyValue
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectSettings::get_TemporaryFiles
 
-    // method line 650
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    // method line 586
+    .method public hidebysig specialname 
+           instance default string get_OutputFileName ()  cil managed 
     {
-        // Method begins at RVA 0x146ec
-	// 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 begins at RVA 0x137ac
+	// 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
 
-    // method line 651
-    .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 0x146f8
-	// 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
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ProjectSettings::get_OutputFileName
 
-    // method line 652
-    .method family hidebysig specialname 
-           instance default bool get_IgnoreEmptyValue ()  cil managed 
+    // method line 587
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ManagedOutputType get_OutputType ()  cil managed 
     {
-        // Method begins at RVA 0x1470c
+        // Method begins at RVA 0x137d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.VSNet.ManagedOutputType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcArgumentMap/VcStringArgument::_ignoreEmptyValue
+	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 VcStringArgument::get_IgnoreEmptyValue
+    } // end of method ProjectSettings::get_OutputType
 
-    // method line 653
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string propValue)  cil managed 
+    // method line 588
+    .method public hidebysig specialname 
+           instance default string get_OutputExtension ()  cil managed 
     {
-        // Method begins at RVA 0x14728
-	// Code size 46 (0x2e)
+        // Method begins at RVA 0x137f0
+	// Code size 57 (0x39)
 	.maxstack 2
 	.locals init (
-		string	V_0)
+		valuetype NAnt.VSNet.ManagedOutputType	V_0,
+		string	V_1)
 	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_000c:  ldarg.1 
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001f
-
-	IL_0017:  nop 
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_002c
-
-	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_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_002c:  ldloc.0 
-	IL_002d:  ret 
-    } // end of method VcStringArgument::MapValue
+	IL_0021:  ldstr ".dll"
+	IL_0026:  stloc.1 
+	IL_0027:  br IL_0037
 
-	.property instance bool IgnoreEmptyValue ()
-	{
-		.get instance default bool NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue () 
-	}
-  } // end of class VcStringArgument
+	IL_002c:  ldstr ".exe"
+	IL_0031:  stloc.1 
+	IL_0032:  br IL_0037
 
-  .class nested private auto ansi beforefieldinit LinkerStringArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
-  {
+	IL_0037:  ldloc.1 
+	IL_0038:  ret 
+    } // end of method ProjectSettings::get_OutputExtension
 
-    // method line 654
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    // method line 589
+    .method public hidebysig specialname 
+           instance default string get_RootNamespace ()  cil managed 
     {
-        // Method begins at RVA 0x14762
-	// 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
+        // Method begins at RVA 0x13838
+	// 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
 
-    // method line 655
-    .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 0x1476e
-	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_RootNamespace
 
-    // method line 656
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string 'value')  cil managed 
+    // method line 590
+    .method public hidebysig specialname 
+           instance default string get_Guid ()  cil managed 
     {
-        // Method begins at RVA 0x1477c
-	// Code size 80 (0x50)
-	.maxstack 2
+        // Method begins at RVA 0x13854
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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_000c:  ldarg.1 
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001f
-
-	IL_0017:  nop 
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_004e
-
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
-	IL_0025:  brtrue IL_0037
-
-	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_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_004e:  ldloc.0 
-	IL_004f:  ret 
-    } // end of method LinkerStringArgument::MapValue
-
-  } // end of class LinkerStringArgument
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_guid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-  .class nested private auto ansi beforefieldinit QuotedLinkerStringArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
-  {
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_Guid
 
-    // method line 657
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    // method line 591
+    .method public hidebysig specialname 
+           instance default string get_RunPostBuildEvent ()  cil managed 
     {
-        // Method begins at RVA 0x147d8
-	// 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 begins at RVA 0x13870
+	// 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
 
-    // method line 658
-    .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 0x147e4
-	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_RunPostBuildEvent
 
-    // method line 659
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string 'value')  cil managed 
+    // method line 592
+    .method public hidebysig specialname 
+           instance default string get_PreBuildEvent ()  cil managed 
     {
-        // Method begins at RVA 0x147f0
-	// Code size 80 (0x50)
-	.maxstack 2
+        // Method begins at RVA 0x1388c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.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_000c:  ldarg.1 
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001f
-
-	IL_0017:  nop 
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_004e
-
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
-	IL_0025:  brtrue IL_0037
-
-	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_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_004e:  ldloc.0 
-	IL_004f:  ret 
-    } // end of method QuotedLinkerStringArgument::MapValue
-
-  } // end of class QuotedLinkerStringArgument
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_preBuildEvent
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-  .class nested private auto ansi beforefieldinit VcBoolArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcArgument
-  {
-    .field  private  string _match
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_PreBuildEvent
 
-    // method line 660
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    // method line 593
+    .method public hidebysig specialname 
+           instance default string get_PostBuildEvent ()  cil managed 
     {
-        // Method begins at RVA 0x1484c
+        // Method begins at RVA 0x138a8
 	// 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
+	.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
 
-    // method line 661
-    .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 0x1485c
-	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_PostBuildEvent
 
-    // method line 662
-    .method public hidebysig specialname 
-           instance default string get_Match ()  cil managed 
+    // method line 594
+    .method private hidebysig specialname 
+           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x1487c
+        // Method begins at RVA 0x138c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ManagedProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
+	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 VcBoolArgument::get_Match
+    } // end of method ProjectSettings::get_Project
 
-    // method line 663
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string propValue)  cil managed 
+    // method line 595
+    .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 0x14898
-	// Code size 51 (0x33)
+        // Method begins at RVA 0x138e0
+	// Code size 204 (0xcc)
 	.maxstack 4
 	.locals init (
-		string	V_0)
+		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:  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_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:  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_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_002a:  ldnull 
-	IL_002b:  stloc.0 
-	IL_002c:  br IL_0031
+	IL_0055:  ldloc.1 
+	IL_0056:  ldstr "library"
+	IL_005b:  call bool string::op_Equality(string, string)
+	IL_0060:  brtrue IL_008a
 
-	IL_0031:  ldloc.0 
-	IL_0032:  ret 
-    } // end of method VcBoolArgument::MapValue
+	IL_0065:  ldloc.1 
+	IL_0066:  ldstr "exe"
+	IL_006b:  call bool string::op_Equality(string, string)
+	IL_0070:  brtrue IL_0091
 
-	.property instance string Match ()
+	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 596
+    .method public static hidebysig 
+           default string GetProjectGuid (string projectFile, class [System.Xml]System.Xml.XmlElement elemRoot)  cil managed 
+    {
+        // Method begins at RVA 0x139b8
+	// 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 597
+    .method public hidebysig 
+           instance default string GetTemporaryFilename (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x13a20
+	// 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.VcArgumentMap/VcBoolArgument::get_Match () 
+		.get instance default string[] NAnt.VSNet.ProjectSettings::get_Settings () 
 	}
-  } // end of class VcBoolArgument
+	.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
+}
 
-  .class nested private auto ansi beforefieldinit VcEnumArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcArgument
-  {
-    .field  private  string[] _values
+.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 664
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, string[] values)  cil managed 
+    // method line 598
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x148d7
-	// Code size 17 (0x11)
+        // Method begins at RVA 0x13a46
+	// 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.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
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method JSharpProjectProvider::.ctor
 
-    // method line 665
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string propValue)  cil managed 
+    // method line 599
+    .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 0x148ec
-	// Code size 90 (0x5a)
-	.maxstack 3
+        // Method begins at RVA 0x13a50
+	// Code size 52 (0x34)
+	.maxstack 2
 	.locals init (
-		int32	V_0,
-		string	V_1)
+		int32	V_0)
 	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_0001:  ldarg.1 
+	IL_0002:  ldstr ".vjsproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
 
-	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_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
 
-	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_0018:  ldarg.2 
+	IL_0019:  call bool class NAnt.VSNet.JSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_001e:  brfalse IL_002b
 
-	IL_003c:  nop 
-	IL_003d:  ldnull 
-	IL_003e:  stloc.1 
-	IL_003f:  br IL_0058
+	IL_0023:  ldc.i4.s 0x0a
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0032
 
-	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_002b:  ldc.i4.0 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
 
-	IL_0058:  ldloc.1 
-	IL_0059:  ret 
-    } // end of method VcEnumArgument::MapValue
+	IL_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method JSharpProjectProvider::IsSupported
 
-  } // end of class VcEnumArgument
+    // method line 600
+    .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 0x13a90
+	// 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
 
-  .class nested public auto ansi sealed ArgGroup
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method JSharpProjectProvider::GetInstance
 
-    .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)
+    // method line 601
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x13ab8
+	// 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
 
-  } // end of class ArgGroup
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JSharpProjectProvider::LoadGuid
 
-  } // end of class NAnt.VSNet.VcArgumentMap
+  } // end of class NAnt.VSNet.JSharpProjectProvider
 }
 
 .namespace NAnt.VSNet
@@ -35023,11 +32591,11 @@
     .field  private initonly  class [mscorlib]System.Collections.Hashtable _extraOutputFiles
     .field  private initonly  class NAnt.VSNet.ProjectBaseCollection _projectDependencies
 
-    // method line 666
+    // method line 602
     .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 0x5970
+        // Method begins at RVA 0x7960
 	// Code size 202 (0xca)
 	.maxstack 3
 	IL_0000:  ldarg.0 
@@ -35106,11 +32674,11 @@
 	IL_00c9:  ret 
     } // end of method ProjectBase::.ctor
 
-    // method line 667
+    // method line 603
     .method public hidebysig specialname 
            instance default valuetype NAnt.VSNet.ProductVersion get_ProductVersion ()  cil managed 
     {
-        // Method begins at RVA 0x5a48
+        // Method begins at RVA 0x7a38
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35125,46 +32693,46 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_ProductVersion
 
-    // method line 668
+    // method line 604
     .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 669
+    // method line 605
     .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 670
+    // method line 606
     .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 671
+    // method line 607
     .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 672
+    // method line 608
     .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 673
+    // method line 609
     .method public virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
     {
-        // Method begins at RVA 0x5a64
+        // Method begins at RVA 0x7a54
 	// Code size 154 (0x9a)
 	.maxstack 2
 	.locals init (
@@ -35229,25 +32797,25 @@
 	IL_0099:  ret 
     } // end of method ProjectBase::get_ObjectDir
 
-    // method line 674
+    // method line 610
     .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 675
+    // method line 611
     .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 676
+    // method line 612
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationDictionary get_ProjectConfigurations ()  cil managed 
     {
-        // Method begins at RVA 0x5b0c
+        // Method begins at RVA 0x7afc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35262,11 +32830,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_ProjectConfigurations
 
-    // method line 677
+    // method line 613
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationDictionary get_BuildConfigurations ()  cil managed 
     {
-        // Method begins at RVA 0x5b28
+        // Method begins at RVA 0x7b18
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35281,18 +32849,18 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_BuildConfigurations
 
-    // method line 678
+    // method line 614
     .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 679
+    // method line 615
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
     {
-        // Method begins at RVA 0x5b44
+        // Method begins at RVA 0x7b34
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35307,11 +32875,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_SolutionTask
 
-    // method line 680
+    // method line 616
     .method public hidebysig specialname 
            instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
     {
-        // Method begins at RVA 0x5b60
+        // Method begins at RVA 0x7b50
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35326,11 +32894,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_TemporaryFiles
 
-    // method line 681
+    // method line 617
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
     {
-        // Method begins at RVA 0x5b7c
+        // Method begins at RVA 0x7b6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35345,11 +32913,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_ExtraOutputFiles
 
-    // method line 682
+    // method line 618
     .method family hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x5b98
+        // Method begins at RVA 0x7b88
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35364,11 +32932,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_OutputDir
 
-    // method line 683
+    // method line 619
     .method family hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
     {
-        // Method begins at RVA 0x5bb4
+        // Method begins at RVA 0x7ba4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35383,11 +32951,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_GacCache
 
-    // method line 684
+    // method line 620
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
     {
-        // Method begins at RVA 0x5bd0
+        // Method begins at RVA 0x7bc0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35402,11 +32970,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_ReferencesResolver
 
-    // method line 685
+    // method line 621
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBaseCollection get_ProjectDependencies ()  cil managed 
     {
-        // Method begins at RVA 0x5bec
+        // Method begins at RVA 0x7bdc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -35421,11 +32989,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBase::get_ProjectDependencies
 
-    // method line 686
+    // method line 622
     .method family virtual hidebysig newslot specialname 
            instance default string get_DevEnvDir ()  cil managed 
     {
-        // Method begins at RVA 0x5c08
+        // Method begins at RVA 0x7bf8
 	// Code size 139 (0x8b)
 	.maxstack 3
 	.locals init (
@@ -35481,11 +33049,11 @@
 	IL_008a:  ret 
     } // end of method ProjectBase::get_DevEnvDir
 
-    // method line 687
+    // method line 623
     .method private hidebysig specialname 
            instance default class [mscorlib]System.Version get_ProductVersionNumber ()  cil managed 
     {
-        // Method begins at RVA 0x5ca0
+        // Method begins at RVA 0x7c90
 	// Code size 89 (0x59)
 	.maxstack 3
 	.locals init (
@@ -35529,18 +33097,18 @@
 	IL_0058:  ret 
     } // end of method ProjectBase::get_ProductVersionNumber
 
-    // method line 688
+    // method line 624
     .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 689
+    // method line 625
     .method public hidebysig 
            instance default bool Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x5d08
+        // Method begins at RVA 0x7cf8
 	// Code size 166 (0xa6)
 	.maxstack 7
 	.locals init (
@@ -35621,11 +33189,11 @@
 	IL_00a5:  ret 
     } // end of method ProjectBase::Compile
 
-    // method line 690
+    // method line 626
     .method public hidebysig 
            instance default string GetOutputPath (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x5dbc
+        // Method begins at RVA 0x7dac
 	// Code size 42 (0x2a)
 	.maxstack 2
 	.locals init (
@@ -35654,11 +33222,11 @@
 	IL_0029:  ret 
     } // end of method ProjectBase::GetOutputPath
 
-    // method line 691
+    // method line 627
     .method public hidebysig 
            instance default class NAnt.VSNet.ConfigurationBase GetConfiguration (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x5df4
+        // Method begins at RVA 0x7de4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -35675,11 +33243,11 @@
 	IL_0014:  ret 
     } // end of method ProjectBase::GetConfiguration
 
-    // method line 692
+    // method line 628
     .method public hidebysig 
            instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x5e18
+        // Method begins at RVA 0x7e08
 	// Code size 356 (0x164)
 	.maxstack 7
 	.locals init (
@@ -35858,11 +33426,11 @@
 	IL_0163:  ret 
     } // end of method ProjectBase::GetAssemblyReferences
 
-    // method line 693
+    // method line 629
     .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 0x5fbc
+        // Method begins at RVA 0x7fac
 	// Code size 386 (0x182)
 	.maxstack 3
 	.locals init (
@@ -36038,18 +33606,18 @@
 	IL_0181:  ret 
     } // end of method ProjectBase::GetOutputFiles
 
-    // method line 694
+    // method line 630
     .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 695
+    // method line 631
     .method famorassem virtual hidebysig newslot 
            instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0x6174
+        // Method begins at RVA 0x8164
 	// Code size 231 (0xe7)
 	.maxstack 2
 	.locals init (
@@ -36139,25 +33707,25 @@
 	IL_00e6:  ret 
     } // end of method ProjectBase::ExpandMacro
 
-    // method line 696
+    // method line 632
     .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 697
+    // method line 633
     .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 698
+    // method line 634
     .method family virtual hidebysig newslot 
            instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x6268
+        // Method begins at RVA 0x8258
 	// Code size 333 (0x14d)
 	.maxstack 3
 	.locals init (
@@ -36293,18 +33861,18 @@
 	IL_014c:  ret 
     } // end of method ProjectBase::Prepare
 
-    // method line 699
+    // method line 635
     .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 700
+    // method line 636
     .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 0x63e0
+        // Method begins at RVA 0x83d0
 	// Code size 179 (0xb3)
 	.maxstack 2
 	.locals init (
@@ -36380,11 +33948,11 @@
 	IL_00b2:  ret 
     } // end of method ProjectBase::CopyFile
 
-    // method line 701
+    // method line 637
     .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 0x64b0
+        // Method begins at RVA 0x84a0
 	// Code size 362 (0x16a)
 	.maxstack 7
 	.locals init (
@@ -36538,11 +34106,11 @@
 	IL_0169:  ret 
     } // end of method ProjectBase::ExecuteBuildEvent
 
-    // method line 702
+    // method line 638
     .method family hidebysig 
            instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
     {
-        // Method begins at RVA 0x6638
+        // Method begins at RVA 0x8628
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36560,14 +34128,14 @@
 	IL_001b:  ret 
     } // end of method ProjectBase::Log
 
-    // method line 703
+    // method line 639
     .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 0x6655
+        // Method begins at RVA 0x8645
 	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36733,11 +34301,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 704
+    // method line 640
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14964
+        // Method begins at RVA 0x13ad3
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -36746,11 +34314,11 @@
 	IL_0007:  ret 
     } // end of method ProjectBaseCollection::.ctor
 
-    // method line 705
+    // method line 641
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ProjectBaseCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x1496d
+        // Method begins at RVA 0x13adc
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -36762,11 +34330,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBaseCollection::.ctor
 
-    // method line 706
+    // method line 642
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ProjectBase[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x1497d
+        // Method begins at RVA 0x13aec
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -36778,11 +34346,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBaseCollection::.ctor
 
-    // method line 707
+    // method line 643
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBase get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x14990
+        // Method begins at RVA 0x13afc
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -36800,11 +34368,11 @@
 	IL_0019:  ret 
     } // end of method ProjectBaseCollection::get_Item
 
-    // method line 708
+    // method line 644
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.VSNet.ProjectBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x149b6
+        // Method begins at RVA 0x13b22
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36816,11 +34384,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBaseCollection::set_Item
 
-    // method line 709
+    // method line 645
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBase get_Item (string guid)  cil managed 
     {
-        // Method begins at RVA 0x149c8
+        // Method begins at RVA 0x13b34
 	// Code size 127 (0x7f)
 	.maxstack 4
 	.locals init (
@@ -36889,11 +34457,11 @@
 	IL_007e:  ret 
     } // end of method ProjectBaseCollection::get_Item
 
-    // method line 710
+    // method line 646
     .method public hidebysig 
            instance default int32 Add (class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x14a64
+        // Method begins at RVA 0x13bd0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -36910,11 +34478,11 @@
 	IL_0014:  ret 
     } // end of method ProjectBaseCollection::Add
 
-    // method line 711
+    // method line 647
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.ProjectBase[] items)  cil managed 
     {
-        // Method begins at RVA 0x14a88
+        // Method begins at RVA 0x13bf4
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -36945,11 +34513,11 @@
 	IL_0021:  ret 
     } // end of method ProjectBaseCollection::AddRange
 
-    // method line 712
+    // method line 648
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.ProjectBaseCollection items)  cil managed 
     {
-        // Method begins at RVA 0x14ab8
+        // Method begins at RVA 0x13c24
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -36979,11 +34547,11 @@
 	IL_0028:  ret 
     } // end of method ProjectBaseCollection::AddRange
 
-    // method line 713
+    // method line 649
     .method public hidebysig 
            instance default bool Contains (class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x14af0
+        // Method begins at RVA 0x13c5c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -37000,11 +34568,11 @@
 	IL_0014:  ret 
     } // end of method ProjectBaseCollection::Contains
 
-    // method line 714
+    // method line 650
     .method public hidebysig 
            instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x14b14
+        // Method begins at RVA 0x13c80
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -37024,11 +34592,11 @@
 	IL_0015:  ret 
     } // end of method ProjectBaseCollection::Contains
 
-    // method line 715
+    // method line 651
     .method public hidebysig 
            instance default void CopyTo (class NAnt.VSNet.ProjectBase[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x14b36
+        // Method begins at RVA 0x13ca2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -37040,11 +34608,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBaseCollection::CopyTo
 
-    // method line 716
+    // method line 652
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x14b48
+        // Method begins at RVA 0x13cb4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -37061,11 +34629,11 @@
 	IL_0014:  ret 
     } // end of method ProjectBaseCollection::IndexOf
 
-    // method line 717
+    // method line 653
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x14b69
+        // Method begins at RVA 0x13cd5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -37077,11 +34645,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBaseCollection::Insert
 
-    // method line 718
+    // method line 654
     .method public hidebysig 
            instance default class NAnt.VSNet.ProjectBaseEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x14b7c
+        // Method begins at RVA 0x13ce8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -37096,11 +34664,11 @@
 	IL_000e:  ret 
     } // end of method ProjectBaseCollection::GetEnumerator
 
-    // method line 719
+    // method line 655
     .method public hidebysig 
            instance default void Remove (class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x14b97
+        // Method begins at RVA 0x13d03
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -37111,11 +34679,11 @@
 	IL_000d:  ret 
     } // end of method ProjectBaseCollection::Remove
 
-    // method line 720
+    // method line 656
     .method public hidebysig 
            instance default void Remove (string guid)  cil managed 
     {
-        // Method begins at RVA 0x14ba8
+        // Method begins at RVA 0x13d14
 	// Code size 123 (0x7b)
 	.maxstack 4
 	.locals init (
@@ -37202,11 +34770,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 721
+    // method line 657
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ProjectBaseCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x14c40
+        // Method begins at RVA 0x13dac
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -37223,11 +34791,11 @@
 	IL_0015:  ret 
     } // end of method ProjectBaseEnumerator::.ctor
 
-    // method line 722
+    // method line 658
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBase get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x14c64
+        // Method begins at RVA 0x13dd0
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -37244,11 +34812,11 @@
 	IL_0018:  ret 
     } // end of method ProjectBaseEnumerator::get_Current
 
-    // method line 723
+    // method line 659
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x14c8c
+        // Method begins at RVA 0x13df8
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -37265,11 +34833,11 @@
 	IL_0013:  ret 
     } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 724
+    // method line 660
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x14cac
+        // Method begins at RVA 0x13e18
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -37285,11 +34853,11 @@
 	IL_0013:  ret 
     } // end of method ProjectBaseEnumerator::MoveNext
 
-    // method line 725
+    // method line 661
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x14ccc
+        // Method begins at RVA 0x13e38
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -37306,11 +34874,11 @@
 	IL_0013:  ret 
     } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 726
+    // method line 662
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x14cec
+        // Method begins at RVA 0x13e58
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -37320,11 +34888,11 @@
 	IL_000c:  ret 
     } // end of method ProjectBaseEnumerator::Reset
 
-    // method line 727
+    // method line 663
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x14cfa
+        // Method begins at RVA 0x13e66
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -37346,3 +34914,2435 @@
   } // end of class NAnt.VSNet.ProjectBaseEnumerator
 }
 
+.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 664
+    .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 0x13e74
+	// 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_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 "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_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 665
+    .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 0x13f2e
+	// 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.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 666
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x13f54
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectReference::get_Project
+
+    // method line 667
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivate ()  cil managed 
+    {
+        // Method begins at RVA 0x13f70
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectReference::get_IsPrivate
+
+    // method line 668
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
+    {
+        // Method begins at RVA 0x13f8c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectReference::get_IsPrivateSpecified
+
+    // method line 669
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x13fa8
+	// 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 ManagedProjectReference::IsManaged
+
+	.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
+}
+
+.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$map3'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+
+    // method line 670
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project)  cil managed 
+    {
+        // Method begins at RVA 0x58db
+	// 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 671
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x5918
+	// 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_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationBase::get_Project
+
+    // method line 672
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_Name
+
+    // method line 673
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    {
+        // Method begins at RVA 0x5934
+	// 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_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_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method ConfigurationBase::get_ObjectDir
+
+    // method line 674
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_OutputDir
+
+    // method line 675
+    .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 676
+    .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 677
+    .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 678
+    .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 679
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
+    {
+        // Method begins at RVA 0x596c
+	// 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.ConfigurationBase::_extraOutputFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationBase::get_ExtraOutputFiles
+
+    // method line 680
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
+    {
+        // Method begins at RVA 0x5988
+	// 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_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
+
+    // method line 681
+    .method public hidebysig 
+           instance default string ExpandMacros (string s)  cil managed 
+    {
+        // Method begins at RVA 0x59a8
+	// Code size 47 (0x2f)
+	.maxstack 4
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	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 682
+    .method famorassem virtual hidebysig newslot 
+           instance default string ExpandMacro (string macro)  cil managed 
+    {
+        // Method begins at RVA 0x59e4
+	// 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:  brfalse IL_018a
+
+	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map3'
+	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$map3'
+	IL_008a:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map3'
+	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 683
+    .method private hidebysig 
+           instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
+    {
+        // Method begins at RVA 0x5bd8
+	// 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_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method ConfigurationBase::EvaluateMacro
+
+	.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 ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_OutputPath () 
+	}
+	.property instance string BuildPath ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_BuildPath () 
+	}
+	.property instance string RelativeOutputDir ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir () 
+	}
+	.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 beforefieldinit VcArgumentMap
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Collections.Hashtable _htArgs
+
+    // method line 684
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x13fbe
+	// 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
+
+    // method line 685
+    .method public hidebysig 
+           instance default void AddString (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x13fd2
+	// 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
+
+    // method line 686
+    .method public hidebysig 
+           instance default void AddString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x13fde
+	// 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 687
+    .method public hidebysig 
+           instance default void AddString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x13feb
+	// 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
+
+    // method line 688
+    .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 0x14001
+	// 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
+
+    // method line 689
+    .method public hidebysig 
+           instance default void AddLinkerString (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x14019
+	// 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
+
+    // method line 690
+    .method public hidebysig 
+           instance default void AddLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x14025
+	// 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
+
+    // method line 691
+    .method public hidebysig 
+           instance default void AddLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x14032
+	// 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
+
+    // method line 692
+    .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 0x14048
+	// 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
+
+    // method line 693
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x14060
+	// 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
+
+    // method line 694
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x1406c
+	// 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
+
+    // method line 695
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x14079
+	// 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
+
+    // method line 696
+    .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 0x1408f
+	// 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
+
+    // method line 697
+    .method public hidebysig 
+           instance default void AddBool (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x140a7
+	// 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
+
+    // method line 698
+    .method public hidebysig 
+           instance default void AddBool (string propName, string argName, string match)  cil managed 
+    {
+        // Method begins at RVA 0x140b3
+	// 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
+
+    // method line 699
+    .method public hidebysig 
+           instance default void AddBool (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x140c0
+	// 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
+
+    // method line 700
+    .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 0x140d6
+	// 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
+
+    // method line 701
+    .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 ) // ....
+
+        // Method begins at RVA 0x140ee
+	// 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
+
+    // method line 702
+    .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 ) // ....
+
+        // Method begins at RVA 0x140fb
+	// 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
+
+    // method line 703
+    .method public hidebysig 
+           instance default string GetArgument (string propName, string propValue, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup useIgnoreGroup)  cil managed 
+    {
+        // Method begins at RVA 0x14114
+	// 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_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_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_004e:  ldloc.1 
+	IL_004f:  ret 
+    } // end of method VcArgumentMap::GetArgument
+
+    // method line 704
+    .method public static hidebysig 
+           default class NAnt.VSNet.VcArgumentMap CreateCLArgumentMap ()  cil managed 
+    {
+        // Method begins at RVA 0x14170
+	// 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_0412:  ldloc.1 
+	IL_0413:  ret 
+    } // end of method VcArgumentMap::CreateCLArgumentMap
+
+    // method line 705
+    .method public static hidebysig 
+           default class NAnt.VSNet.VcArgumentMap CreateLinkerArgumentMap ()  cil managed 
+    {
+        // Method begins at RVA 0x14590
+	// 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 706
+    .method public static hidebysig 
+           default class NAnt.VSNet.VcArgumentMap CreateMidlArgumentMap ()  cil managed 
+    {
+        // Method begins at RVA 0x14854
+	// 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 707
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x14a03
+	// 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 708
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x14a1c
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcArgument::get_Name
+
+    // method line 709
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.VcArgumentMap/ArgGroup get_Group ()  cil managed 
+    {
+        // Method begins at RVA 0x14a38
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcArgument::get_Group
+
+    // method line 710
+    .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 711
+    .method family hidebysig 
+           instance default string FormatOption (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14a54
+	// Code size 40 (0x28)
+	.maxstack 2
+	.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
+
+	.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 712
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x14a88
+	// 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 713
+    .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 0x14a94
+	// 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 714
+    .method family hidebysig specialname 
+           instance default bool get_IgnoreEmptyValue ()  cil managed 
+    {
+        // Method begins at RVA 0x14aa8
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcStringArgument::get_IgnoreEmptyValue
+
+    // method line 715
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x14ac4
+	// 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_000c:  ldarg.1 
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001f
+
+	IL_0017:  nop 
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_002c
+
+	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_002c:  ldloc.0 
+	IL_002d:  ret 
+    } // end of method VcStringArgument::MapValue
+
+	.property instance bool IgnoreEmptyValue ()
+	{
+		.get instance default bool NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue () 
+	}
+  } // end of class VcStringArgument
+
+  .class nested private auto ansi beforefieldinit LinkerStringArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
+  {
+
+    // method line 716
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x14afe
+	// 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
+
+    // method line 717
+    .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 0x14b0a
+	// 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
+
+    // method line 718
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14b18
+	// 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_000c:  ldarg.1 
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001f
+
+	IL_0017:  nop 
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_004e
+
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
+	IL_0025:  brtrue IL_0037
+
+	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_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_004e:  ldloc.0 
+	IL_004f:  ret 
+    } // end of method LinkerStringArgument::MapValue
+
+  } // end of class LinkerStringArgument
+
+  .class nested private auto ansi beforefieldinit QuotedLinkerStringArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
+  {
+
+    // method line 719
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x14b74
+	// 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 720
+    .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 0x14b80
+	// 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 721
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14b8c
+	// 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_000c:  ldarg.1 
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001f
+
+	IL_0017:  nop 
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_004e
+
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
+	IL_0025:  brtrue IL_0037
+
+	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_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_004e:  ldloc.0 
+	IL_004f:  ret 
+    } // end of method QuotedLinkerStringArgument::MapValue
+
+  } // end of class QuotedLinkerStringArgument
+
+  .class nested private auto ansi beforefieldinit VcBoolArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcArgument
+  {
+    .field  private  string _match
+
+    // method line 722
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x14be8
+	// 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
+
+    // method line 723
+    .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 0x14bf8
+	// 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
+
+    // method line 724
+    .method public hidebysig specialname 
+           instance default string get_Match ()  cil managed 
+    {
+        // Method begins at RVA 0x14c18
+	// 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_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcBoolArgument::get_Match
+
+    // method line 725
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x14c34
+	// 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 726
+    .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 0x14c73
+	// 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 727
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x14c88
+	// 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
+}
+
/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
@@ -289,20 +289,145 @@
              Analyses Microsoft Visual Studio .NET 2002 (Rainier) solution files.
              </summary>
             </member>
-        <member name="T:NAnt.VSNet.Everett.Solution">
+        <member name="T:NAnt.VSNet.Types.UseOfATL">
              <summary>
-             Analyses Microsoft Visual Studio .NET 2003 (Everett) solution files.
+             Defines how the project is using the ATL library.
              </summary>
             </member>
-        <member name="M:NAnt.VSNet.Extensibility.IProjectBuildProvider.IsSupported(System.String,System.Xml.XmlElement)">
+        <member name="F:NAnt.VSNet.Types.UseOfATL.NotUsing">
              <summary>
-             Returns a number representing how much this file fits this project type.
+             Don't use ATL.
+             </summary>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UseOfATL.Static">
+             <summary>
+             Use ATL in a Static Library.
+             </summary>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UseOfATL.Shared">
+             <summary>
+             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.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 
+             specified in a Visual C++ project.
              </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.
+             The integer values assigned match those specified in the Visual C++ 
+             project file for each setting.
+             </remarks>&gt;
+            </member>
+        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.Unspecified">
+             <summary>
+             Precompiled header file use not specified.
+             </summary>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.No">
+             <summary>
+             Don't use a precompiled header file.
+             </summary>
+             <remarks>
+             For further information on the use of this option
+             see the Microsoft documentation on the C++ compiler flag /Yc.
+             </remarks>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.Create">
+             <summary>
+             Create precompiled header file.
+             </summary>
+             <remarks>
+             For further information on the use of this option
+             see the Microsoft documentation on the C++ compiler flag /Yc.
+             </remarks>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.AutoCreate">
+             <summary>
+             Automatically create precompiled header file if necessary.
+             </summary>
+             <remarks>
+             For further information on the use of this option
+             see the Microsoft documentation on the C++ compiler flag /Yc.
+             </remarks>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.Use">
+             <summary>
+             Use a precompiled header file.
+             </summary>
+             <remarks>
+             For further information on the use of this option
+             see the Microsoft documentation on the C++ compiler flag /Yu.
              </remarks>
             </member>
         <member name="T:NAnt.VSNet.Types.WebMapCollection">
@@ -460,280 +585,470 @@
              first element in the collection.
              </summary>
             </member>
-        <member name="T:NAnt.VSNet.Types.UsePrecompiledHeader">
+        <member name="T:NAnt.VSNet.Everett.Solution">
              <summary>
-             Indicates the possible ways in which precompiled header file use is 
-             specified in a Visual C++ project.
+             Analyses Microsoft Visual Studio .NET 2003 (Everett) solution files.
              </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>
-             The integer values assigned match those specified in the Visual C++ 
-             project file for each setting.
-             </remarks>&gt;
+             This enables the override in other providers. Do not return big numbers, mainly when compring only on filename.
+             </remarks>
             </member>
-        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.Unspecified">
+        <member name="M:NAnt.VSNet.VcAssemblyReference.ResolveAssemblyReference">
              <summary>
-             Precompiled header file use not specified.
+             Resolves an assembly reference.
              </summary>
+             <returns>
+             The full path to the resolved assembly, or <see langword="null" />
+             if the assembly reference could not be resolved.
+             </returns>
             </member>
-        <member name="F:NAnt.VSNet.Types.UsePrecompiledHeader.No">
+        <member name="P:NAnt.VSNet.VcAssemblyReference.Name">
              <summary>
-             Don't use a precompiled header file.
+             Gets the name of the referenced assembly.
+             </summary>
+             <value>
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)
@@ -59,6 +59,1399 @@
 
 .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 1
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2050
+	// 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 2
+    .method public hidebysig specialname 
+           instance default string get_Acf ()  cil managed 
+    {
+        // Method begins at RVA 0x2090
+	// 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 3
+    .method public hidebysig specialname 
+           instance default void set_Acf (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20ab
+	// 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 4
+    .method public hidebysig specialname 
+           instance default string get_Align ()  cil managed 
+    {
+        // Method begins at RVA 0x20b8
+	// 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 5
+    .method public hidebysig specialname 
+           instance default void set_Align (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20d3
+	// 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 6
+    .method public hidebysig specialname 
+           instance default bool get_AppConfig ()  cil managed 
+    {
+        // Method begins at RVA 0x20e0
+	// 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 7
+    .method public hidebysig specialname 
+           instance default void set_AppConfig (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20fb
+	// 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 8
+    .method public hidebysig specialname 
+           instance default string get_Char ()  cil managed 
+    {
+        // Method begins at RVA 0x2108
+	// 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 9
+    .method public hidebysig specialname 
+           instance default void set_Char (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2123
+	// 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 10
+    .method public hidebysig specialname 
+           instance default string get_Client ()  cil managed 
+    {
+        // Method begins at RVA 0x2130
+	// 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 11
+    .method public hidebysig specialname 
+           instance default void set_Client (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x214b
+	// 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 12
+    .method public hidebysig specialname 
+           instance default string get_CStub ()  cil managed 
+    {
+        // Method begins at RVA 0x2158
+	// 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 13
+    .method public hidebysig specialname 
+           instance default void set_CStub (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2173
+	// 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 14
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_DllData ()  cil managed 
+    {
+        // Method begins at RVA 0x2180
+	// 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 15
+    .method public hidebysig specialname 
+           instance default void set_DllData (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x219b
+	// 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 16
+    .method public hidebysig specialname 
+           instance default string get_Env ()  cil managed 
+    {
+        // Method begins at RVA 0x21a8
+	// 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 17
+    .method public hidebysig specialname 
+           instance default void set_Env (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x21c3
+	// 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 18
+    .method public hidebysig specialname 
+           instance default string get_Oi ()  cil managed 
+    {
+        // Method begins at RVA 0x21d0
+	// 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 19
+    .method public hidebysig specialname 
+           instance default void set_Oi (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x21eb
+	// 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 20
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Tlb ()  cil managed 
+    {
+        // Method begins at RVA 0x21f8
+	// 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 21
+    .method public hidebysig specialname 
+           instance default void set_Tlb (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2213
+	// 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 22
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Header ()  cil managed 
+    {
+        // Method begins at RVA 0x2220
+	// 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 23
+    .method public hidebysig specialname 
+           instance default void set_Header (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x223b
+	// 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 24
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Iid ()  cil managed 
+    {
+        // Method begins at RVA 0x2248
+	// 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 25
+    .method public hidebysig specialname 
+           instance default void set_Iid (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2263
+	// 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 26
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Proxy ()  cil managed 
+    {
+        // Method begins at RVA 0x2270
+	// 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 27
+    .method public hidebysig specialname 
+           instance default void set_Proxy (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x228b
+	// 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 28
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Filename ()  cil managed 
+    {
+        // Method begins at RVA 0x2298
+	// 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 29
+    .method public hidebysig specialname 
+           instance default void set_Filename (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22b3
+	// 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 30
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
+    {
+        // Method begins at RVA 0x22c0
+	// 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 31
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
+    {
+        // Method begins at RVA 0x22dc
+	// 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 32
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Undefines ()  cil managed 
+    {
+        // Method begins at RVA 0x22f8
+	// 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 33
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
+    {
+        // Method begins at RVA 0x2314
+	// 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 34
+    .method public hidebysig specialname 
+           instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x232f
+	// 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 35
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
+    {
+        // Method begins at RVA 0x233c
+	// 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 36
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x2358
+	// 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 37
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x2384
+	// 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 38
+    .method private hidebysig 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x2488
+	// 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 39
+    .method private hidebysig 
+           instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
+    {
+        // Method begins at RVA 0x250c
+	// 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 40
+    .method private hidebysig 
+           instance default void WriteResponseFile (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x2594
+	// 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
   {
@@ -84,11 +1477,11 @@
     .field  private  class [System]System.Text.RegularExpressions.Regex _includeRegex
     .field  private  class [System]System.Collections.Specialized.StringCollection _dirtySources
 
-    // method line 1
+    // method line 41
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x29a0
 	// Code size 126 (0x7e)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -131,11 +1524,11 @@
 	IL_007d:  ret 
     } // end of method ClTask::.ctor
 
-    // method line 2
+    // method line 42
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x20dc
+        // Method begins at RVA 0x2a2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -150,11 +1543,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_OutputDir
 
-    // method line 3
+    // method line 43
     .method public hidebysig specialname 
            instance default void set_OutputDir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x20f7
+        // Method begins at RVA 0x2a47
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -164,11 +1557,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_OutputDir
 
-    // method line 4
+    // method line 44
     .method public hidebysig specialname 
            instance default string get_PchFile ()  cil managed 
     {
-        // Method begins at RVA 0x2104
+        // Method begins at RVA 0x2a54
 	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
@@ -194,11 +1587,11 @@
 	IL_002f:  ret 
     } // end of method ClTask::get_PchFile
 
-    // method line 5
+    // method line 45
     .method public hidebysig specialname 
            instance default void set_PchFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2140
+        // Method begins at RVA 0x2a90
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -209,11 +1602,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_PchFile
 
-    // method line 6
+    // method line 46
     .method public hidebysig specialname 
            instance default string get_PchThroughFile ()  cil managed 
     {
-        // Method begins at RVA 0x2150
+        // Method begins at RVA 0x2aa0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -228,11 +1621,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_PchThroughFile
 
-    // method line 7
+    // method line 47
     .method public hidebysig specialname 
            instance default void set_PchThroughFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x216b
+        // Method begins at RVA 0x2abb
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -243,11 +1636,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_PchThroughFile
 
-    // method line 8
+    // method line 48
     .method public hidebysig specialname 
            instance default valuetype NAnt.VisualCpp.Tasks.ClTask/PrecompiledHeaderMode get_PchMode ()  cil managed 
     {
-        // Method begins at RVA 0x217c
+        // Method begins at RVA 0x2acc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -262,11 +1655,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_PchMode
 
-    // method line 9
+    // method line 49
     .method public hidebysig specialname 
            instance default void set_PchMode (valuetype NAnt.VisualCpp.Tasks.ClTask/PrecompiledHeaderMode 'value')  cil managed 
     {
-        // Method begins at RVA 0x2198
+        // Method begins at RVA 0x2ae8
 	// Code size 65 (0x41)
 	.maxstack 3
 	IL_0000:  nop 
@@ -293,11 +1686,11 @@
 	IL_0040:  ret 
     } // end of method ClTask::set_PchMode
 
-    // method line 10
+    // method line 50
     .method public hidebysig specialname 
            instance default bool get_ManagedExtensions ()  cil managed 
     {
-        // Method begins at RVA 0x21e8
+        // Method begins at RVA 0x2b38
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -312,11 +1705,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_ManagedExtensions
 
-    // method line 11
+    // method line 51
     .method public hidebysig specialname 
            instance default void set_ManagedExtensions (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2203
+        // Method begins at RVA 0x2b53
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -326,11 +1719,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_ManagedExtensions
 
-    // method line 12
+    // method line 52
     .method public hidebysig specialname 
            instance default valuetype NAnt.VisualCpp.Types.CharacterSet get_CharacterSet ()  cil managed 
     {
-        // Method begins at RVA 0x2210
+        // Method begins at RVA 0x2b60
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -345,11 +1738,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_CharacterSet
 
-    // method line 13
+    // method line 53
     .method public hidebysig specialname 
            instance default void set_CharacterSet (valuetype NAnt.VisualCpp.Types.CharacterSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x222c
+        // Method begins at RVA 0x2b7c
 	// Code size 65 (0x41)
 	.maxstack 3
 	IL_0000:  nop 
@@ -376,11 +1769,11 @@
 	IL_0040:  ret 
     } // end of method ClTask::set_CharacterSet
 
-    // method line 14
+    // method line 54
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x227c
+        // Method begins at RVA 0x2bcc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -395,11 +1788,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Options
 
-    // method line 15
+    // method line 55
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2297
+        // Method begins at RVA 0x2be7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -409,11 +1802,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_Options
 
-    // method line 16
+    // method line 56
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x22a4
+        // Method begins at RVA 0x2bf4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -428,11 +1821,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Sources
 
-    // method line 17
+    // method line 57
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x22bf
+        // Method begins at RVA 0x2c0f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -442,11 +1835,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_Sources
 
-    // method line 18
+    // method line 58
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
     {
-        // Method begins at RVA 0x22cc
+        // Method begins at RVA 0x2c1c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -461,11 +1854,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_IncludeDirs
 
-    // method line 19
+    // method line 59
     .method public hidebysig specialname 
            instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x22e7
+        // Method begins at RVA 0x2c37
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -475,11 +1868,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_IncludeDirs
 
-    // method line 20
+    // method line 60
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_MetaDataIncludeDirs ()  cil managed 
     {
-        // Method begins at RVA 0x22f4
+        // Method begins at RVA 0x2c44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -494,11 +1887,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_MetaDataIncludeDirs
 
-    // method line 21
+    // method line 61
     .method public hidebysig specialname 
            instance default void set_MetaDataIncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x230f
+        // Method begins at RVA 0x2c5f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -508,11 +1901,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_MetaDataIncludeDirs
 
-    // method line 22
+    // method line 62
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ForcedUsingFiles ()  cil managed 
     {
-        // Method begins at RVA 0x231c
+        // Method begins at RVA 0x2c6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -527,11 +1920,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_ForcedUsingFiles
 
-    // method line 23
+    // method line 63
     .method public hidebysig specialname 
            instance default void set_ForcedUsingFiles (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2337
+        // Method begins at RVA 0x2c87
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -541,11 +1934,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_ForcedUsingFiles
 
-    // method line 24
+    // method line 64
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
     {
-        // Method begins at RVA 0x2344
+        // Method begins at RVA 0x2c94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -560,11 +1953,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Defines
 
-    // method line 25
+    // method line 65
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Undefines ()  cil managed 
     {
-        // Method begins at RVA 0x2360
+        // Method begins at RVA 0x2cb0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -579,11 +1972,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Undefines
 
-    // method line 26
+    // method line 66
     .method public hidebysig specialname 
            instance default string get_ObjectFile ()  cil managed 
     {
-        // Method begins at RVA 0x237c
+        // Method begins at RVA 0x2ccc
 	// Code size 68 (0x44)
 	.maxstack 2
 	.locals init (
@@ -613,11 +2006,11 @@
 	IL_0043:  ret 
     } // end of method ClTask::get_ObjectFile
 
-    // method line 27
+    // method line 67
     .method public hidebysig specialname 
            instance default void set_ObjectFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x23cc
+        // Method begins at RVA 0x2d1c
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -628,11 +2021,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_ObjectFile
 
-    // method line 28
+    // method line 68
     .method public hidebysig specialname 
            instance default string get_ProgramDatabaseFile ()  cil managed 
     {
-        // Method begins at RVA 0x23dc
+        // Method begins at RVA 0x2d2c
 	// Code size 68 (0x44)
 	.maxstack 2
 	.locals init (
@@ -662,11 +2055,11 @@
 	IL_0043:  ret 
     } // end of method ClTask::get_ProgramDatabaseFile
 
-    // method line 29
+    // method line 69
     .method public hidebysig specialname 
            instance default void set_ProgramDatabaseFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x242c
+        // Method begins at RVA 0x2d7c
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -677,11 +2070,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_ProgramDatabaseFile
 
-    // method line 30
+    // method line 70
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x243c
+        // Method begins at RVA 0x2d8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -696,11 +2089,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_ProgramFileName
 
-    // method line 31
+    // method line 71
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x2458
+        // Method begins at RVA 0x2da8
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -718,11 +2111,11 @@
 	IL_001d:  ret 
     } // end of method ClTask::get_ProgramArguments
 
-    // method line 32
+    // method line 72
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2484
+        // Method begins at RVA 0x2dd4
 	// Code size 1429 (0x595)
 	.maxstack 7
 	.locals init (
@@ -1278,11 +2671,11 @@
 	IL_0594:  ret 
     } // end of method ClTask::ExecuteTask
 
-    // method line 33
+    // method line 73
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x2ad4
+        // Method begins at RVA 0x3424
 	// Code size 75 (0x4b)
 	.maxstack 3
 	.locals init (
@@ -1318,11 +2711,11 @@
 	IL_004a:  ret 
     } // end of method ClTask::NeedsCompiling
 
-    // method line 34
+    // method line 74
     .method private hidebysig 
            instance default bool IsPchfileUpToDate ()  cil managed 
     {
-        // Method begins at RVA 0x2b2c
+        // Method begins at RVA 0x347c
 	// Code size 364 (0x16c)
 	.maxstack 7
 	.locals init (
@@ -1489,11 +2882,11 @@
 	IL_016b:  ret 
     } // end of method ClTask::IsPchfileUpToDate
 
-    // method line 35
+    // method line 75
     .method private hidebysig 
            instance default bool IsObjUpToDate (string srcFileName)  cil managed 
     {
-        // Method begins at RVA 0x2cb4
+        // Method begins at RVA 0x3604
 	// Code size 330 (0x14a)
 	.maxstack 7
 	.locals init (
@@ -1641,11 +3034,11 @@
 	IL_0149:  ret 
     } // end of method ClTask::IsObjUpToDate
 
-    // method line 36
+    // method line 76
     .method private hidebysig 
            instance default bool AreObjsUpToDate ()  cil managed 
     {
-        // Method begins at RVA 0x2e0c
+        // Method begins at RVA 0x375c
 	// Code size 178 (0xb2)
 	.maxstack 7
 	.locals init (
@@ -1733,11 +3126,11 @@
 	IL_00b1:  ret 
     } // end of method ClTask::AreObjsUpToDate
 
-    // method line 37
+    // method line 77
     .method private hidebysig 
            instance default string FindUpdatedInclude (string srcFileName, valuetype [mscorlib]System.DateTime objLastWriteTime)  cil managed 
     {
-        // Method begins at RVA 0x2edc
+        // Method begins at RVA 0x382c
 	// Code size 585 (0x249)
 	.maxstack 7
 	.locals init (
@@ -2001,11 +3394,11 @@
 	IL_0248:  ret 
     } // end of method ClTask::FindUpdatedInclude
 
-    // method line 38
+    // method line 78
     .method public static hidebysig 
            default string QuoteArgumentValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3168
+        // Method begins at RVA 0x3ab8
 	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
@@ -2021,11 +3414,11 @@
 	IL_000f:  ret 
     } // end of method ClTask::QuoteArgumentValue
 
-    // method line 39
+    // method line 79
     .method public static hidebysig 
            default string GetObjOutputFile (string srcFile, string objectPath)  cil managed 
     {
-        // Method begins at RVA 0x3184
+        // Method begins at RVA 0x3ad4
 	// Code size 143 (0x8f)
 	.maxstack 3
 	.locals init (
@@ -2232,6 +3625,788 @@
 
 .namespace NAnt.VisualCpp.Tasks
 {
+  .class public auto ansi beforefieldinit RcTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 72 63 00 00 ) // ...rc..
+
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _options
+    .field  private  int32 _langId
+    .field  private  class [mscorlib]System.IO.FileInfo _rcFile
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _includeDirs
+    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _defines
+
+    // method line 80
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3b6f
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld int32 NAnt.VisualCpp.Tasks.RcTask::_langId
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_000d:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.RcTask::_includeDirs
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
+	IL_0018:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.RcTask::_defines
+	IL_001d:  ldarg.0 
+	IL_001e:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0023:  ret 
+    } // end of method RcTask::.ctor
+
+    // method line 81
+    .method public hidebysig specialname 
+           instance default string get_Options ()  cil managed 
+    {
+        // Method begins at RVA 0x3b94
+	// 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.RcTask::_options
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RcTask::get_Options
+
+    // method line 82
+    .method public hidebysig specialname 
+           instance default void set_Options (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3baf
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.RcTask::_options
+	IL_0008:  ret 
+    } // end of method RcTask::set_Options
+
+    // method line 83
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3bbc
+	// Code size 60 (0x3c)
+	.maxstack 3
+	.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.RcTask::_outputFile
+	IL_0007:  brtrue IL_002e
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	IL_0014:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0019:  ldstr "RES"
+	IL_001e:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_0023:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0028:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.RcTask::_outputFile
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.RcTask::_outputFile
+	IL_0034:  stloc.0 
+	IL_0035:  br IL_003a
+
+	IL_003a:  ldloc.0 
+	IL_003b:  ret 
+    } // end of method RcTask::get_OutputFile
+
+    // method line 84
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3c04
+	// 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.RcTask::_outputFile
+	IL_0008:  ret 
+    } // end of method RcTask::set_OutputFile
+
+    // method line 85
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_RcFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3c10
+	// 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.RcTask::_rcFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RcTask::get_RcFile
+
+    // method line 86
+    .method public hidebysig specialname 
+           instance default void set_RcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3c2b
+	// 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.RcTask::_rcFile
+	IL_0008:  ret 
+    } // end of method RcTask::set_RcFile
+
+    // method line 87
+    .method public hidebysig specialname 
+           instance default int32 get_LangId ()  cil managed 
+    {
+        // Method begins at RVA 0x3c38
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.VisualCpp.Tasks.RcTask::_langId
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RcTask::get_LangId
+
+    // method line 88
+    .method public hidebysig specialname 
+           instance default void set_LangId (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3c53
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.VisualCpp.Tasks.RcTask::_langId
+	IL_0008:  ret 
+    } // end of method RcTask::set_LangId
+
+    // method line 89
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
+    {
+        // Method begins at RVA 0x3c60
+	// 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.RcTask::_includeDirs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RcTask::get_IncludeDirs
+
+    // method line 90
+    .method public hidebysig specialname 
+           instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3c7b
+	// 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.RcTask::_includeDirs
+	IL_0008:  ret 
+    } // end of method RcTask::set_IncludeDirs
+
+    // method line 91
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
+    {
+        // Method begins at RVA 0x3c88
+	// 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.RcTask::_defines
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RcTask::get_Defines
+
+    // method line 92
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
+    {
+        // Method begins at RVA 0x3ca4
+	// 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 RcTask::get_ProgramFileName
+
+    // method line 93
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x3cc0
+	// Code size 439 (0x1b7)
+	.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,
+		class [NAnt.Core]NAnt.Core.Types.Option	V_4,
+		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	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:  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:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_001e:  pop 
+	IL_001f:  nop 
+	IL_0020:  ldloc.0 
+	IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0026:  ldstr "/fo\"{0}\" "
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_OutputFile()
+	IL_0031:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0036:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	IL_003b:  pop 
+	IL_003c:  ldarg.0 
+	IL_003d:  call instance string class NAnt.VisualCpp.Tasks.RcTask::get_Options()
+	IL_0042:  brfalse IL_0060
+
+	IL_0047:  nop 
+	IL_0048:  ldloc.0 
+	IL_0049:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004e:  ldstr "{0} "
+	IL_0053:  ldarg.0 
+	IL_0054:  call instance string class NAnt.VisualCpp.Tasks.RcTask::get_Options()
+	IL_0059:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	IL_005e:  pop 
+	IL_005f:  nop 
+	IL_0060:  ldarg.0 
+	IL_0061:  call instance int32 class NAnt.VisualCpp.Tasks.RcTask::get_LangId()
+	IL_0066:  brfalse IL_0084
+
+	IL_006b:  nop 
+	IL_006c:  ldloc.0 
+	IL_006d:  ldstr "/l 0x{0:X} "
+	IL_0072:  ldarg.0 
+	IL_0073:  call instance int32 class NAnt.VisualCpp.Tasks.RcTask::get_LangId()
+	IL_0078:  box [mscorlib]System.Int32
+	IL_007d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0082:  pop 
+	IL_0083:  nop 
+	IL_0084:  nop 
+	IL_0085:  ldarg.0 
+	IL_0086:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.RcTask::get_IncludeDirs()
+	IL_008b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0090:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0095:  stloc.2 
+	.try { // 0
+	  IL_0096:  br IL_00b7
+
+	  IL_009b:  ldloc.2 
+	  IL_009c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00a1:  stloc.1 
+	  IL_00a2:  nop 
+	  IL_00a3:  ldloc.0 
+	  IL_00a4:  ldstr "/i {0} "
+	  IL_00a9:  ldloc.1 
+	  IL_00aa:  ldc.i4.1 
+	  IL_00ab:  call string class NAnt.VisualCpp.Util.ArgumentUtils::QuoteArgumentValue(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
+	  IL_00b0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	  IL_00b5:  pop 
+	  IL_00b6:  nop 
+	  IL_00b7:  ldloc.2 
+	  IL_00b8:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00bd:  brtrue IL_009b
+
+	  IL_00c2:  leave IL_00db
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00c7:  ldloc.2 
+	  IL_00c8:  isinst [mscorlib]System.IDisposable
+	  IL_00cd:  dup 
+	  IL_00ce:  stloc.3 
+	  IL_00cf:  brfalse IL_00da
+
+	  IL_00d4:  ldloc.3 
+	  IL_00d5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00da:  endfinally 
+	} // end handler 0
+	IL_00db:  nop 
+	IL_00dc:  ldarg.0 
+	IL_00dd:  call instance class [NAnt.Core]NAnt.Core.Types.OptionCollection class NAnt.VisualCpp.Tasks.RcTask::get_Defines()
+	IL_00e2:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
+	IL_00e7:  stloc.s 5
+	.try { // 1
+	  IL_00e9:  br IL_0163
+
+	  IL_00ee:  ldloc.s 5
+	  IL_00f0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
+	  IL_00f5:  stloc.s 4
+	  IL_00f7:  nop 
+	  IL_00f8:  ldloc.s 4
+	  IL_00fa:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	  IL_00ff:  brfalse IL_0110
+
+	  IL_0104:  ldloc.s 4
+	  IL_0106:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_UnlessDefined()
+	  IL_010b:  brfalse IL_0116
+
+	  IL_0110:  nop 
+	  IL_0111:  leave IL_0163
+
+	  IL_0116:  ldloc.s 4
+	  IL_0118:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	  IL_011d:  brtrue IL_0141
+
+	  IL_0122:  nop 
+	  IL_0123:  ldloc.0 
+	  IL_0124:  ldstr "/d {0} "
+	  IL_0129:  ldloc.s 4
+	  IL_012b:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_0130:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
+	  IL_0135:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	  IL_013a:  pop 
+	  IL_013b:  nop 
+	  IL_013c:  br IL_0162
+
+	  IL_0141:  nop 
+	  IL_0142:  ldloc.0 
+	  IL_0143:  ldstr "/d {0}={1} "
+	  IL_0148:  ldloc.s 4
+	  IL_014a:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_014f:  ldloc.s 4
+	  IL_0151:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	  IL_0156:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
+	  IL_015b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object, object)
+	  IL_0160:  pop 
+	  IL_0161:  nop 
+	  IL_0162:  nop 
+	  IL_0163:  ldloc.s 5
+	  IL_0165:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
+	  IL_016a:  brtrue IL_00ee
+
+	  IL_016f:  leave IL_018b
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0174:  ldloc.s 5
+	  IL_0176:  isinst [mscorlib]System.IDisposable
+	  IL_017b:  dup 
+	  IL_017c:  stloc.s 6
+	  IL_017e:  brfalse IL_018a
+
+	  IL_0183:  ldloc.s 6
+	  IL_0185:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_018a:  endfinally 
+	} // end handler 1
+	IL_018b:  ldloc.0 
+	IL_018c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0191:  ldstr "\"{0}\" "
+	IL_0196:  ldarg.0 
+	IL_0197:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	IL_019c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01a1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01a6:  pop 
+	IL_01a7:  ldloc.0 
+	IL_01a8:  callvirt instance string object::ToString()
+	IL_01ad:  stloc.s 7
+	IL_01af:  br IL_01b4
+
+	IL_01b4:  ldloc.s 7
+	IL_01b6:  ret 
+    } // end of method RcTask::get_ProgramArguments
+
+    // method line 94
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x3ea0
+	// Code size 116 (0x74)
+	.maxstack 7
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.RcTask::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.RcTask::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:  callvirt instance bool class NAnt.VisualCpp.Tasks.RcTask::NeedsCompiling()
+	IL_0034:  brfalse IL_0073
+
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldc.i4 3000
+	IL_0040:  ldstr "Compiling \"{0}\" to \"{1}\"."
+	IL_0045:  ldc.i4.2 
+	IL_0046:  newarr [mscorlib]System.Object
+	IL_004b:  dup 
+	IL_004c:  ldc.i4.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	IL_0053:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0058:  stelem.ref 
+	IL_0059:  dup 
+	IL_005a:  ldc.i4.1 
+	IL_005b:  ldarg.0 
+	IL_005c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_OutputFile()
+	IL_0061:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0066:  stelem.ref 
+	IL_0067:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_006c:  ldarg.0 
+	IL_006d:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_0072:  nop 
+	IL_0073:  ret 
+    } // end of method RcTask::ExecuteTask
+
+    // method line 95
+    .method family virtual hidebysig newslot 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x3f20
+	// Code size 443 (0x1bb)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		string	V_1,
+		class [System]System.Text.RegularExpressions.Regex	V_2,
+		class [System]System.Text.RegularExpressions.Regex	V_3,
+		class [System]System.Text.RegularExpressions.Regex	V_4,
+		class [mscorlib]System.IO.StreamReader	V_5,
+		string	V_6,
+		class [System]System.Text.RegularExpressions.Match	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::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 "'{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.VisualCpp.Tasks.RcTask::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_01b9
+
+	IL_003d:  ldarg.0 
+	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	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.VisualCpp.Tasks.RcTask::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}' is out of date, 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_01b9
+
+	IL_0081:  ldarg.0 
+	IL_0082:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	IL_0087:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_008c:  brtrue IL_0099
+
+	IL_0091:  nop 
+	IL_0092:  ldc.i4.1 
+	IL_0093:  stloc.0 
+	IL_0094:  br IL_01b9
+
+	IL_0099:  ldstr "IDB_(?<name>\\w+)\\s+BITMAP\\s+\\\"(?<file>[^\\\"]+)\\\""
+	IL_009e:  ldc.i4.s 0x11
+	IL_00a0:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_00a5:  stloc.2 
+	IL_00a6:  ldstr "IDI_(?<name>\\w+)\\s+ICON\\s+\\\"(?<file>[^\\\"]+)\\\""
+	IL_00ab:  ldc.i4.s 0x11
+	IL_00ad:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_00b2:  stloc.3 
+	IL_00b3:  ldstr "IDR_(?<name>\\w+)\\s+(?<Number>\\w+)\\s+\\\"(?<file>[^\\\"]+)\\\""
+	IL_00b8:  ldc.i4.s 0x11
+	IL_00ba:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_00bf:  stloc.s 4
+	IL_00c1:  ldarg.0 
+	IL_00c2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	IL_00c7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00cc:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string)
+	IL_00d1:  stloc.s 5
+	.try { // 0
+	  IL_00d3:  nop 
+	  IL_00d4:  br IL_0190
+
+	  IL_00d9:  nop 
+	  IL_00da:  ldloc.s 5
+	  IL_00dc:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_00e1:  stloc.s 6
+	  IL_00e3:  ldloc.2 
+	  IL_00e4:  ldloc.s 6
+	  IL_00e6:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	  IL_00eb:  stloc.s 7
+	  IL_00ed:  ldloc.s 7
+	  IL_00ef:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	  IL_00f4:  brfalse IL_011c
+
+	  IL_00f9:  nop 
+	  IL_00fa:  ldarg.0 
+	  IL_00fb:  ldloc.s 7
+	  IL_00fd:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0102:  ldstr "file"
+	  IL_0107:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_010c:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0111:  call instance bool class NAnt.VisualCpp.Tasks.RcTask::CheckResourceTimeStamp(string)
+	  IL_0116:  stloc.0 
+	  IL_0117:  leave IL_01b9
+
+	  IL_011c:  ldloc.3 
+	  IL_011d:  ldloc.s 6
+	  IL_011f:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	  IL_0124:  stloc.s 7
+	  IL_0126:  ldloc.s 7
+	  IL_0128:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	  IL_012d:  brfalse IL_0155
+
+	  IL_0132:  nop 
+	  IL_0133:  ldarg.0 
+	  IL_0134:  ldloc.s 7
+	  IL_0136:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_013b:  ldstr "file"
+	  IL_0140:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_0145:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_014a:  call instance bool class NAnt.VisualCpp.Tasks.RcTask::CheckResourceTimeStamp(string)
+	  IL_014f:  stloc.0 
+	  IL_0150:  leave IL_01b9
+
+	  IL_0155:  ldloc.s 4
+	  IL_0157:  ldloc.s 6
+	  IL_0159:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	  IL_015e:  stloc.s 7
+	  IL_0160:  ldloc.s 7
+	  IL_0162:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	  IL_0167:  brfalse IL_018f
+
+	  IL_016c:  nop 
+	  IL_016d:  ldarg.0 
+	  IL_016e:  ldloc.s 7
+	  IL_0170:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0175:  ldstr "file"
+	  IL_017a:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_017f:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0184:  call instance bool class NAnt.VisualCpp.Tasks.RcTask::CheckResourceTimeStamp(string)
+	  IL_0189:  stloc.0 
+	  IL_018a:  leave IL_01b9
+
+	  IL_018f:  nop 
+	  IL_0190:  ldloc.s 5
+	  IL_0192:  callvirt instance int32 class [mscorlib]System.IO.TextReader::Peek()
+	  IL_0197:  ldc.i4.m1 
+	  IL_0198:  bne.un IL_00d9
+
+	  IL_019d:  nop 
+	  IL_019e:  leave IL_01b2
+
+	} // end .try 0
+	finally  { // 0
+	  IL_01a3:  ldloc.s 5
+	  IL_01a5:  brfalse IL_01b1
+
+	  IL_01aa:  ldloc.s 5
+	  IL_01ac:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01b1:  endfinally 
+	} // end handler 0
+	IL_01b2:  ldc.i4.0 
+	IL_01b3:  stloc.0 
+	IL_01b4:  br IL_01b9
+
+	IL_01b9:  ldloc.0 
+	IL_01ba:  ret 
+    } // end of method RcTask::NeedsCompiling
+
+    // method line 96
+    .method private hidebysig 
+           instance default bool CheckResourceTimeStamp (string filePath)  cil managed 
+    {
+        // Method begins at RVA 0x40f8
+	// Code size 86 (0x56)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	IL_000c:  ldarg.1 
+	IL_000d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0012:  stloc.1 
+	IL_0013:  ldloc.1 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_OutputFile()
+	IL_001a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_001f:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0024:  stloc.0 
+	IL_0025:  ldloc.0 
+	IL_0026:  brfalse IL_004d
+
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  ldc.i4 2000
+	IL_0032:  ldstr "'{0}' has been updated, recompiling."
+	IL_0037:  ldc.i4.1 
+	IL_0038:  newarr [mscorlib]System.Object
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ldloc.0 
+	IL_0040:  stelem.ref 
+	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0046:  ldc.i4.1 
+	IL_0047:  stloc.2 
+	IL_0048:  br IL_0054
+
+	IL_004d:  ldc.i4.0 
+	IL_004e:  stloc.2 
+	IL_004f:  br IL_0054
+
+	IL_0054:  ldloc.2 
+	IL_0055:  ret 
+    } // end of method RcTask::CheckResourceTimeStamp
+
+	.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.RcTask::get_Options () 
+		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_Options (string '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.VisualCpp.Tasks.RcTask::get_OutputFile () 
+		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo RcFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 72 63 66 69 6C 65 01 00 54 02 08 52 65   // ...rcfile..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.RcTask::get_RcFile () 
+		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_RcFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance int32 LangId ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6C 61 6E 67 69 64 01 00 54 02 08 52 65   // ...langid..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.get instance default int32 NAnt.VisualCpp.Tasks.RcTask::get_LangId () 
+		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_LangId (int32 'value') 
+	}
+	.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.RcTask::get_IncludeDirs () 
+		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.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.RcTask::get_Defines () 
+	}
+	.property instance string ProgramFileName ()
+	{
+		.get instance default string NAnt.VisualCpp.Tasks.RcTask::get_ProgramFileName () 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.VisualCpp.Tasks.RcTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.VisualCpp.Tasks.RcTask
+}
+
+.namespace NAnt.VisualCpp.Tasks
+{
   .class public auto ansi beforefieldinit LibTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -2246,11 +4421,11 @@
     .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _libdirs
     .field  private  string _options
 
-    // method line 40
+    // method line 97
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x321f
+        // Method begins at RVA 0x415a
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2270,11 +4445,11 @@
 	IL_0032:  ret 
     } // end of method LibTask::.ctor
 
-    // method line 41
+    // method line 98
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x3254
+        // Method begins at RVA 0x4190
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2289,11 +4464,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_Options
 
-    // method line 42
+    // method line 99
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x326f
+        // Method begins at RVA 0x41ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2303,11 +4478,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_Options
 
-    // method line 43
+    // method line 100
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x327c
+        // Method begins at RVA 0x41b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2322,11 +4497,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_OutputFile
 
-    // method line 44
+    // method line 101
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3297
+        // Method begins at RVA 0x41d3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2336,11 +4511,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_OutputFile
 
-    // method line 45
+    // method line 102
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ModuleDefinitionFile ()  cil managed 
     {
-        // Method begins at RVA 0x32a4
+        // Method begins at RVA 0x41e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2355,11 +4530,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_ModuleDefinitionFile
 
-    // method line 46
+    // method line 103
     .method public hidebysig specialname 
            instance default void set_ModuleDefinitionFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x32bf
+        // Method begins at RVA 0x41fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2369,11 +4544,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_ModuleDefinitionFile
 
-    // method line 47
+    // method line 104
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x32cc
+        // Method begins at RVA 0x4208
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2388,11 +4563,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_Sources
 
-    // method line 48
+    // method line 105
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x32e7
+        // Method begins at RVA 0x4223
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2402,11 +4577,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_Sources
 
-    // method line 49
+    // method line 106
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.SymbolCollection get_Symbols ()  cil managed 
     {
-        // Method begins at RVA 0x32f4
+        // Method begins at RVA 0x4230
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2421,11 +4596,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_Symbols
 
-    // method line 50
+    // method line 107
     .method public hidebysig specialname 
            instance default void set_Symbols (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x330f
+        // Method begins at RVA 0x424b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2435,11 +4610,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_Symbols
 
-    // method line 51
+    // method line 108
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.LibraryCollection get_IgnoreLibraries ()  cil managed 
     {
-        // Method begins at RVA 0x331c
+        // Method begins at RVA 0x4258
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2454,11 +4629,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_IgnoreLibraries
 
-    // method line 52
+    // method line 109
     .method public hidebysig specialname 
            instance default void set_IgnoreLibraries (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3337
+        // Method begins at RVA 0x4273
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2468,11 +4643,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_IgnoreLibraries
 
-    // method line 53
+    // method line 110
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_LibDirs ()  cil managed 
     {
-        // Method begins at RVA 0x3344
+        // Method begins at RVA 0x4280
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2487,11 +4662,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_LibDirs
 
-    // method line 54
+    // method line 111
     .method public hidebysig specialname 
            instance default void set_LibDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x335f
+        // Method begins at RVA 0x429b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2501,11 +4676,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_LibDirs
 
-    // method line 55
+    // method line 112
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x336c
+        // Method begins at RVA 0x42a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2520,11 +4695,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_ProgramFileName
 
-    // method line 56
+    // method line 113
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x3388
+        // Method begins at RVA 0x42c4
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -2542,11 +4717,11 @@
 	IL_001d:  ret 
     } // end of method LibTask::get_ProgramArguments
 
-    // method line 57
+    // method line 114
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x33b4
+        // Method begins at RVA 0x42f0
 	// Code size 828 (0x33c)
 	.maxstack 7
 	.locals init (
@@ -2883,11 +5058,11 @@
 	IL_033b:  ret 
     } // end of method LibTask::ExecuteTask
 
-    // method line 58
+    // method line 115
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x3778
+        // Method begins at RVA 0x46b4
 	// Code size 138 (0x8a)
 	.maxstack 7
 	.locals init (
@@ -3020,6 +5195,515 @@
 
 .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 116
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x474a
+	// 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 117
+    .method public hidebysig specialname 
+           instance default string get_Options ()  cil managed 
+    {
+        // Method begins at RVA 0x4754
+	// 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 118
+    .method public hidebysig specialname 
+           instance default void set_Options (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x476f
+	// 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 119
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_HeaderPath ()  cil managed 
+    {
+        // Method begins at RVA 0x477c
+	// 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 120
+    .method public hidebysig specialname 
+           instance default void set_HeaderPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x47b9
+	// 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 121
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_RCPath ()  cil managed 
+    {
+        // Method begins at RVA 0x47c4
+	// 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 122
+    .method public hidebysig specialname 
+           instance default void set_RCPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4801
+	// 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 123
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_McFile ()  cil managed 
+    {
+        // Method begins at RVA 0x480c
+	// 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 124
+    .method public hidebysig specialname 
+           instance default void set_McFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4827
+	// 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 125
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
+    {
+        // Method begins at RVA 0x4834
+	// 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 126
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x4850
+	// 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 127
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x4930
+	// 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 128
+    .method private hidebysig 
+           instance default bool NeedsCompiling (string destinationFile)  cil managed 
+    {
+        // Method begins at RVA 0x4a78
+	// 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 LinkTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -3039,11 +5723,11 @@
     .field  private  class NAnt.VisualCpp.Types.LibraryCollection _ignoreLibraries
     .field  private  string _options
 
-    // method line 59
+    // method line 129
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3810
+        // Method begins at RVA 0x4b0c
 	// Code size 84 (0x54)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -3072,11 +5756,11 @@
 	IL_0053:  ret 
     } // end of method LinkTask::.ctor
 
-    // method line 60
+    // method line 130
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x3870
+        // Method begins at RVA 0x4b6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3091,11 +5775,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Options
 
-    // method line 61
+    // method line 131
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x388b
+        // Method begins at RVA 0x4b87
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3105,11 +5789,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Options
 
-    // method line 62
+    // method line 132
     .method public hidebysig specialname 
            instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0x3898
+        // Method begins at RVA 0x4b94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3124,11 +5808,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Debug
 
-    // method line 63
+    // method line 133
     .method public hidebysig specialname 
            instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x38b3
+        // Method begins at RVA 0x4baf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3138,11 +5822,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Debug
 
-    // method line 64
+    // method line 134
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x38c0
+        // Method begins at RVA 0x4bbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3157,11 +5841,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_OutputFile
 
-    // method line 65
+    // method line 135
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x38db
+        // Method begins at RVA 0x4bd7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3171,11 +5855,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_OutputFile
 
-    // method line 66
+    // method line 136
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ProgramDatabaseFile ()  cil managed 
     {
-        // Method begins at RVA 0x38e8
+        // Method begins at RVA 0x4be4
 	// Code size 71 (0x47)
 	.maxstack 3
 	.locals init (
@@ -3208,11 +5892,11 @@
 	IL_0046:  ret 
     } // end of method LinkTask::get_ProgramDatabaseFile
 
-    // method line 67
+    // method line 137
     .method public hidebysig specialname 
            instance default void set_ProgramDatabaseFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x393b
+        // Method begins at RVA 0x4c37
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3222,11 +5906,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_ProgramDatabaseFile
 
-    // method line 68
+    // method line 138
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ModuleDefinition ()  cil managed 
     {
-        // Method begins at RVA 0x3948
+        // Method begins at RVA 0x4c44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3241,11 +5925,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_ModuleDefinition
 
-    // method line 69
+    // method line 139
     .method public hidebysig specialname 
            instance default void set_ModuleDefinition (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3963
+        // Method begins at RVA 0x4c5f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3255,11 +5939,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_ModuleDefinition
 
-    // method line 70
+    // method line 140
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_DelayLoadedDlls ()  cil managed 
     {
-        // Method begins at RVA 0x3970
+        // Method begins at RVA 0x4c6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3274,11 +5958,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_DelayLoadedDlls
 
-    // method line 71
+    // method line 141
     .method public hidebysig specialname 
            instance default void set_DelayLoadedDlls (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x398b
+        // Method begins at RVA 0x4c87
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3288,11 +5972,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_DelayLoadedDlls
 
-    // method line 72
+    // method line 142
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x3998
+        // Method begins at RVA 0x4c94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3307,11 +5991,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Sources
 
-    // method line 73
+    // method line 143
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x39b3
+        // Method begins at RVA 0x4caf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3321,11 +6005,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Sources
 
-    // method line 74
+    // method line 144
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_LibDirs ()  cil managed 
     {
-        // Method begins at RVA 0x39c0
+        // Method begins at RVA 0x4cbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3340,11 +6024,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_LibDirs
 
-    // method line 75
+    // method line 145
     .method public hidebysig specialname 
            instance default void set_LibDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x39db
+        // Method begins at RVA 0x4cd7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3354,11 +6038,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_LibDirs
 
-    // method line 76
+    // method line 146
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0x39e8
+        // Method begins at RVA 0x4ce4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3373,11 +6057,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Modules
 
-    // method line 77
+    // method line 147
     .method public hidebysig specialname 
            instance default void set_Modules (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a03
+        // Method begins at RVA 0x4cff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3387,11 +6071,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Modules
 
-    // method line 78
+    // method line 148
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_EmbeddedResources ()  cil managed 
     {
-        // Method begins at RVA 0x3a10
+        // Method begins at RVA 0x4d0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3406,11 +6090,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_EmbeddedResources
 
-    // method line 79
+    // method line 149
     .method public hidebysig specialname 
            instance default void set_EmbeddedResources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a2b
+        // Method begins at RVA 0x4d27
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3420,11 +6104,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_EmbeddedResources
 
-    // method line 80
+    // method line 150
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.SymbolCollection get_Symbols ()  cil managed 
     {
-        // Method begins at RVA 0x3a38
+        // Method begins at RVA 0x4d34
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3439,11 +6123,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Symbols
 
-    // method line 81
+    // method line 151
     .method public hidebysig specialname 
            instance default void set_Symbols (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a53
+        // Method begins at RVA 0x4d4f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3453,11 +6137,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Symbols
 
-    // method line 82
+    // method line 152
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.LibraryCollection get_IgnoreLibraries ()  cil managed 
     {
-        // Method begins at RVA 0x3a60
+        // Method begins at RVA 0x4d5c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3472,11 +6156,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_IgnoreLibraries
 
-    // method line 83
+    // method line 153
     .method public hidebysig specialname 
            instance default void set_IgnoreLibraries (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a7b
+        // Method begins at RVA 0x4d77
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3486,11 +6170,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_IgnoreLibraries
 
-    // method line 84
+    // method line 154
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x3a88
+        // Method begins at RVA 0x4d84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3505,11 +6189,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_ProgramFileName
 
-    // method line 85
+    // method line 155
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x3aa4
+        // Method begins at RVA 0x4da0
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -3527,11 +6211,11 @@
 	IL_001d:  ret 
     } // end of method LinkTask::get_ProgramArguments
 
-    // method line 86
+    // method line 156
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3ad0
+        // Method begins at RVA 0x4dcc
 	// Code size 1239 (0x4d7)
 	.maxstack 7
 	.locals init (
@@ -4027,11 +6711,11 @@
 	IL_04d6:  ret 
     } // end of method LinkTask::ExecuteTask
 
-    // method line 87
+    // method line 157
     .method family virtual hidebysig newslot 
            instance default bool NeedsLinking ()  cil managed 
     {
-        // Method begins at RVA 0x4078
+        // Method begins at RVA 0x5374
 	// Code size 365 (0x16d)
 	.maxstack 7
 	.locals init (
@@ -4181,11 +6865,11 @@
 	IL_016c:  ret 
     } // end of method LinkTask::NeedsLinking
 
-    // method line 88
+    // method line 158
     .method public static hidebysig 
            default string QuoteArgumentValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x41f4
+        // Method begins at RVA 0x54f0
 	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
@@ -4305,3028 +6989,493 @@
   } // end of class NAnt.VisualCpp.Tasks.LinkTask
 }
 
-.namespace NAnt.VisualCpp.Tasks
+.namespace NAnt.VisualCpp.Types
 {
-  .class public auto ansi beforefieldinit RcTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi serializable beforefieldinit LibraryCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 72 63 00 00 ) // ...rc..
+    .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 _options
-    .field  private  int32 _langId
-    .field  private  class [mscorlib]System.IO.FileInfo _rcFile
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _includeDirs
-    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _defines
 
-    // method line 89
+    // method line 159
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x4210
-	// Code size 36 (0x24)
+        // Method begins at RVA 0x550c
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld int32 NAnt.VisualCpp.Tasks.RcTask::_langId
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_000d:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.RcTask::_includeDirs
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
-	IL_0018:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.RcTask::_defines
-	IL_001d:  ldarg.0 
-	IL_001e:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0023:  ret 
-    } // end of method RcTask::.ctor
-
-    // method line 90
-    .method public hidebysig specialname 
-           instance default string get_Options ()  cil managed 
-    {
-        // Method begins at RVA 0x4238
-	// 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.RcTask::_options
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RcTask::get_Options
-
-    // method line 91
-    .method public hidebysig specialname 
-           instance default void set_Options (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4253
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.RcTask::_options
-	IL_0008:  ret 
-    } // end of method RcTask::set_Options
-
-    // method line 92
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x4260
-	// Code size 60 (0x3c)
-	.maxstack 3
-	.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.RcTask::_outputFile
-	IL_0007:  brtrue IL_002e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	IL_0014:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0019:  ldstr "RES"
-	IL_001e:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_0023:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0028:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.RcTask::_outputFile
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.RcTask::_outputFile
-	IL_0034:  stloc.0 
-	IL_0035:  br IL_003a
-
-	IL_003a:  ldloc.0 
-	IL_003b:  ret 
-    } // end of method RcTask::get_OutputFile
-
-    // method line 93
-    .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x42a8
-	// 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.RcTask::_outputFile
-	IL_0008:  ret 
-    } // end of method RcTask::set_OutputFile
-
-    // method line 94
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_RcFile ()  cil managed 
-    {
-        // Method begins at RVA 0x42b4
-	// 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.RcTask::_rcFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RcTask::get_RcFile
-
-    // method line 95
-    .method public hidebysig specialname 
-           instance default void set_RcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x42cf
-	// 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.RcTask::_rcFile
-	IL_0008:  ret 
-    } // end of method RcTask::set_RcFile
-
-    // method line 96
-    .method public hidebysig specialname 
-           instance default int32 get_LangId ()  cil managed 
-    {
-        // Method begins at RVA 0x42dc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.VisualCpp.Tasks.RcTask::_langId
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RcTask::get_LangId
-
-    // method line 97
-    .method public hidebysig specialname 
-           instance default void set_LangId (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x42f7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.VisualCpp.Tasks.RcTask::_langId
-	IL_0008:  ret 
-    } // end of method RcTask::set_LangId
-
-    // method line 98
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
-    {
-        // Method begins at RVA 0x4304
-	// 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.RcTask::_includeDirs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RcTask::get_IncludeDirs
-
-    // method line 99
-    .method public hidebysig specialname 
-           instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x431f
-	// 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.RcTask::_includeDirs
-	IL_0008:  ret 
-    } // end of method RcTask::set_IncludeDirs
-
-    // method line 100
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
-    {
-        // Method begins at RVA 0x432c
-	// 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.RcTask::_defines
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RcTask::get_Defines
-
-    // method line 101
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x4348
-	// 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 RcTask::get_ProgramFileName
-
-    // method line 102
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x4364
-	// Code size 439 (0x1b7)
-	.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,
-		class [NAnt.Core]NAnt.Core.Types.Option	V_4,
-		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	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:  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:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_001e:  pop 
-	IL_001f:  nop 
-	IL_0020:  ldloc.0 
-	IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0026:  ldstr "/fo\"{0}\" "
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_OutputFile()
-	IL_0031:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0036:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	IL_003b:  pop 
-	IL_003c:  ldarg.0 
-	IL_003d:  call instance string class NAnt.VisualCpp.Tasks.RcTask::get_Options()
-	IL_0042:  brfalse IL_0060
-
-	IL_0047:  nop 
-	IL_0048:  ldloc.0 
-	IL_0049:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004e:  ldstr "{0} "
-	IL_0053:  ldarg.0 
-	IL_0054:  call instance string class NAnt.VisualCpp.Tasks.RcTask::get_Options()
-	IL_0059:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	IL_005e:  pop 
-	IL_005f:  nop 
-	IL_0060:  ldarg.0 
-	IL_0061:  call instance int32 class NAnt.VisualCpp.Tasks.RcTask::get_LangId()
-	IL_0066:  brfalse IL_0084
-
-	IL_006b:  nop 
-	IL_006c:  ldloc.0 
-	IL_006d:  ldstr "/l 0x{0:X} "
-	IL_0072:  ldarg.0 
-	IL_0073:  call instance int32 class NAnt.VisualCpp.Tasks.RcTask::get_LangId()
-	IL_0078:  box [mscorlib]System.Int32
-	IL_007d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_0082:  pop 
-	IL_0083:  nop 
-	IL_0084:  nop 
-	IL_0085:  ldarg.0 
-	IL_0086:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.RcTask::get_IncludeDirs()
-	IL_008b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0090:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0095:  stloc.2 
-	.try { // 0
-	  IL_0096:  br IL_00b7
-
-	  IL_009b:  ldloc.2 
-	  IL_009c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00a1:  stloc.1 
-	  IL_00a2:  nop 
-	  IL_00a3:  ldloc.0 
-	  IL_00a4:  ldstr "/i {0} "
-	  IL_00a9:  ldloc.1 
-	  IL_00aa:  ldc.i4.1 
-	  IL_00ab:  call string class NAnt.VisualCpp.Util.ArgumentUtils::QuoteArgumentValue(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
-	  IL_00b0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	  IL_00b5:  pop 
-	  IL_00b6:  nop 
-	  IL_00b7:  ldloc.2 
-	  IL_00b8:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00bd:  brtrue IL_009b
-
-	  IL_00c2:  leave IL_00db
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00c7:  ldloc.2 
-	  IL_00c8:  isinst [mscorlib]System.IDisposable
-	  IL_00cd:  dup 
-	  IL_00ce:  stloc.3 
-	  IL_00cf:  brfalse IL_00da
-
-	  IL_00d4:  ldloc.3 
-	  IL_00d5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00da:  endfinally 
-	} // end handler 0
-	IL_00db:  nop 
-	IL_00dc:  ldarg.0 
-	IL_00dd:  call instance class [NAnt.Core]NAnt.Core.Types.OptionCollection class NAnt.VisualCpp.Tasks.RcTask::get_Defines()
-	IL_00e2:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
-	IL_00e7:  stloc.s 5
-	.try { // 1
-	  IL_00e9:  br IL_0163
-
-	  IL_00ee:  ldloc.s 5
-	  IL_00f0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
-	  IL_00f5:  stloc.s 4
-	  IL_00f7:  nop 
-	  IL_00f8:  ldloc.s 4
-	  IL_00fa:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	  IL_00ff:  brfalse IL_0110
-
-	  IL_0104:  ldloc.s 4
-	  IL_0106:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_UnlessDefined()
-	  IL_010b:  brfalse IL_0116
-
-	  IL_0110:  nop 
-	  IL_0111:  leave IL_0163
-
-	  IL_0116:  ldloc.s 4
-	  IL_0118:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	  IL_011d:  brtrue IL_0141
-
-	  IL_0122:  nop 
-	  IL_0123:  ldloc.0 
-	  IL_0124:  ldstr "/d {0} "
-	  IL_0129:  ldloc.s 4
-	  IL_012b:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_0130:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
-	  IL_0135:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	  IL_013a:  pop 
-	  IL_013b:  nop 
-	  IL_013c:  br IL_0162
-
-	  IL_0141:  nop 
-	  IL_0142:  ldloc.0 
-	  IL_0143:  ldstr "/d {0}={1} "
-	  IL_0148:  ldloc.s 4
-	  IL_014a:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_014f:  ldloc.s 4
-	  IL_0151:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	  IL_0156:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
-	  IL_015b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object, object)
-	  IL_0160:  pop 
-	  IL_0161:  nop 
-	  IL_0162:  nop 
-	  IL_0163:  ldloc.s 5
-	  IL_0165:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
-	  IL_016a:  brtrue IL_00ee
-
-	  IL_016f:  leave IL_018b
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0174:  ldloc.s 5
-	  IL_0176:  isinst [mscorlib]System.IDisposable
-	  IL_017b:  dup 
-	  IL_017c:  stloc.s 6
-	  IL_017e:  brfalse IL_018a
-
-	  IL_0183:  ldloc.s 6
-	  IL_0185:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_018a:  endfinally 
-	} // end handler 1
-	IL_018b:  ldloc.0 
-	IL_018c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0191:  ldstr "\"{0}\" "
-	IL_0196:  ldarg.0 
-	IL_0197:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	IL_019c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01a1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01a6:  pop 
-	IL_01a7:  ldloc.0 
-	IL_01a8:  callvirt instance string object::ToString()
-	IL_01ad:  stloc.s 7
-	IL_01af:  br IL_01b4
-
-	IL_01b4:  ldloc.s 7
-	IL_01b6:  ret 
-    } // end of method RcTask::get_ProgramArguments
-
-    // method line 103
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x4544
-	// Code size 116 (0x74)
-	.maxstack 7
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.RcTask::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.RcTask::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:  callvirt instance bool class NAnt.VisualCpp.Tasks.RcTask::NeedsCompiling()
-	IL_0034:  brfalse IL_0073
-
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldc.i4 3000
-	IL_0040:  ldstr "Compiling \"{0}\" to \"{1}\"."
-	IL_0045:  ldc.i4.2 
-	IL_0046:  newarr [mscorlib]System.Object
-	IL_004b:  dup 
-	IL_004c:  ldc.i4.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	IL_0053:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0058:  stelem.ref 
-	IL_0059:  dup 
-	IL_005a:  ldc.i4.1 
-	IL_005b:  ldarg.0 
-	IL_005c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_OutputFile()
-	IL_0061:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0066:  stelem.ref 
-	IL_0067:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_006c:  ldarg.0 
-	IL_006d:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_0072:  nop 
-	IL_0073:  ret 
-    } // end of method RcTask::ExecuteTask
-
-    // method line 104
-    .method family virtual hidebysig newslot 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x45c4
-	// Code size 443 (0x1bb)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		string	V_1,
-		class [System]System.Text.RegularExpressions.Regex	V_2,
-		class [System]System.Text.RegularExpressions.Regex	V_3,
-		class [System]System.Text.RegularExpressions.Regex	V_4,
-		class [mscorlib]System.IO.StreamReader	V_5,
-		string	V_6,
-		class [System]System.Text.RegularExpressions.Match	V_7)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::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 "'{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.VisualCpp.Tasks.RcTask::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_01b9
-
-	IL_003d:  ldarg.0 
-	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	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.VisualCpp.Tasks.RcTask::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}' is out of date, 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_01b9
-
-	IL_0081:  ldarg.0 
-	IL_0082:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	IL_0087:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_008c:  brtrue IL_0099
-
-	IL_0091:  nop 
-	IL_0092:  ldc.i4.1 
-	IL_0093:  stloc.0 
-	IL_0094:  br IL_01b9
-
-	IL_0099:  ldstr "IDB_(?<name>\\w+)\\s+BITMAP\\s+\\\"(?<file>[^\\\"]+)\\\""
-	IL_009e:  ldc.i4.s 0x11
-	IL_00a0:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_00a5:  stloc.2 
-	IL_00a6:  ldstr "IDI_(?<name>\\w+)\\s+ICON\\s+\\\"(?<file>[^\\\"]+)\\\""
-	IL_00ab:  ldc.i4.s 0x11
-	IL_00ad:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_00b2:  stloc.3 
-	IL_00b3:  ldstr "IDR_(?<name>\\w+)\\s+(?<Number>\\w+)\\s+\\\"(?<file>[^\\\"]+)\\\""
-	IL_00b8:  ldc.i4.s 0x11
-	IL_00ba:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_00bf:  stloc.s 4
-	IL_00c1:  ldarg.0 
-	IL_00c2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	IL_00c7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00cc:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string)
-	IL_00d1:  stloc.s 5
-	.try { // 0
-	  IL_00d3:  nop 
-	  IL_00d4:  br IL_0190
-
-	  IL_00d9:  nop 
-	  IL_00da:  ldloc.s 5
-	  IL_00dc:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_00e1:  stloc.s 6
-	  IL_00e3:  ldloc.2 
-	  IL_00e4:  ldloc.s 6
-	  IL_00e6:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	  IL_00eb:  stloc.s 7
-	  IL_00ed:  ldloc.s 7
-	  IL_00ef:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	  IL_00f4:  brfalse IL_011c
-
-	  IL_00f9:  nop 
-	  IL_00fa:  ldarg.0 
-	  IL_00fb:  ldloc.s 7
-	  IL_00fd:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0102:  ldstr "file"
-	  IL_0107:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_010c:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0111:  call instance bool class NAnt.VisualCpp.Tasks.RcTask::CheckResourceTimeStamp(string)
-	  IL_0116:  stloc.0 
-	  IL_0117:  leave IL_01b9
-
-	  IL_011c:  ldloc.3 
-	  IL_011d:  ldloc.s 6
-	  IL_011f:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	  IL_0124:  stloc.s 7
-	  IL_0126:  ldloc.s 7
-	  IL_0128:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	  IL_012d:  brfalse IL_0155
-
-	  IL_0132:  nop 
-	  IL_0133:  ldarg.0 
-	  IL_0134:  ldloc.s 7
-	  IL_0136:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_013b:  ldstr "file"
-	  IL_0140:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_0145:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_014a:  call instance bool class NAnt.VisualCpp.Tasks.RcTask::CheckResourceTimeStamp(string)
-	  IL_014f:  stloc.0 
-	  IL_0150:  leave IL_01b9
-
-	  IL_0155:  ldloc.s 4
-	  IL_0157:  ldloc.s 6
-	  IL_0159:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	  IL_015e:  stloc.s 7
-	  IL_0160:  ldloc.s 7
-	  IL_0162:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	  IL_0167:  brfalse IL_018f
-
-	  IL_016c:  nop 
-	  IL_016d:  ldarg.0 
-	  IL_016e:  ldloc.s 7
-	  IL_0170:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0175:  ldstr "file"
-	  IL_017a:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_017f:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0184:  call instance bool class NAnt.VisualCpp.Tasks.RcTask::CheckResourceTimeStamp(string)
-	  IL_0189:  stloc.0 
-	  IL_018a:  leave IL_01b9
-
-	  IL_018f:  nop 
-	  IL_0190:  ldloc.s 5
-	  IL_0192:  callvirt instance int32 class [mscorlib]System.IO.TextReader::Peek()
-	  IL_0197:  ldc.i4.m1 
-	  IL_0198:  bne.un IL_00d9
-
-	  IL_019d:  nop 
-	  IL_019e:  leave IL_01b2
-
-	} // end .try 0
-	finally  { // 0
-	  IL_01a3:  ldloc.s 5
-	  IL_01a5:  brfalse IL_01b1
-
-	  IL_01aa:  ldloc.s 5
-	  IL_01ac:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01b1:  endfinally 
-	} // end handler 0
-	IL_01b2:  ldc.i4.0 
-	IL_01b3:  stloc.0 
-	IL_01b4:  br IL_01b9
-
-	IL_01b9:  ldloc.0 
-	IL_01ba:  ret 
-    } // end of method RcTask::NeedsCompiling
-
-    // method line 105
-    .method private hidebysig 
-           instance default bool CheckResourceTimeStamp (string filePath)  cil managed 
-    {
-        // Method begins at RVA 0x479c
-	// Code size 86 (0x56)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		string	V_1,
-		bool	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_RcFile()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	IL_000c:  ldarg.1 
-	IL_000d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0012:  stloc.1 
-	IL_0013:  ldloc.1 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.RcTask::get_OutputFile()
-	IL_001a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_001f:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0024:  stloc.0 
-	IL_0025:  ldloc.0 
-	IL_0026:  brfalse IL_004d
-
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  ldc.i4 2000
-	IL_0032:  ldstr "'{0}' has been updated, recompiling."
-	IL_0037:  ldc.i4.1 
-	IL_0038:  newarr [mscorlib]System.Object
-	IL_003d:  dup 
-	IL_003e:  ldc.i4.0 
-	IL_003f:  ldloc.0 
-	IL_0040:  stelem.ref 
-	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0046:  ldc.i4.1 
-	IL_0047:  stloc.2 
-	IL_0048:  br IL_0054
-
-	IL_004d:  ldc.i4.0 
-	IL_004e:  stloc.2 
-	IL_004f:  br IL_0054
-
-	IL_0054:  ldloc.2 
-	IL_0055:  ret 
-    } // end of method RcTask::CheckResourceTimeStamp
-
-	.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.RcTask::get_Options () 
-		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_Options (string '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.VisualCpp.Tasks.RcTask::get_OutputFile () 
-		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo RcFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 72 63 66 69 6C 65 01 00 54 02 08 52 65   // ...rcfile..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.RcTask::get_RcFile () 
-		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_RcFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance int32 LangId ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6C 61 6E 67 69 64 01 00 54 02 08 52 65   // ...langid..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
-
-		.get instance default int32 NAnt.VisualCpp.Tasks.RcTask::get_LangId () 
-		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_LangId (int32 'value') 
-	}
-	.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.RcTask::get_IncludeDirs () 
-		.set instance default void NAnt.VisualCpp.Tasks.RcTask::set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
-	}
-	.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.RcTask::get_Defines () 
-	}
-	.property instance string ProgramFileName ()
-	{
-		.get instance default string NAnt.VisualCpp.Tasks.RcTask::get_ProgramFileName () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.VisualCpp.Tasks.RcTask::get_ProgramArguments () 
-	}
-  } // end of class NAnt.VisualCpp.Tasks.RcTask
-}
-
-.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"
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method LibraryCollection::.ctor
 
-    // method line 106
+    // method line 160
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x47fe
-	// Code size 62 (0x3e)
+        // Method begins at RVA 0x5515
+	// Code size 15 (0xf)
 	.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 107
-    .method public hidebysig specialname 
-           instance default string get_Acf ()  cil managed 
-    {
-        // Method begins at RVA 0x4840
-	// 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_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.VisualCpp.Types.LibraryCollection::AddRange(class NAnt.VisualCpp.Types.LibraryCollection)
 	IL_000e:  ret 
-    } // end of method MidlTask::get_Acf
-
-    // method line 108
-    .method public hidebysig specialname 
-           instance default void set_Acf (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x485b
-	// 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
+    } // end of method LibraryCollection::.ctor
 
-    // method line 109
-    .method public hidebysig specialname 
-           instance default string get_Align ()  cil managed 
+    // method line 161
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VisualCpp.Types.Library[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x4868
+        // Method begins at RVA 0x5525
 	// 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 110
-    .method public hidebysig specialname 
-           instance default void set_Align (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4883
-	// 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 111
-    .method public hidebysig specialname 
-           instance default bool get_AppConfig ()  cil managed 
-    {
-        // Method begins at RVA 0x4890
-	// 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_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.VisualCpp.Types.LibraryCollection::AddRange(class NAnt.VisualCpp.Types.Library[])
 	IL_000e:  ret 
-    } // end of method MidlTask::get_AppConfig
-
-    // method line 112
-    .method public hidebysig specialname 
-           instance default void set_AppConfig (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x48ab
-	// 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
+    } // end of method LibraryCollection::.ctor
 
-    // method line 113
+    // method line 162
     .method public hidebysig specialname 
-           instance default string get_Char ()  cil managed 
+           instance default class NAnt.VisualCpp.Types.Library get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x48b8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x5538
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.VisualCpp.Types.Library	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
+	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.VisualCpp.Types.Library
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-    // method line 114
-    .method public hidebysig specialname 
-           instance default void set_Char (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x48d3
-	// 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
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method LibraryCollection::get_Item
 
-    // method line 115
+    // method line 163
     .method public hidebysig specialname 
-           instance default string get_Client ()  cil managed 
+           instance default void set_Item (int32 index, class NAnt.VisualCpp.Types.Library 'value')  cil managed 
     {
-        // Method begins at RVA 0x48e0
+        // Method begins at RVA 0x555e
 	// 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 116
-    .method public hidebysig specialname 
-           instance default void set_Client (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x48fb
-	// 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 117
-    .method public hidebysig specialname 
-           instance default string get_CStub ()  cil managed 
-    {
-        // Method begins at RVA 0x4908
-	// 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_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 MidlTask::get_CStub
-
-    // method line 118
-    .method public hidebysig specialname 
-           instance default void set_CStub (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4923
-	// 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
+    } // end of method LibraryCollection::set_Item
 
-    // method line 119
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DllData ()  cil managed 
+    // method line 164
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x4930
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x5570
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		int32	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
+	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
 
-    // method line 120
-    .method public hidebysig specialname 
-           instance default void set_DllData (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x494b
-	// 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
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method LibraryCollection::Add
 
-    // method line 121
-    .method public hidebysig specialname 
-           instance default string get_Env ()  cil managed 
+    // method line 165
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.VisualCpp.Types.Library[] items)  cil managed 
     {
-        // Method begins at RVA 0x4958
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x5594
+	// Code size 34 (0x22)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		int32	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Env
+	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.VisualCpp.Types.LibraryCollection::Add(class NAnt.VisualCpp.Types.Library)
+	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 122
-    .method public hidebysig specialname 
-           instance default void set_Env (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4973
-	// 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
+	IL_0021:  ret 
+    } // end of method LibraryCollection::AddRange
 
-    // method line 123
-    .method public hidebysig specialname 
-           instance default string get_Oi ()  cil managed 
+    // method line 166
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.VisualCpp.Types.LibraryCollection items)  cil managed 
     {
-        // Method begins at RVA 0x4980
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x55c4
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		int32	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_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Oi
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.VisualCpp.Types.Library class NAnt.VisualCpp.Types.LibraryCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.VisualCpp.Types.LibraryCollection::Add(class NAnt.VisualCpp.Types.Library)
+	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 124
-    .method public hidebysig specialname 
-           instance default void set_Oi (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x499b
-	// 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
+	IL_0028:  ret 
+    } // end of method LibraryCollection::AddRange
 
-    // method line 125
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Tlb ()  cil managed 
+    // method line 167
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x49a8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x55fc
+	// 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:  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
+	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 126
-    .method public hidebysig specialname 
-           instance default void set_Tlb (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x49c3
-	// 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
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method LibraryCollection::Contains
 
-    // method line 127
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Header ()  cil managed 
+    // method line 168
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.VisualCpp.Types.Library[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x49d0
+        // Method begins at RVA 0x561d
 	// 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 128
-    .method public hidebysig specialname 
-           instance default void set_Header (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x49eb
-	// 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 129
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Iid ()  cil managed 
-    {
-        // Method begins at RVA 0x49f8
-	// 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_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 MidlTask::get_Iid
-
-    // method line 130
-    .method public hidebysig specialname 
-           instance default void set_Iid (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4a13
-	// 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
+    } // end of method LibraryCollection::CopyTo
 
-    // method line 131
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Proxy ()  cil managed 
+    // method line 169
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x4a20
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x5630
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		int32	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
+	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 132
-    .method public hidebysig specialname 
-           instance default void set_Proxy (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4a3b
-	// 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
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method LibraryCollection::IndexOf
 
-    // method line 133
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Filename ()  cil managed 
+    // method line 170
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x4a48
+        // Method begins at RVA 0x5651
 	// 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 134
-    .method public hidebysig specialname 
-           instance default void set_Filename (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4a63
-	// 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 135
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
-    {
-        // Method begins at RVA 0x4a70
-	// 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 136
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
-    {
-        // Method begins at RVA 0x4a8c
-	// 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 137
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Undefines ()  cil managed 
-    {
-        // Method begins at RVA 0x4aa8
-	// 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_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 MidlTask::get_Undefines
+    } // end of method LibraryCollection::Insert
 
-    // method line 138
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
+    // method line 171
+    .method public hidebysig 
+           instance default class NAnt.VisualCpp.Types.LibraryEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x4ac4
+        // Method begins at RVA 0x5664
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		class NAnt.VisualCpp.Types.LibraryEnumerator	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_0002:  newobj instance void class NAnt.VisualCpp.Types.LibraryEnumerator::'.ctor'(class NAnt.VisualCpp.Types.LibraryCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MidlTask::get_IncludeDirs
+    } // end of method LibraryCollection::GetEnumerator
 
-    // method line 139
-    .method public hidebysig specialname 
-           instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 172
+    .method public hidebysig 
+           instance default void Remove (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x4adf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x567f
+	// Code size 14 (0xe)
 	.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 140
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x4aec
-	// 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_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 MidlTask::get_ProgramFileName
-
-    // method line 141
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x4b08
-	// 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 142
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x4b34
-	// 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 143
-    .method private hidebysig 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x4c38
-	// 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 144
-    .method private hidebysig 
-           instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
-    {
-        // Method begins at RVA 0x4cbc
-	// 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 145
-    .method private hidebysig 
-           instance default void WriteResponseFile (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x4d44
-	// 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..
+    } // end of method LibraryCollection::Remove
 
-		.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 ()
+	.property instance class NAnt.VisualCpp.Types.Library Item (int32)
 	{
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_ProgramArguments () 
+		.get instance default class NAnt.VisualCpp.Types.Library NAnt.VisualCpp.Types.LibraryCollection::get_Item (int32 index) 
+		.set instance default void NAnt.VisualCpp.Types.LibraryCollection::set_Item (int32 index, class NAnt.VisualCpp.Types.Library 'value') 
 	}
-  } // end of class NAnt.VisualCpp.Tasks.MidlTask
+  } // end of class NAnt.VisualCpp.Types.LibraryCollection
 }
 
-.namespace NAnt.VisualCpp.Tasks
+.namespace NAnt.VisualCpp.Types
 {
-  .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
+  .class public auto ansi beforefieldinit LibraryEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 146
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 173
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VisualCpp.Types.LibraryCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x5150
-	// Code size 7 (0x7)
-	.maxstack 8
+        // Method begins at RVA 0x5690
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
 	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
+	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.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method LibraryEnumerator::.ctor
 
-    // method line 147
+    // method line 174
     .method public hidebysig specialname 
-           instance default string get_Options ()  cil managed 
+           instance default class NAnt.VisualCpp.Types.Library get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x5158
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x56b4
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VisualCpp.Types.Library	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
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.VisualCpp.Types.Library
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 148
-    .method public hidebysig specialname 
-           instance default void set_Options (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5173
-	// 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
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method LibraryEnumerator::get_Current
 
-    // method line 149
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_HeaderPath ()  cil managed 
+    // method line 175
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x5180
-	// Code size 49 (0x31)
+        // Method begins at RVA 0x56dc
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		object	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
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 150
-    .method public hidebysig specialname 
-           instance default void set_HeaderPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x51bd
-	// 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
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method LibraryEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 151
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_RCPath ()  cil managed 
+    // method line 176
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x51c8
-	// Code size 49 (0x31)
+        // Method begins at RVA 0x56fc
+	// 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.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
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 152
-    .method public hidebysig specialname 
-           instance default void set_RCPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5205
-	// 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
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method LibraryEnumerator::MoveNext
 
-    // method line 153
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_McFile ()  cil managed 
+    // method line 177
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x5210
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x571c
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.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.VisualCpp.Tasks.McTask::_mcFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_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 McTask::get_McFile
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method LibraryEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 154
-    .method public hidebysig specialname 
-           instance default void set_McFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 178
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x522b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x573c
+	// Code size 13 (0xd)
 	.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 155
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x5238
-	// 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 156
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x5254
-	// 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 157
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x5334
-	// 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
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method LibraryEnumerator::Reset
 
-    // method line 158
-    .method private hidebysig 
-           instance default bool NeedsCompiling (string destinationFile)  cil managed 
+    // method line 179
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x547c
-	// Code size 136 (0x88)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		bool	V_1)
+        // Method begins at RVA 0x574a
+	.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.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.
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method LibraryEnumerator::System.Collections.IEnumerator.Reset
 
-		.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 ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_ProgramFileName () 
+		.get instance default object NAnt.VisualCpp.Types.LibraryEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance string ProgramArguments ()
+	.property instance class NAnt.VisualCpp.Types.Library Current ()
 	{
-		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_ProgramArguments () 
+		.get instance default class NAnt.VisualCpp.Types.Library NAnt.VisualCpp.Types.LibraryEnumerator::get_Current () 
 	}
-  } // end of class NAnt.VisualCpp.Tasks.McTask
+  } // end of class NAnt.VisualCpp.Types.LibraryEnumerator
 }
 
-.namespace NAnt.VisualCpp.Util
+.namespace NAnt.VisualCpp.Types
 {
-  .class public auto ansi sealed BackslashProcessingMethod
+  .class public auto ansi sealed CharacterSet
   	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 159
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x5510
-	// 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 160
-    .method public static hidebysig 
-           default string ProcessTrailingBackslash (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
-    {
-        // Method begins at RVA 0x5518
-	// 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 161
-    .method public static hidebysig 
-           default string DuplicateTrailingBackslash (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x558c
-	// 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 162
-    .method public static hidebysig 
-           default string FixTrailingBackslash (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5630
-	// 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 163
-    .method public static hidebysig 
-           default string CleanTrailingBackslash (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x56c4
-	// 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 164
-    .method public static hidebysig 
-           default string QuoteArgumentValue (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
-    {
-        // Method begins at RVA 0x56f4
-	// 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
+    .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.Util.ArgumentUtils
+  } // end of class NAnt.VisualCpp.Types.CharacterSet
 }
 
 .namespace NAnt.VisualCpp.Types
 {
-  .class public auto ansi serializable beforefieldinit LibraryCollection
+  .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 165
+    // method line 180
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x574a
+        // Method begins at RVA 0x5758
 	// 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 LibraryCollection::.ctor
+    } // end of method SymbolCollection::.ctor
 
-    // method line 166
+    // method line 181
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x5753
+        // Method begins at RVA 0x5761
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -7334,15 +7483,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.VisualCpp.Types.LibraryCollection::AddRange(class NAnt.VisualCpp.Types.LibraryCollection)
+	IL_0009:  call instance void class NAnt.VisualCpp.Types.SymbolCollection::AddRange(class NAnt.VisualCpp.Types.SymbolCollection)
 	IL_000e:  ret 
-    } // end of method LibraryCollection::.ctor
+    } // end of method SymbolCollection::.ctor
 
-    // method line 167
+    // method line 182
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VisualCpp.Types.Library[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.VisualCpp.Types.Symbol[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x5763
+        // Method begins at RVA 0x5771
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -7350,37 +7499,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.VisualCpp.Types.LibraryCollection::AddRange(class NAnt.VisualCpp.Types.Library[])
+	IL_0009:  call instance void class NAnt.VisualCpp.Types.SymbolCollection::AddRange(class NAnt.VisualCpp.Types.Symbol[])
 	IL_000e:  ret 
-    } // end of method LibraryCollection::.ctor
+    } // end of method SymbolCollection::.ctor
 
-    // method line 168
+    // method line 183
     .method public hidebysig specialname 
-           instance default class NAnt.VisualCpp.Types.Library get_Item (int32 index)  cil managed 
+           instance default class NAnt.VisualCpp.Types.Symbol get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x5774
+        // Method begins at RVA 0x5784
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.VisualCpp.Types.Library	V_0)
+		class NAnt.VisualCpp.Types.Symbol	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.VisualCpp.Types.Library
+	IL_000d:  castclass NAnt.VisualCpp.Types.Symbol
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method LibraryCollection::get_Item
+    } // end of method SymbolCollection::get_Item
 
-    // method line 169
+    // method line 184
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.VisualCpp.Types.Library 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.VisualCpp.Types.Symbol 'value')  cil managed 
     {
-        // Method begins at RVA 0x579a
+        // Method begins at RVA 0x57aa
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -7390,13 +7539,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 LibraryCollection::set_Item
+    } // end of method SymbolCollection::set_Item
 
-    // method line 170
+    // method line 185
     .method public hidebysig 
-           instance default int32 Add (class NAnt.VisualCpp.Types.Library item)  cil managed 
+           instance default int32 Add (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x57ac
+        // Method begins at RVA 0x57bc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -7411,13 +7560,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method LibraryCollection::Add
+    } // end of method SymbolCollection::Add
 
-    // method line 171
+    // method line 186
     .method public hidebysig 
-           instance default void AddRange (class NAnt.VisualCpp.Types.Library[] items)  cil managed 
+           instance default void AddRange (class NAnt.VisualCpp.Types.Symbol[] items)  cil managed 
     {
-        // Method begins at RVA 0x57d0
+        // Method begins at RVA 0x57e0
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -7432,7 +7581,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.VisualCpp.Types.LibraryCollection::Add(class NAnt.VisualCpp.Types.Library)
+	IL_000d:  call instance int32 class NAnt.VisualCpp.Types.SymbolCollection::Add(class NAnt.VisualCpp.Types.Symbol)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -7446,13 +7595,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method LibraryCollection::AddRange
+    } // end of method SymbolCollection::AddRange
 
-    // method line 172
+    // method line 187
     .method public hidebysig 
-           instance default void AddRange (class NAnt.VisualCpp.Types.LibraryCollection items)  cil managed 
+           instance default void AddRange (class NAnt.VisualCpp.Types.SymbolCollection items)  cil managed 
     {
-        // Method begins at RVA 0x5800
+        // Method begins at RVA 0x5810
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -7466,8 +7615,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.VisualCpp.Types.Library class NAnt.VisualCpp.Types.LibraryCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.VisualCpp.Types.LibraryCollection::Add(class NAnt.VisualCpp.Types.Library)
+	IL_000c:  callvirt instance class NAnt.VisualCpp.Types.Symbol class NAnt.VisualCpp.Types.SymbolCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.VisualCpp.Types.SymbolCollection::Add(class NAnt.VisualCpp.Types.Symbol)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -7480,13 +7629,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method LibraryCollection::AddRange
+    } // end of method SymbolCollection::AddRange
 
-    // method line 173
+    // method line 188
     .method public hidebysig 
-           instance default bool Contains (class NAnt.VisualCpp.Types.Library item)  cil managed 
+           instance default bool Contains (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x5838
+        // Method begins at RVA 0x5848
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -7501,13 +7650,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method LibraryCollection::Contains
+    } // end of method SymbolCollection::Contains
 
-    // method line 174
+    // method line 189
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.VisualCpp.Types.Library[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.VisualCpp.Types.Symbol[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x5859
+        // Method begins at RVA 0x5869
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -7517,13 +7666,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 LibraryCollection::CopyTo
+    } // end of method SymbolCollection::CopyTo
 
-    // method line 175
+    // method line 190
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.VisualCpp.Types.Library item)  cil managed 
+           instance default int32 IndexOf (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x586c
+        // Method begins at RVA 0x587c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -7538,13 +7687,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method LibraryCollection::IndexOf
+    } // end of method SymbolCollection::IndexOf
 
-    // method line 176
+    // method line 191
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.VisualCpp.Types.Library item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x588d
+        // Method begins at RVA 0x589d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -7554,32 +7703,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method LibraryCollection::Insert
+    } // end of method SymbolCollection::Insert
 
-    // method line 177
+    // method line 192
     .method public hidebysig 
-           instance default class NAnt.VisualCpp.Types.LibraryEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.VisualCpp.Types.SymbolEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x58a0
+        // Method begins at RVA 0x58b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VisualCpp.Types.LibraryEnumerator	V_0)
+		class NAnt.VisualCpp.Types.SymbolEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VisualCpp.Types.LibraryEnumerator::'.ctor'(class NAnt.VisualCpp.Types.LibraryCollection)
+	IL_0002:  newobj instance void class NAnt.VisualCpp.Types.SymbolEnumerator::'.ctor'(class NAnt.VisualCpp.Types.SymbolCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LibraryCollection::GetEnumerator
+    } // end of method SymbolCollection::GetEnumerator
 
-    // method line 178
+    // method line 193
     .method public hidebysig 
-           instance default void Remove (class NAnt.VisualCpp.Types.Library item)  cil managed 
+           instance default void Remove (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x58bb
+        // Method begins at RVA 0x58cb
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -7588,28 +7737,28 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method LibraryCollection::Remove
+    } // end of method SymbolCollection::Remove
 
-	.property instance class NAnt.VisualCpp.Types.Library Item (int32)
+	.property instance class NAnt.VisualCpp.Types.Symbol Item (int32)
 	{
-		.get instance default class NAnt.VisualCpp.Types.Library NAnt.VisualCpp.Types.LibraryCollection::get_Item (int32 index) 
-		.set instance default void NAnt.VisualCpp.Types.LibraryCollection::set_Item (int32 index, class NAnt.VisualCpp.Types.Library 'value') 
+		.get instance default class NAnt.VisualCpp.Types.Symbol NAnt.VisualCpp.Types.SymbolCollection::get_Item (int32 index) 
+		.set instance default void NAnt.VisualCpp.Types.SymbolCollection::set_Item (int32 index, class NAnt.VisualCpp.Types.Symbol 'value') 
 	}
-  } // end of class NAnt.VisualCpp.Types.LibraryCollection
+  } // end of class NAnt.VisualCpp.Types.SymbolCollection
 }
 
 .namespace NAnt.VisualCpp.Types
 {
-  .class public auto ansi beforefieldinit LibraryEnumerator
+  .class public auto ansi beforefieldinit SymbolEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 179
+    // method line 194
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VisualCpp.Types.LibraryCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.VisualCpp.Types.SymbolCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x58cc
+        // Method begins at RVA 0x58dc
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -7622,36 +7771,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.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method LibraryEnumerator::.ctor
+    } // end of method SymbolEnumerator::.ctor
 
-    // method line 180
+    // method line 195
     .method public hidebysig specialname 
-           instance default class NAnt.VisualCpp.Types.Library get_Current ()  cil managed 
+           instance default class NAnt.VisualCpp.Types.Symbol get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x58f0
+        // Method begins at RVA 0x5900
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.VisualCpp.Types.Library	V_0)
+		class NAnt.VisualCpp.Types.Symbol	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.VisualCpp.Types.Library
+	IL_000c:  castclass NAnt.VisualCpp.Types.Symbol
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method LibraryEnumerator::get_Current
+    } // end of method SymbolEnumerator::get_Current
 
-    // method line 181
+    // method line 196
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x5918
+        // Method begins at RVA 0x5928
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -7659,40 +7808,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_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 LibraryEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method SymbolEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 182
+    // method line 197
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x5938
+        // Method begins at RVA 0x5948
 	// 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.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_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 LibraryEnumerator::MoveNext
+    } // end of method SymbolEnumerator::MoveNext
 
-    // method line 183
+    // method line 198
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x5958
+        // Method begins at RVA 0x5968
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -7700,90 +7849,90 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_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 LibraryEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method SymbolEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 184
+    // method line 199
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x5978
+        // Method begins at RVA 0x5988
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method LibraryEnumerator::Reset
+    } // end of method SymbolEnumerator::Reset
 
-    // method line 185
+    // method line 200
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x5986
+        // Method begins at RVA 0x5996
 	.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.VisualCpp.Types.LibraryEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method LibraryEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method SymbolEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.VisualCpp.Types.LibraryEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.VisualCpp.Types.SymbolEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.VisualCpp.Types.Library Current ()
+	.property instance class NAnt.VisualCpp.Types.Symbol Current ()
 	{
-		.get instance default class NAnt.VisualCpp.Types.Library NAnt.VisualCpp.Types.LibraryEnumerator::get_Current () 
+		.get instance default class NAnt.VisualCpp.Types.Symbol NAnt.VisualCpp.Types.SymbolEnumerator::get_Current () 
 	}
-  } // end of class NAnt.VisualCpp.Types.LibraryEnumerator
+  } // end of class NAnt.VisualCpp.Types.SymbolEnumerator
 }
 
 .namespace NAnt.VisualCpp.Types
 {
-  .class public auto ansi beforefieldinit Library
+  .class public auto ansi beforefieldinit Symbol
   	extends [NAnt.Core]NAnt.Core.Element
   {
-    .field  private  string _libraryName
+    .field  private  string _symbolName
     .field  private  bool _ifDefined
     .field  private  bool _unlessDefined
 
-    // method line 186
+    // method line 201
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5994
+        // Method begins at RVA 0x59a4
 	// 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_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 Library::.ctor
+    } // end of method Symbol::.ctor
 
-    // method line 187
+    // method line 202
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0x59a4
+        // Method begins at RVA 0x59b4
 	// 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_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 
@@ -7796,110 +7945,110 @@
 	IL_001f:  throw 
 	IL_0020:  ldarg.0 
 	IL_0021:  ldarg.1 
-	IL_0022:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
+	IL_0022:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
 	IL_0027:  ret 
-    } // end of method Library::.ctor
+    } // end of method Symbol::.ctor
 
-    // method line 188
+    // method line 203
     .method public hidebysig specialname 
-           instance default string get_LibraryName ()  cil managed 
+           instance default string get_SymbolName ()  cil managed 
     {
-        // Method begins at RVA 0x59d0
+        // Method begins at RVA 0x59e0
 	// 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_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 Library::get_LibraryName
+    } // end of method Symbol::get_SymbolName
 
-    // method line 189
+    // method line 204
     .method public hidebysig specialname 
-           instance default void set_LibraryName (string 'value')  cil managed 
+           instance default void set_SymbolName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x59eb
+        // Method begins at RVA 0x59fb
 	// 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_0003:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
 	IL_0008:  ret 
-    } // end of method Library::set_LibraryName
+    } // end of method Symbol::set_SymbolName
 
-    // method line 190
+    // method line 205
     .method public hidebysig specialname 
            instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x59f8
+        // Method begins at RVA 0x5a08
 	// 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_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 Library::get_IfDefined
+    } // end of method Symbol::get_IfDefined
 
-    // method line 191
+    // method line 206
     .method public hidebysig specialname 
            instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x5a13
+        // Method begins at RVA 0x5a23
 	// 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_0003:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
 	IL_0008:  ret 
-    } // end of method Library::set_IfDefined
+    } // end of method Symbol::set_IfDefined
 
-    // method line 192
+    // method line 207
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x5a20
+        // Method begins at RVA 0x5a30
 	// 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_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 Library::get_UnlessDefined
+    } // end of method Symbol::get_UnlessDefined
 
-    // method line 193
+    // method line 208
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x5a3b
+        // Method begins at RVA 0x5a4b
 	// 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_0003:  stfld bool NAnt.VisualCpp.Types.Symbol::_unlessDefined
 	IL_0008:  ret 
-    } // end of method Library::set_UnlessDefined
+    } // end of method Symbol::set_UnlessDefined
 
-	.property instance string LibraryName ()
+	.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
@@ -7909,8 +8058,8 @@
 		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') 
+		.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 ()
 	{
@@ -7918,8 +8067,8 @@
 
 		.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') 
+		.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 ()
 	{
@@ -7927,47 +8076,47 @@
 
 		.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') 
+		.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.Library
+  } // end of class NAnt.VisualCpp.Types.Symbol
 }
 
 .namespace NAnt.VisualCpp.Types
 {
-  .class public auto ansi beforefieldinit Symbol
+  .class public auto ansi beforefieldinit Library
   	extends [NAnt.Core]NAnt.Core.Element
   {
-    .field  private  string _symbolName
+    .field  private  string _libraryName
     .field  private  bool _ifDefined
     .field  private  bool _unlessDefined
 
-    // method line 194
+    // method line 209
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5a45
+        // Method begins at RVA 0x5a55
 	// 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_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 Symbol::.ctor
+    } // end of method Library::.ctor
 
-    // method line 195
+    // method line 210
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0x5a55
+        // Method begins at RVA 0x5a65
 	// 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_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 
@@ -7980,110 +8129,110 @@
 	IL_001f:  throw 
 	IL_0020:  ldarg.0 
 	IL_0021:  ldarg.1 
-	IL_0022:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
+	IL_0022:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
 	IL_0027:  ret 
-    } // end of method Symbol::.ctor
+    } // end of method Library::.ctor
 
-    // method line 196
+    // method line 211
     .method public hidebysig specialname 
-           instance default string get_SymbolName ()  cil managed 
+           instance default string get_LibraryName ()  cil managed 
     {
-        // Method begins at RVA 0x5a80
+        // Method begins at RVA 0x5a90
 	// 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_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 Symbol::get_SymbolName
+    } // end of method Library::get_LibraryName
 
-    // method line 197
+    // method line 212
     .method public hidebysig specialname 
-           instance default void set_SymbolName (string 'value')  cil managed 
+           instance default void set_LibraryName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5a9b
+        // Method begins at RVA 0x5aab
 	// 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_0003:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
 	IL_0008:  ret 
-    } // end of method Symbol::set_SymbolName
+    } // end of method Library::set_LibraryName
 
-    // method line 198
+    // method line 213
     .method public hidebysig specialname 
            instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x5aa8
+        // Method begins at RVA 0x5ab8
 	// 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_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 Symbol::get_IfDefined
+    } // end of method Library::get_IfDefined
 
-    // method line 199
+    // method line 214
     .method public hidebysig specialname 
            instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x5ac3
+        // Method begins at RVA 0x5ad3
 	// 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_0003:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
 	IL_0008:  ret 
-    } // end of method Symbol::set_IfDefined
+    } // end of method Library::set_IfDefined
 
-    // method line 200
+    // method line 215
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x5ad0
+        // Method begins at RVA 0x5ae0
 	// 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_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 Symbol::get_UnlessDefined
+    } // end of method Library::get_UnlessDefined
 
-    // method line 201
+    // method line 216
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x5aeb
+        // Method begins at RVA 0x5afb
 	// 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_0003:  stfld bool NAnt.VisualCpp.Types.Library::_unlessDefined
 	IL_0008:  ret 
-    } // end of method Symbol::set_UnlessDefined
+    } // end of method Library::set_UnlessDefined
 
-	.property instance string SymbolName ()
+	.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
@@ -8093,8 +8242,8 @@
 		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') 
+		.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 ()
 	{
@@ -8102,8 +8251,8 @@
 
 		.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') 
+		.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 ()
 	{
@@ -8111,470 +8260,321 @@
 
 		.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') 
+		.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.Symbol
+  } // end of class NAnt.VisualCpp.Types.Library
 }
 
-.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 serializable beforefieldinit SymbolCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit ArgumentUtils
+  	extends [mscorlib]System.Object
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-
-    // method line 202
+    // method line 217
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5af5
-	// 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 SymbolCollection::.ctor
-
-    // method line 203
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5afe
-	// 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.VisualCpp.Types.SymbolCollection::AddRange(class NAnt.VisualCpp.Types.SymbolCollection)
-	IL_000e:  ret 
-    } // end of method SymbolCollection::.ctor
-
-    // method line 204
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VisualCpp.Types.Symbol[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5b0e
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x5b05
+	// 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.VisualCpp.Types.SymbolCollection::AddRange(class NAnt.VisualCpp.Types.Symbol[])
-	IL_000e:  ret 
-    } // end of method SymbolCollection::.ctor
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ArgumentUtils::.ctor
 
-    // method line 205
-    .method public hidebysig specialname 
-           instance default class NAnt.VisualCpp.Types.Symbol get_Item (int32 index)  cil managed 
+    // method line 218
+    .method public static hidebysig 
+           default string ProcessTrailingBackslash (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
     {
-        // Method begins at RVA 0x5b20
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x5b10
+	// Code size 104 (0x68)
+	.maxstack 3
 	.locals init (
-		class NAnt.VisualCpp.Types.Symbol	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_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.VisualCpp.Types.Symbol
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	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_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method SymbolCollection::get_Item
+	IL_001e:  ldarg.0 
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_005f
 
-    // method line 206
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.VisualCpp.Types.Symbol 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5b46
-	// 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 SymbolCollection::set_Item
+	IL_0025:  ldarg.0 
+	IL_0026:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_005f
 
-    // method line 207
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
-    {
-        // Method begins at RVA 0x5b58
-	// 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_0031:  ldarg.0 
+	IL_0032:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
+	IL_0037:  stloc.0 
+	IL_0038:  br IL_005f
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method SymbolCollection::Add
+	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 208
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.VisualCpp.Types.Symbol[] items)  cil managed 
+	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 0x5b7c
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x5b84
+	// Code size 151 (0x97)
 	.maxstack 3
 	.locals init (
-		int32	V_0)
+		string	V_0,
+		bool	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0013
 
-	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.VisualCpp.Types.SymbolCollection::Add(class NAnt.VisualCpp.Types.Symbol)
-	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_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_0021:  ret 
-    } // end of method SymbolCollection::AddRange
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0095
 
-    // method line 209
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.VisualCpp.Types.SymbolCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x5bac
-	// 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_0026:  ldarg.0 
+	IL_0027:  callvirt instance int32 string::get_Length()
+	IL_002c:  ldc.i4.2 
+	IL_002d:  ble IL_004f
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.VisualCpp.Types.Symbol class NAnt.VisualCpp.Types.SymbolCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.VisualCpp.Types.SymbolCollection::Add(class NAnt.VisualCpp.Types.Symbol)
-	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_0032:  ldarg.0 
+	IL_0033:  ldstr "\""
+	IL_0038:  callvirt instance bool string::StartsWith(string)
+	IL_003d:  brfalse IL_004f
 
-	IL_0028:  ret 
-    } // end of method SymbolCollection::AddRange
+	IL_0042:  ldarg.0 
+	IL_0043:  ldstr "\""
+	IL_0048:  callvirt instance bool string::EndsWith(string)
+	IL_004d:  br.s IL_0050
 
-    // method line 210
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
-    {
-        // Method begins at RVA 0x5be4
-	// 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_004f:  ldc.i4.0 
+	IL_0050:  stloc.1 
+	IL_0051:  ldloc.1 
+	IL_0052:  brfalse IL_0064
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method SymbolCollection::Contains
+	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
 
-    // method line 211
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.VisualCpp.Types.Symbol[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x5c05
-	// 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 SymbolCollection::CopyTo
+	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 212
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
-    {
-        // Method begins at RVA 0x5c18
-	// 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_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_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method SymbolCollection::IndexOf
+	IL_008e:  ldarg.0 
+	IL_008f:  stloc.0 
+	IL_0090:  br IL_0095
 
-    // method line 213
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.VisualCpp.Types.Symbol item)  cil managed 
-    {
-        // Method begins at RVA 0x5c39
-	// 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 SymbolCollection::Insert
+	IL_0095:  ldloc.0 
+	IL_0096:  ret 
+    } // end of method ArgumentUtils::DuplicateTrailingBackslash
 
-    // method line 214
-    .method public hidebysig 
-           instance default class NAnt.VisualCpp.Types.SymbolEnumerator GetEnumerator ()  cil managed 
+    // method line 220
+    .method public static hidebysig 
+           default string FixTrailingBackslash (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5c4c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x5c28
+	// Code size 134 (0x86)
+	.maxstack 3
 	.locals init (
-		class NAnt.VisualCpp.Types.SymbolEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VisualCpp.Types.SymbolEnumerator::'.ctor'(class NAnt.VisualCpp.Types.SymbolCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SymbolCollection::GetEnumerator
+	IL_0002:  brtrue IL_0013
 
-    // method line 215
-    .method public hidebysig 
-           instance default void Remove (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
-    {
-        // Method begins at RVA 0x5c67
-	// 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 SymbolCollection::Remove
+	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
 
-	.property instance class NAnt.VisualCpp.Types.Symbol Item (int32)
-	{
-		.get instance default class NAnt.VisualCpp.Types.Symbol NAnt.VisualCpp.Types.SymbolCollection::get_Item (int32 index) 
-		.set instance default void NAnt.VisualCpp.Types.SymbolCollection::set_Item (int32 index, class NAnt.VisualCpp.Types.Symbol 'value') 
-	}
-  } // end of class NAnt.VisualCpp.Types.SymbolCollection
-}
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0084
 
-.namespace NAnt.VisualCpp.Types
-{
-  .class public auto ansi beforefieldinit SymbolEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0026:  ldarg.0 
+	IL_0027:  ldstr "\\\\"
+	IL_002c:  callvirt instance bool string::EndsWith(string)
+	IL_0031:  brfalse IL_0056
 
-    // method line 216
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VisualCpp.Types.SymbolCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x5c78
-	// 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.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method SymbolEnumerator::.ctor
+	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 217
-    .method public hidebysig specialname 
-           instance default class NAnt.VisualCpp.Types.Symbol get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x5c9c
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.VisualCpp.Types.Symbol	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.VisualCpp.Types.Symbol
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0056:  ldarg.0 
+	IL_0057:  ldstr "\\"
+	IL_005c:  callvirt instance bool string::EndsWith(string)
+	IL_0061:  brfalse IL_007c
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method SymbolEnumerator::get_Current
+	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
 
-    // method line 218
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x5cc4
-	.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.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  stloc.0 
+	IL_007f:  br IL_0084
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method SymbolEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0084:  ldloc.0 
+	IL_0085:  ret 
+    } // end of method ArgumentUtils::FixTrailingBackslash
 
-    // method line 219
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 221
+    .method public static hidebysig 
+           default string CleanTrailingBackslash (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5ce4
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x5cbc
+	// Code size 35 (0x23)
+	.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.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  brtrue IL_0013
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method SymbolEnumerator::MoveNext
+	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 220
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+	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 0x5d04
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x5cec
+	// Code size 74 (0x4a)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		bool	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	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_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method SymbolEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0019:  ldarg.0 
+	IL_001a:  ldstr "\""
+	IL_001f:  callvirt instance bool string::EndsWith(string)
+	IL_0024:  br.s IL_0027
 
-    // method line 221
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x5d24
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method SymbolEnumerator::Reset
+	IL_0026:  ldc.i4.0 
+	IL_0027:  stloc.1 
+	IL_0028:  ldloc.1 
+	IL_0029:  brtrue IL_0041
 
-    // method line 222
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x5d32
-	.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.VisualCpp.Types.SymbolEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method SymbolEnumerator::System.Collections.IEnumerator.Reset
+	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
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.VisualCpp.Types.SymbolEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.VisualCpp.Types.Symbol Current ()
-	{
-		.get instance default class NAnt.VisualCpp.Types.Symbol NAnt.VisualCpp.Types.SymbolEnumerator::get_Current () 
-	}
-  } // end of class NAnt.VisualCpp.Types.SymbolEnumerator
+	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,6 +4,205 @@
         <name>NAnt.VisualCppTasks</name>
     </assembly>
     <members>
+        <member name="T:NAnt.VisualCpp.Tasks.MidlTask">
+             <summary>
+             This tasks allows you to run MIDL.exe.
+             </summary>
+             <remarks>
+             <para>
+             This task only supports a small subset of the MIDL.EXE command line 
+             switches, but you can use the options element to specify any other
+             unsupported commands you want to specify.
+             </para>
+             </remarks>
+             <example>
+               <code>
+                 <![CDATA[
+             <midl
+                 env="win32"
+                 Oi="cf"
+                 tlb="${outputdir}\TempAtl.tlb"
+                 header="${outputdir}\TempAtl.h"
+                 iid="${outputdir}\TempAtl_i.c"
+                 proxy="${outputdir}\TempAtl_p.c"
+                 filename="TempAtl.idl"
+             >
+                 <defines>
+                     <define name="_DEBUG"/>
+                     <define name="WIN32" value="1"/>
+                 </defines>
+                 <options>
+                     <option name="/mktyplib203"/>
+                     <option name="/error" value="allocation"/>
+                 </options>
+             </midl>
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Acf">
+             <summary>
+             The /acf switch allows the user to supply an
+             explicit ACF file name. The switch also
+             allows the use of different interface names in
+             the IDL and ACF files.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Align">
+             <summary>
+             The /align switch is functionally the same as the
+             MIDL /Zp option and is recognized by the MIDL compiler
+             solely for backward compatibility with MkTypLib.
+             </summary>
+             <remarks>The alignment value can be 1, 2, 4, or 8.</remarks>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.AppConfig">
+             <summary>
+             The /app_config switch selects application-configuration
+             mode, which allows you to use some ACF keywords in the
+             IDL file. With this MIDL compiler switch, you can omit
+             the ACF and specify an interface in a single IDL file.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Char">
+             <summary>
+             The /char switch helps to ensure that the MIDL compiler
+             and C compiler operate together correctly for all char
+             and small types.
+             </summary>
+             <remarks>Can be one of signed | unsigned | ascii7 </remarks>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Client">
+             <summary>
+             The /client switch directs the MIDL compiler to generate
+             client-side C source files for an RPC interface
+             </summary>
+             <remarks>can be one of stub | none</remarks>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.CStub">
+             <summary>
+             The /cstub switch specifies the name of the client
+             stub file for an RPC interface.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.DllData">
+             <summary>
+             Specifies the file name for the generated dlldata file for a proxy
+             DLL. The default file name Dlldata.c is used if 
+             <see cref="P:NAnt.VisualCpp.Tasks.MidlTask.DllData" /> is not specified.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Env">
+             <summary>
+             The /env switch selects the
+             environment in which the application runs.
+             </summary>
+             <remarks>It can take the values win32 and win64</remarks>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Oi">
+             <summary>
+             The /Oi switch directs the MIDL compiler to
+             use a fully-interpreted marshaling method.
+             The /Oic and /Oicf switches provide additional
+             performance enhancements.
+             </summary>
+             <remarks>
+             If you specify the Oi attribute, you must set it to
+             one of the values:
+             - Oi=""
+             - Oi="c"
+             - Oi="f"
+             - Oi="cf"
+             </remarks>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Tlb">
+             <summary>
+             Specifies a file name for the type library generated by the MIDL 
+             compiler.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Header">
+             <summary>
+             Specifies the name of the header file.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Iid">
+             <summary>
+             Specifies the name of the interface identifier file for a COM 
+             interface, overriding the default name obtained by adding _i.c 
+             to the IDL file name.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Proxy">
+             <summary>
+             Specifies the name of the interface proxy file for a COM interface.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Filename">
+             <summary>
+             Name of .IDL file to process.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Options">
+             <summary>
+             Additional options to pass to midl.exe.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Defines">
+             <summary>
+             Macro definitions to pass to mdil.exe.
+             Each entry will generate a /D
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.Undefines">
+             <summary>
+             Macro undefines (/U) to pass to mdil.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.IncludeDirs">
+             <summary>
+             The list of directories in which to search for include files.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.ProgramFileName">
+             <summary>
+             Filename of program to execute
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Tasks.MidlTask.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.VisualCpp.Tasks.MidlTask.ExecuteTask">
+             <summary>
+             This is where the work is done.
+             </summary>
+            </member>
+        <member name="M:NAnt.VisualCpp.Tasks.MidlTask.NeedsCompiling">
+             <summary>
+             Check output files to see if we need rebuilding.
+             </summary>
+             <see langword="true" /> if a rebuild is needed; otherwise, 
+             <see langword="false" />.
+            </member>
+        <member name="M:NAnt.VisualCpp.Tasks.MidlTask.NeedsCompiling(System.IO.FileInfo)">
+             <summary>
+             Check output files to see if we need rebuilding.
+             </summary>
+             <returns>
+             <see langword="true" /> if a rebuild is needed; otherwise, 
+             <see langword="false" />.
+             </returns>
+            </member>
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)
@@ -649,154 +649,6 @@
 
 .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 13
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2469
-	// 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 14
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_PropertyName ()  cil managed 
-    {
-        // Method begins at RVA 0x2490
-	// 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 15
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x24ab
-	// 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 16
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x24b8
-	// 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') 
-	}
-  } // end of class NAnt.Win32.Tasks.MonoRegistryTask
-}
-
-.namespace NAnt.Win32.Tasks
-{
   .class private auto ansi beforefieldinit LocateSdkTask
   	extends [NAnt.Core]NAnt.Core.Task
   {
@@ -810,11 +662,11 @@
     .field  private initonly  string _registryBase
     .field  private initonly  string _regexNetFxTools
 
-    // method line 17
+    // method line 13
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2528
+        // Method begins at RVA 0x2469
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -834,11 +686,11 @@
 	IL_0032:  ret 
     } // end of method LocateSdkTask::.ctor
 
-    // method line 18
+    // method line 14
     .method public virtual hidebysig newslot specialname 
            instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x255c
+        // Method begins at RVA 0x24a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -853,11 +705,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_PropertyName
 
-    // method line 19
+    // method line 15
     .method public virtual hidebysig newslot specialname 
            instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2577
+        // Method begins at RVA 0x24bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -867,11 +719,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_PropertyName
 
-    // method line 20
+    // method line 16
     .method public hidebysig specialname 
            instance default string get_MinWinSdkVersion ()  cil managed 
     {
-        // Method begins at RVA 0x2584
+        // Method begins at RVA 0x24c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -886,11 +738,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MinWinSdkVersion
 
-    // method line 21
+    // method line 17
     .method public hidebysig specialname 
            instance default void set_MinWinSdkVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x259f
+        // Method begins at RVA 0x24e3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -900,11 +752,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MinWinSdkVersion
 
-    // method line 22
+    // method line 18
     .method public hidebysig specialname 
            instance default string get_MaxWinSdkVersion ()  cil managed 
     {
-        // Method begins at RVA 0x25ac
+        // Method begins at RVA 0x24f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -919,11 +771,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MaxWinSdkVersion
 
-    // method line 23
+    // method line 19
     .method public hidebysig specialname 
            instance default void set_MaxWinSdkVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x25c7
+        // Method begins at RVA 0x250b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -933,11 +785,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MaxWinSdkVersion
 
-    // method line 24
+    // method line 20
     .method public hidebysig specialname 
            instance default string get_MinNetFxVersion ()  cil managed 
     {
-        // Method begins at RVA 0x25d4
+        // Method begins at RVA 0x2518
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -952,11 +804,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MinNetFxVersion
 
-    // method line 25
+    // method line 21
     .method public hidebysig specialname 
            instance default void set_MinNetFxVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x25ef
+        // Method begins at RVA 0x2533
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -966,11 +818,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MinNetFxVersion
 
-    // method line 26
+    // method line 22
     .method public hidebysig specialname 
            instance default string get_MaxNetFxVersion ()  cil managed 
     {
-        // Method begins at RVA 0x25fc
+        // Method begins at RVA 0x2540
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -985,11 +837,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MaxNetFxVersion
 
-    // method line 27
+    // method line 23
     .method public hidebysig specialname 
            instance default void set_MaxNetFxVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2617
+        // Method begins at RVA 0x255b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -999,11 +851,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MaxNetFxVersion
 
-    // method line 28
+    // method line 24
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2624
+        // Method begins at RVA 0x2568
 	// Code size 631 (0x277)
 	.maxstack 6
 	.locals init (
@@ -1287,11 +1139,11 @@
 	IL_0276:  ret 
     } // end of method LocateSdkTask::ExecuteTask
 
-    // method line 29
+    // method line 25
     .method private hidebysig 
            instance default class [mscorlib]System.Version StringToVersion (string sdkVersion)  cil managed 
     {
-        // Method begins at RVA 0x28a8
+        // Method begins at RVA 0x27ec
 	// Code size 163 (0xa3)
 	.maxstack 5
 	.locals init (
@@ -1421,6 +1273,804 @@
 
 .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 26
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x289b
+	// 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 27
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OcxFile ()  cil managed 
+    {
+        // Method begins at RVA 0x28ac
+	// 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 28
+    .method public hidebysig specialname 
+           instance default void set_OcxFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x28c7
+	// 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 29
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  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.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 30
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (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.Win32.Tasks.AxImpTask::_outputFile
+	IL_0008:  ret 
+    } // end of method AxImpTask::set_OutputFile
+
+    // method line 31
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_PublicKeyFile ()  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.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 32
+    .method public hidebysig specialname 
+           instance default void set_PublicKeyFile (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.Win32.Tasks.AxImpTask::_publicKeyFile
+	IL_0008:  ret 
+    } // end of method AxImpTask::set_PublicKeyFile
+
+    // method line 33
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x2924
+	// 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 34
+    .method public hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x293f
+	// 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 35
+    .method public hidebysig specialname 
+           instance default string get_KeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0x294c
+	// 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 36
+    .method public hidebysig specialname 
+           instance default void set_KeyContainer (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2967
+	// 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 37
+    .method public hidebysig specialname 
+           instance default bool get_DelaySign ()  cil managed 
+    {
+        // Method begins at RVA 0x2978
+	// 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 38
+    .method public hidebysig specialname 
+           instance default void set_DelaySign (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2993
+	// 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 39
+    .method public hidebysig specialname 
+           instance default bool get_GenerateSource ()  cil managed 
+    {
+        // Method begins at RVA 0x29a0
+	// 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 40
+    .method public hidebysig specialname 
+           instance default void set_GenerateSource (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29bb
+	// 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 41
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_RcwFile ()  cil managed 
+    {
+        // Method begins at RVA 0x29c8
+	// 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 42
+    .method public hidebysig specialname 
+           instance default void set_RcwFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29e3
+	// 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 43
+    .method public hidebysig specialname 
+           instance default bool get_SupportsRcw ()  cil managed 
+    {
+        // Method begins at RVA 0x29f0
+	// 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 44
+    .method public hidebysig specialname 
+           instance default void set_SupportsRcw (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a0b
+	// 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 45
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x2a18
+	// 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 46
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x2a34
+	// 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 47
+    .method family virtual hidebysig newslot 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x2c90
+	// 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
+}
+
+.namespace NAnt.Win32.Tasks
+{
   .class public auto ansi beforefieldinit RegAsmTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -1440,11 +2090,11 @@
     .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _assemblies
     .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _references
 
-    // method line 30
+    // method line 48
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2957
+        // Method begins at RVA 0x2e19
 	// Code size 40 (0x28)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1461,11 +2111,11 @@
 	IL_0027:  ret 
     } // end of method RegAsmTask::.ctor
 
-    // method line 31
+    // method line 49
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
     {
-        // Method begins at RVA 0x2980
+        // Method begins at RVA 0x2e44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1480,11 +2130,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_AssemblyFile
 
-    // method line 32
+    // method line 50
     .method public hidebysig specialname 
            instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x299b
+        // Method begins at RVA 0x2e5f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1494,11 +2144,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_AssemblyFile
 
-    // method line 33
+    // method line 51
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_RegistryFile ()  cil managed 
     {
-        // Method begins at RVA 0x29a8
+        // Method begins at RVA 0x2e6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1513,11 +2163,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_RegistryFile
 
-    // method line 34
+    // method line 52
     .method public hidebysig specialname 
            instance default void set_RegistryFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x29c3
+        // Method begins at RVA 0x2e87
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1527,11 +2177,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_RegistryFile
 
-    // method line 35
+    // method line 53
     .method public hidebysig specialname 
            instance default bool get_CodeBase ()  cil managed 
     {
-        // Method begins at RVA 0x29d0
+        // Method begins at RVA 0x2e94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1546,11 +2196,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_CodeBase
 
-    // method line 36
+    // method line 54
     .method public hidebysig specialname 
            instance default void set_CodeBase (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x29eb
+        // Method begins at RVA 0x2eaf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1560,11 +2210,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_CodeBase
 
-    // method line 37
+    // method line 55
     .method public hidebysig specialname 
            instance default bool get_Registered ()  cil managed 
     {
-        // Method begins at RVA 0x29f8
+        // Method begins at RVA 0x2ebc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1579,11 +2229,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_Registered
 
-    // method line 38
+    // method line 56
     .method public hidebysig specialname 
            instance default void set_Registered (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a13
+        // Method begins at RVA 0x2ed7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1593,11 +2243,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_Registered
 
-    // method line 39
+    // method line 57
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_TypeLib ()  cil managed 
     {
-        // Method begins at RVA 0x2a20
+        // Method begins at RVA 0x2ee4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1612,11 +2262,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_TypeLib
 
-    // method line 40
+    // method line 58
     .method public hidebysig specialname 
            instance default void set_TypeLib (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a3b
+        // Method begins at RVA 0x2eff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1626,11 +2276,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_TypeLib
 
-    // method line 41
+    // method line 59
     .method public hidebysig specialname 
            instance default bool get_Unregister ()  cil managed 
     {
-        // Method begins at RVA 0x2a48
+        // Method begins at RVA 0x2f0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1645,11 +2295,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_Unregister
 
-    // method line 42
+    // method line 60
     .method public hidebysig specialname 
            instance default void set_Unregister (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a63
+        // Method begins at RVA 0x2f27
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1659,11 +2309,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_Unregister
 
-    // method line 43
+    // method line 61
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x2a70
+        // Method begins at RVA 0x2f34
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1678,11 +2328,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_Assemblies
 
-    // method line 44
+    // method line 62
     .method public hidebysig specialname 
            instance default void set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a8b
+        // Method begins at RVA 0x2f4f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1692,11 +2342,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_Assemblies
 
-    // method line 45
+    // method line 63
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x2a98
+        // Method begins at RVA 0x2f5c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1711,11 +2361,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_References
 
-    // method line 46
+    // method line 64
     .method public hidebysig specialname 
            instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ab3
+        // Method begins at RVA 0x2f77
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1725,11 +2375,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_References
 
-    // method line 47
+    // method line 65
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x2ac0
+        // Method begins at RVA 0x2f84
 	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
@@ -1754,11 +2404,11 @@
 	IL_0026:  ret 
     } // end of method RegAsmTask::get_BaseDirectory
 
-    // method line 48
+    // method line 66
     .method public virtual hidebysig specialname 
            instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2af3
+        // Method begins at RVA 0x2fb7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1768,11 +2418,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_BaseDirectory
 
-    // method line 49
+    // method line 67
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x2b00
+        // Method begins at RVA 0x2fc4
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1788,11 +2438,11 @@
 	IL_0013:  ret 
     } // end of method RegAsmTask::get_ProgramArguments
 
-    // method line 50
+    // method line 68
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x2b20
+        // Method begins at RVA 0x2fe4
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -1817,11 +2467,11 @@
 	IL_0027:  ret 
     } // end of method RegAsmTask::get_ProgramFileName
 
-    // method line 51
+    // method line 69
     .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x2b54
+        // Method begins at RVA 0x3018
 	// Code size 524 (0x20c)
 	.maxstack 3
 	.locals init (
@@ -2031,11 +2681,11 @@
 	IL_020b:  ret 
     } // end of method RegAsmTask::PrepareProcess
 
-    // method line 52
+    // method line 70
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2d94
+        // Method begins at RVA 0x3258
 	// Code size 757 (0x2f5)
 	.maxstack 7
 	.locals init (
@@ -2327,11 +2977,11 @@
 	IL_02f4:  ret 
     } // end of method RegAsmTask::ExecuteTask
 
-    // method line 53
+    // method line 71
     .method private hidebysig 
            instance default string GetAssemblyPath (string 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x30b4
+        // Method begins at RVA 0x3578
 	// Code size 50 (0x32)
 	.maxstack 2
 	.locals init (
@@ -2439,6 +3089,371 @@
 
 .namespace NAnt.Win32.Tasks
 {
+  .class public auto ansi beforefieldinit TlbExpTask
+  	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 65 78 70 00 00 ) // ...tlbexp..
+
+    .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 _assemblyFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  class [mscorlib]System.IO.FileInfo _namesFile
+    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
+
+    // method line 72
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x35b6
+	// 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 TlbExpTask::.ctor
+
+    // method line 73
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x35c0
+	// 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.TlbExpTask::_assemblyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbExpTask::get_AssemblyFile
+
+    // method line 74
+    .method public hidebysig specialname 
+           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // 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 class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbExpTask::_assemblyFile
+	IL_0008:  ret 
+    } // end of method TlbExpTask::set_AssemblyFile
+
+    // method line 75
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x35e8
+	// 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.TlbExpTask::_outputFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbExpTask::get_OutputFile
+
+    // method line 76
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3603
+	// 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.TlbExpTask::_outputFile
+	IL_0008:  ret 
+    } // end of method TlbExpTask::set_OutputFile
+
+    // method line 77
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_NamesFile ()  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.TlbExpTask::_namesFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbExpTask::get_NamesFile
+
+    // method line 78
+    .method public hidebysig specialname 
+           instance default void set_NamesFile (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.TlbExpTask::_namesFile
+	IL_0008:  ret 
+    } // end of method TlbExpTask::set_NamesFile
+
+    // method line 79
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x3638
+	// 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.TlbExpTask::_argumentBuilder
+	IL_0007:  brfalse IL_001e
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_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 TlbExpTask::get_ProgramArguments
+
+    // method line 80
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x366c
+	// Code size 210 (0xd2)
+	.maxstack 4
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.Win32.Tasks.TlbExpTask::NeedsCompiling()
+	IL_0007:  brfalse IL_00d1
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0013:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_001e:  ldstr "\""
+	IL_0023:  ldarg.0 
+	IL_0024:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_AssemblyFile()
+	IL_0029:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002e:  ldstr "\""
+	IL_0033:  call string string::Concat(string, string, string)
+	IL_0038:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_003d:  pop 
+	IL_003e:  ldarg.0 
+	IL_003f:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_0044:  ldstr " /out:\"{0}\""
+	IL_0049:  ldarg.0 
+	IL_004a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_OutputFile()
+	IL_004f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0054:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0059:  pop 
+	IL_005a:  ldarg.0 
+	IL_005b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_0060:  ldstr " /nologo"
+	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:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0071:  brfalse IL_008e
+
+	IL_0076:  nop 
+	IL_0077:  ldarg.0 
+	IL_0078:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_007d:  ldstr " /verbose"
+	IL_0082:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0087:  pop 
+	IL_0088:  nop 
+	IL_0089:  br IL_00a1
+
+	IL_008e:  nop 
+	IL_008f:  ldarg.0 
+	IL_0090:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_0095:  ldstr " /silent"
+	IL_009a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_009f:  pop 
+	IL_00a0:  nop 
+	IL_00a1:  ldarg.0 
+	IL_00a2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_NamesFile()
+	IL_00a7:  brfalse IL_00ca
+
+	IL_00ac:  nop 
+	IL_00ad:  ldarg.0 
+	IL_00ae:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
+	IL_00b3:  ldstr " /names:\"{0}\""
+	IL_00b8:  ldarg.0 
+	IL_00b9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_NamesFile()
+	IL_00be:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00c3:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_00c8:  pop 
+	IL_00c9:  nop 
+	IL_00ca:  ldarg.0 
+	IL_00cb:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_00d0:  nop 
+	IL_00d1:  ret 
+    } // end of method TlbExpTask::ExecuteTask
+
+    // method line 81
+    .method family virtual hidebysig newslot 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x374c
+	// Code size 219 (0xdb)
+	.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.TlbExpTask::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.TlbExpTask::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_00d9
+
+	IL_003d:  ldarg.0 
+	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_AssemblyFile()
+	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.TlbExpTask::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_00d9
+
+	IL_0081:  ldarg.0 
+	IL_0082:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_NamesFile()
+	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.TlbExpTask::get_NamesFile()
+	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.TlbExpTask::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_00d9
+
+	IL_00d1:  nop 
+	IL_00d2:  ldc.i4.0 
+	IL_00d3:  stloc.0 
+	IL_00d4:  br IL_00d9
+
+	IL_00d9:  ldloc.0 
+	IL_00da:  ret 
+    } // end of method TlbExpTask::NeedsCompiling
+
+	.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.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbExpTask::get_AssemblyFile () 
+		.set instance default void NAnt.Win32.Tasks.TlbExpTask::set_AssemblyFile (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.Win32.Tasks.TlbExpTask::get_OutputFile () 
+		.set instance default void NAnt.Win32.Tasks.TlbExpTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo NamesFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 6E 61 6D 65 73 00 00 ) // ...names..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbExpTask::get_NamesFile () 
+		.set instance default void NAnt.Win32.Tasks.TlbExpTask::set_NamesFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.Win32.Tasks.TlbExpTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.Win32.Tasks.TlbExpTask
+}
+
+.namespace NAnt.Win32.Tasks
+{
   .class public auto ansi beforefieldinit TlbImpTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -2463,11 +3478,11 @@
     .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
     .field  private  bool _supportsTransform
 
-    // method line 54
+    // method line 82
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x30f2
+        // Method begins at RVA 0x3833
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2481,11 +3496,11 @@
 	IL_0018:  ret 
     } // end of method TlbImpTask::.ctor
 
-    // method line 55
+    // method line 83
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x310c
+        // Method begins at RVA 0x3850
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2500,11 +3515,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_OutputFile
 
-    // method line 56
+    // method line 84
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3127
+        // Method begins at RVA 0x386b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2514,11 +3529,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_OutputFile
 
-    // method line 57
+    // method line 85
     .method public hidebysig specialname 
            instance default string get_Namespace ()  cil managed 
     {
-        // Method begins at RVA 0x3134
+        // Method begins at RVA 0x3878
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2533,11 +3548,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_Namespace
 
-    // method line 58
+    // method line 86
     .method public hidebysig specialname 
            instance default void set_Namespace (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x314f
+        // Method begins at RVA 0x3893
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2548,11 +3563,11 @@
 	IL_000d:  ret 
     } // end of method TlbImpTask::set_Namespace
 
-    // method line 59
+    // method line 87
     .method public hidebysig specialname 
            instance default string get_AsmVersion ()  cil managed 
     {
-        // Method begins at RVA 0x3160
+        // Method begins at RVA 0x38a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2567,11 +3582,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_AsmVersion
 
-    // method line 60
+    // method line 88
     .method public hidebysig specialname 
            instance default void set_AsmVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x317b
+        // Method begins at RVA 0x38bf
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2582,11 +3597,11 @@
 	IL_000d:  ret 
     } // end of method TlbImpTask::set_AsmVersion
 
-    // method line 61
+    // method line 89
     .method public hidebysig specialname 
            instance default bool get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x318c
+        // Method begins at RVA 0x38d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2601,11 +3616,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_DelaySign
 
-    // method line 62
+    // method line 90
     .method public hidebysig specialname 
            instance default void set_DelaySign (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x31a7
+        // Method begins at RVA 0x38eb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2615,11 +3630,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_DelaySign
 
-    // method line 63
+    // method line 91
     .method public hidebysig specialname 
            instance default bool get_Primary ()  cil managed 
     {
-        // Method begins at RVA 0x31b4
+        // Method begins at RVA 0x38f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2634,11 +3649,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_Primary
 
-    // method line 64
+    // method line 92
     .method public hidebysig specialname 
            instance default void set_Primary (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x31cf
+        // Method begins at RVA 0x3913
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2648,11 +3663,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_Primary
 
-    // method line 65
+    // method line 93
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_PublicKeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x31dc
+        // Method begins at RVA 0x3920
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2667,11 +3682,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_PublicKeyFile
 
-    // method line 66
+    // method line 94
     .method public hidebysig specialname 
            instance default void set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x31f7
+        // Method begins at RVA 0x393b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2681,11 +3696,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_PublicKeyFile
 
-    // method line 67
+    // method line 95
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x3204
+        // Method begins at RVA 0x3948
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2700,11 +3715,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_KeyFile
 
-    // method line 68
+    // method line 96
     .method public hidebysig specialname 
            instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x321f
+        // Method begins at RVA 0x3963
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2714,11 +3729,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_KeyFile
 
-    // method line 69
+    // method line 97
     .method public hidebysig specialname 
            instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x322c
+        // Method begins at RVA 0x3970
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2733,11 +3748,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_KeyContainer
 
-    // method line 70
+    // method line 98
     .method public hidebysig specialname 
            instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3247
+        // Method begins at RVA 0x398b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2748,11 +3763,11 @@
 	IL_000d:  ret 
     } // end of method TlbImpTask::set_KeyContainer
 
-    // method line 71
+    // method line 99
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x3258
+        // Method begins at RVA 0x399c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2767,11 +3782,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_References
 
-    // method line 72
+    // method line 100
     .method public hidebysig specialname 
            instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3273
+        // Method begins at RVA 0x39b7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2781,11 +3796,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_References
 
-    // method line 73
+    // method line 101
     .method public hidebysig specialname 
            instance default bool get_StrictRef ()  cil managed 
     {
-        // Method begins at RVA 0x3280
+        // Method begins at RVA 0x39c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2800,11 +3815,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_StrictRef
 
-    // method line 74
+    // method line 102
     .method public hidebysig specialname 
            instance default void set_StrictRef (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x329b
+        // Method begins at RVA 0x39df
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2814,11 +3829,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_StrictRef
 
-    // method line 75
+    // method line 103
     .method public hidebysig specialname 
            instance default bool get_SysArray ()  cil managed 
     {
-        // Method begins at RVA 0x32a8
+        // Method begins at RVA 0x39ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2833,11 +3848,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_SysArray
 
-    // method line 76
+    // method line 104
     .method public hidebysig specialname 
            instance default void set_SysArray (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x32c3
+        // Method begins at RVA 0x3a07
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2847,11 +3862,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_SysArray
 
-    // method line 77
+    // method line 105
     .method public hidebysig specialname 
            instance default string get_Transform ()  cil managed 
     {
-        // Method begins at RVA 0x32d0
+        // Method begins at RVA 0x3a14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2866,11 +3881,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_Transform
 
-    // method line 78
+    // method line 106
     .method public hidebysig specialname 
            instance default void set_Transform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x32eb
+        // Method begins at RVA 0x3a2f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2881,11 +3896,11 @@
 	IL_000d:  ret 
     } // end of method TlbImpTask::set_Transform
 
-    // method line 79
+    // method line 107
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_TypeLib ()  cil managed 
     {
-        // Method begins at RVA 0x32fc
+        // Method begins at RVA 0x3a40
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2900,11 +3915,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_TypeLib
 
-    // method line 80
+    // method line 108
     .method public hidebysig specialname 
            instance default void set_TypeLib (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3317
+        // Method begins at RVA 0x3a5b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2914,11 +3929,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_TypeLib
 
-    // method line 81
+    // method line 109
     .method public hidebysig specialname 
            instance default bool get_Unsafe ()  cil managed 
     {
-        // Method begins at RVA 0x3324
+        // Method begins at RVA 0x3a68
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2933,11 +3948,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_Unsafe
 
-    // method line 82
+    // method line 110
     .method public hidebysig specialname 
            instance default void set_Unsafe (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x333f
+        // Method begins at RVA 0x3a83
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2947,11 +3962,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_Unsafe
 
-    // method line 83
+    // method line 111
     .method public hidebysig specialname 
            instance default bool get_SupportsTransform ()  cil managed 
     {
-        // Method begins at RVA 0x334c
+        // Method begins at RVA 0x3a90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2966,11 +3981,11 @@
 	IL_000e:  ret 
     } // end of method TlbImpTask::get_SupportsTransform
 
-    // method line 84
+    // method line 112
     .method public hidebysig specialname 
            instance default void set_SupportsTransform (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3367
+        // Method begins at RVA 0x3aab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2980,11 +3995,11 @@
 	IL_0008:  ret 
     } // end of method TlbImpTask::set_SupportsTransform
 
-    // method line 85
+    // method line 113
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x3374
+        // Method begins at RVA 0x3ab8
 	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
@@ -3010,11 +4025,11 @@
 	IL_0027:  ret 
     } // end of method TlbImpTask::get_ProgramArguments
 
-    // method line 86
+    // method line 114
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x33a8
+        // Method begins at RVA 0x3aec
 	// Code size 689 (0x2b1)
 	.maxstack 4
 	.locals init (
@@ -3272,11 +4287,11 @@
 	IL_02b0:  ret 
     } // end of method TlbImpTask::ExecuteTask
 
-    // method line 87
+    // method line 115
     .method public static hidebysig 
            default string ExtractTypeLibPath (string path)  cil managed 
     {
-        // Method begins at RVA 0x3678
+        // Method begins at RVA 0x3dbc
 	// Code size 60 (0x3c)
 	.maxstack 4
 	.locals init (
@@ -3310,11 +4325,11 @@
 	IL_003b:  ret 
     } // end of method TlbImpTask::ExtractTypeLibPath
 
-    // method line 88
+    // method line 116
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x36c0
+        // Method begins at RVA 0x3e04
 	// Code size 213 (0xd5)
 	.maxstack 7
 	.locals init (
@@ -3539,1165 +4554,150 @@
 
 .namespace NAnt.Win32.Tasks
 {
-  .class public auto ansi beforefieldinit TlbExpTask
-  	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 65 78 70 00 00 ) // ...tlbexp..
-
-    .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 _assemblyFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  class [mscorlib]System.IO.FileInfo _namesFile
-    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
-
-    // method line 89
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x37a1
-	// 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 TlbExpTask::.ctor
-
-    // method line 90
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x37ac
-	// 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.TlbExpTask::_assemblyFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbExpTask::get_AssemblyFile
-
-    // method line 91
-    .method public hidebysig specialname 
-           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x37c7
-	// 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.TlbExpTask::_assemblyFile
-	IL_0008:  ret 
-    } // end of method TlbExpTask::set_AssemblyFile
-
-    // method line 92
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x37d4
-	// 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.TlbExpTask::_outputFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbExpTask::get_OutputFile
-
-    // method line 93
-    .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x37ef
-	// 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.TlbExpTask::_outputFile
-	IL_0008:  ret 
-    } // end of method TlbExpTask::set_OutputFile
-
-    // method line 94
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_NamesFile ()  cil managed 
-    {
-        // Method begins at RVA 0x37fc
-	// 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.TlbExpTask::_namesFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbExpTask::get_NamesFile
-
-    // method line 95
-    .method public hidebysig specialname 
-           instance default void set_NamesFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3817
-	// 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.TlbExpTask::_namesFile
-	IL_0008:  ret 
-    } // end of method TlbExpTask::set_NamesFile
-
-    // method line 96
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x3824
-	// 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.TlbExpTask::_argumentBuilder
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_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 TlbExpTask::get_ProgramArguments
-
-    // method line 97
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x3858
-	// Code size 210 (0xd2)
-	.maxstack 4
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.Win32.Tasks.TlbExpTask::NeedsCompiling()
-	IL_0007:  brfalse IL_00d1
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0013:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_001e:  ldstr "\""
-	IL_0023:  ldarg.0 
-	IL_0024:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_AssemblyFile()
-	IL_0029:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002e:  ldstr "\""
-	IL_0033:  call string string::Concat(string, string, string)
-	IL_0038:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_003d:  pop 
-	IL_003e:  ldarg.0 
-	IL_003f:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_0044:  ldstr " /out:\"{0}\""
-	IL_0049:  ldarg.0 
-	IL_004a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_OutputFile()
-	IL_004f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0054:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_0059:  pop 
-	IL_005a:  ldarg.0 
-	IL_005b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_0060:  ldstr " /nologo"
-	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:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0071:  brfalse IL_008e
-
-	IL_0076:  nop 
-	IL_0077:  ldarg.0 
-	IL_0078:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_007d:  ldstr " /verbose"
-	IL_0082:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0087:  pop 
-	IL_0088:  nop 
-	IL_0089:  br IL_00a1
-
-	IL_008e:  nop 
-	IL_008f:  ldarg.0 
-	IL_0090:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_0095:  ldstr " /silent"
-	IL_009a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_009f:  pop 
-	IL_00a0:  nop 
-	IL_00a1:  ldarg.0 
-	IL_00a2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_NamesFile()
-	IL_00a7:  brfalse IL_00ca
-
-	IL_00ac:  nop 
-	IL_00ad:  ldarg.0 
-	IL_00ae:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbExpTask::_argumentBuilder
-	IL_00b3:  ldstr " /names:\"{0}\""
-	IL_00b8:  ldarg.0 
-	IL_00b9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_NamesFile()
-	IL_00be:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00c3:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_00c8:  pop 
-	IL_00c9:  nop 
-	IL_00ca:  ldarg.0 
-	IL_00cb:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_00d0:  nop 
-	IL_00d1:  ret 
-    } // end of method TlbExpTask::ExecuteTask
-
-    // method line 98
-    .method family virtual hidebysig newslot 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x3938
-	// Code size 219 (0xdb)
-	.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.TlbExpTask::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.TlbExpTask::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_00d9
-
-	IL_003d:  ldarg.0 
-	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_AssemblyFile()
-	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.TlbExpTask::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_00d9
-
-	IL_0081:  ldarg.0 
-	IL_0082:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbExpTask::get_NamesFile()
-	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.TlbExpTask::get_NamesFile()
-	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.TlbExpTask::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_00d9
-
-	IL_00d1:  nop 
-	IL_00d2:  ldc.i4.0 
-	IL_00d3:  stloc.0 
-	IL_00d4:  br IL_00d9
-
-	IL_00d9:  ldloc.0 
-	IL_00da:  ret 
-    } // end of method TlbExpTask::NeedsCompiling
-
-	.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.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbExpTask::get_AssemblyFile () 
-		.set instance default void NAnt.Win32.Tasks.TlbExpTask::set_AssemblyFile (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.Win32.Tasks.TlbExpTask::get_OutputFile () 
-		.set instance default void NAnt.Win32.Tasks.TlbExpTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo NamesFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 6E 61 6D 65 73 00 00 ) // ...names..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbExpTask::get_NamesFile () 
-		.set instance default void NAnt.Win32.Tasks.TlbExpTask::set_NamesFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.Win32.Tasks.TlbExpTask::get_ProgramArguments () 
-	}
-  } // end of class NAnt.Win32.Tasks.TlbExpTask
-}
-
-.namespace NAnt.Win32.Tasks
-{
-  .class public auto ansi beforefieldinit AxImpTask
-  	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 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 ) // ........
+    .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 _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
+    .field private static literal  string _defaultRegKey = "SOFTWARE\\Mono"
+    .field  private  string _propName
+    .field  private  string[] _regKeys
 
-    // method line 99
+    // method line 117
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3a1f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x3ee5
+	// Code size 35 (0x23)
 	.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 100
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OcxFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3a30
-	// 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 101
-    .method public hidebysig specialname 
-           instance default void set_OcxFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3a4b
-	// 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 102
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3a58
-	// 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 103
-    .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3a73
-	// 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 104
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PublicKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3a80
-	// 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 105
-    .method public hidebysig specialname 
-           instance default void set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3a9b
-	// 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 106
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3aa8
-	// 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 107
-    .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3ac3
-	// 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
+	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 108
-    .method public hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
+    // method line 118
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x3ad0
+        // Method begins at RVA 0x3f0c
 	// 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 109
-    .method public hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3aeb
-	// 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 110
-    .method public hidebysig specialname 
-           instance default bool get_DelaySign ()  cil managed 
-    {
-        // Method begins at RVA 0x3afc
-	// 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 111
-    .method public hidebysig specialname 
-           instance default void set_DelaySign (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b17
-	// 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 112
-    .method public hidebysig specialname 
-           instance default bool get_GenerateSource ()  cil managed 
-    {
-        // Method begins at RVA 0x3b24
-	// 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 113
-    .method public hidebysig specialname 
-           instance default void set_GenerateSource (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b3f
-	// 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 114
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_RcwFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3b4c
-	// 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 115
-    .method public hidebysig specialname 
-           instance default void set_RcwFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b67
-	// 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 116
-    .method public hidebysig specialname 
-           instance default bool get_SupportsRcw ()  cil managed 
-    {
-        // Method begins at RVA 0x3b74
-	// 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_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 AxImpTask::get_SupportsRcw
+    } // end of method MonoRegistryTask::get_PropertyName
 
-    // method line 117
-    .method public hidebysig specialname 
-           instance default void set_SupportsRcw (bool 'value')  cil managed 
+    // method line 119
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b8f
+        // Method begins at RVA 0x3f27
 	// 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_0003:  stfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
 	IL_0008:  ret 
-    } // end of method AxImpTask::set_SupportsRcw
-
-    // method line 118
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x3b9c
-	// 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
+    } // end of method MonoRegistryTask::set_PropertyName
 
-    // method line 119
+    // method line 120
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3bb8
-	// 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 120
-    .method family virtual hidebysig newslot 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x3e14
-	// Code size 381 (0x17d)
-	.maxstack 7
+        // Method begins at RVA 0x3f34
+	// Code size 100 (0x64)
+	.maxstack 3
 	.locals init (
-		bool	V_0,
-		string	V_1)
+		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:  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..
+	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
 
-		.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..
+	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
 
-		.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                                              ) // .
+	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
 
-		.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..
+	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
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	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
 
-		.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 ()
+	.property instance string PropertyName ()
 	{
 		.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..
+		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 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..
+		.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 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 () 
+		.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.AxImpTask
+  } // end of class NAnt.Win32.Tasks.MonoRegistryTask
 }
 
 .namespace NAnt.Win32.Functions
@@ -4714,7 +4714,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Project project, class [NAnt.Core]NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x3f9d
+        // Method begins at RVA 0x3fa4
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -4733,7 +4733,7 @@
 		01 00 0C 67 65 74 2D 64 6F 73 2D 70 61 74 68 00   // ...get-dos-path.
 		00                                              ) // .
 
-        // Method begins at RVA 0x3fa8
+        // Method begins at RVA 0x3fb0
 	// Code size 45 (0x2d)
 	.maxstack 7
 	.locals init (
@@ -4766,7 +4766,7 @@
 		01 00 0D 67 65 74 2D 75 6E 69 78 2D 70 61 74 68   // ...get-unix-path
 		00 00                                           ) // ..
 
-        // Method begins at RVA 0x3fe4
+        // Method begins at RVA 0x3fec
 	// Code size 45 (0x2d)
 	.maxstack 7
 	.locals init (
@@ -4799,7 +4799,7 @@
 		01 00 10 67 65 74 2D 77 69 6E 64 6F 77 73 2D 70   // ...get-windows-p
 		61 74 68 00 00                                  ) // ath..
 
-        // Method begins at RVA 0x4020
+        // Method begins at RVA 0x4028
 	// Code size 45 (0x2d)
 	.maxstack 7
 	.locals init (
@@ -4828,7 +4828,7 @@
     .method private hidebysig 
            instance default string RunCygpathString (class [NAnt.Core]NAnt.Core.Types.Argument[] args)  cil managed 
     {
-        // Method begins at RVA 0x405c
+        // Method begins at RVA 0x4064
 	// Code size 134 (0x86)
 	.maxstack 2
 	.locals init (
@@ -4907,7 +4907,7 @@
     .method private hidebysig 
            instance default class [NAnt.Core]NAnt.Core.Tasks.ExecTask GetTask (class [mscorlib]System.IO.Stream 'stream')  cil managed 
     {
-        // Method begins at RVA 0x4100
+        // Method begins at RVA 0x4108
 	// Code size 83 (0x53)
 	.maxstack 3
 	.locals init (
/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
@@ -81,53 +81,6 @@
              The key for a given registry hive.
              </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.LocateSdkTask">
              <summary>
              Reads the most recent Windows SDK InstallationFolder key into a NAnt property
@@ -191,6 +144,106 @@
              A <see cref="T:System.Version" /> object representing the version string.
              </returns>
             </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.
@@ -324,6 +377,76 @@
              Registers or unregisters a single assembly, or a group of assemblies.
              </summary>
             </member>
+        <member name="T:NAnt.Win32.Tasks.TlbExpTask">
+             <summary>
+             Exports a .NET assembly to a type library that can be used from unmanaged 
+             code (wraps Microsoft's <c>tlbexp.exe</c>).
+             </summary>
+             <remarks>
+               <para>
+               <see href="ms-help://MS.NETFrameworkSDK/cptools/html/cpgrftypelibraryexportertlbexpexe.htm">See the Microsoft.NET Framework SDK documentation for details.</see>
+               </para>
+             </remarks>
+             <example>
+               <para>Export <c>DotNetAssembly.dll</c> to <c>LegacyCOM.dll</c>.</para>
+               <code>
+                 <![CDATA[
+             <tlbexp assembly="DotNetAssembly.dll" output="LegacyCOM.dll" />
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.TlbExpTask.AssemblyFile">
+             <summary>
+             Specifies the assembly for which to export a type library.
+             </summary>
+             <value>
+             The assembly for which to export a type library.
+             </value>
+             <remarks><a href="ms-help://MS.NETFrameworkSDK/cptools/html/cpgrftypelibraryexportertlbexpexe.htm">See the Microsoft.NET Framework SDK documentation for details.</a></remarks>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.TlbExpTask.OutputFile">
+             <summary>
+             Specifies the name of the type library file to generate.
+             </summary>
+             <value>
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)
@@ -69,31 +69,31 @@
   .hash algorithm 0x00008004
   .ver  0:93:1:0
 }
-.mresource public 'Documenter.xslt.function-index.xslt'
+.mresource public 'Documenter.xslt.filter-index.xslt'
 {
 }
-.mresource public 'Documenter.xslt.function-doc.xslt'
+.mresource public 'Documenter.xslt.function-index.xslt'
 {
 }
-.mresource public 'Documenter.xslt.common.xslt'
+.mresource public 'Documenter.xslt.tags.xslt'
 {
 }
 .mresource public 'Documenter.xslt.type-index.xslt'
 {
 }
-.mresource public 'Documenter.xslt.filter-index.xslt'
+.mresource public 'Documenter.xslt.nant-attributes.xslt'
 {
 }
 .mresource public 'Documenter.xslt.task-index.xslt'
 {
 }
-.mresource public 'Documenter.xslt.tags.xslt'
+.mresource public 'Documenter.xslt.type-doc.xslt'
 {
 }
-.mresource public 'Documenter.xslt.type-doc.xslt'
+.mresource public 'Documenter.xslt.function-doc.xslt'
 {
 }
-.mresource public 'Documenter.xslt.nant-attributes.xslt'
+.mresource public 'Documenter.xslt.common.xslt'
 {
 }
 .module NDoc.Documenter.NAnt.dll // GUID = { 42 }
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)
@@ -68,27 +68,54 @@
 
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit WhidbeySolutionProvider
+  .class private auto ansi beforefieldinit OrcasSolution
+  	extends NAnt.VSNet.WhidbeySolution
+  {
+
+    // method line 1
+    .method public hidebysig specialname rtspecialname 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x238c
+	// 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 1
+    // method line 2
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x239c
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  ret 
-    } // end of method WhidbeySolutionProvider::.ctor
+    } // end of method OrcasSolutionProvider::.ctor
 
-    // method line 2
+    // method line 3
     .method public final virtual hidebysig newslot 
            instance default int32 IsSupported (string fileContents)  cil managed 
     {
-        // Method begins at RVA 0x2058
+        // Method begins at RVA 0x23a4
 	// Code size 103 (0x67)
 	.maxstack 2
 	.locals init (
@@ -123,7 +150,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 "9.00"
+	IL_0046:  ldstr "10.00"
 	IL_004b:  call bool string::op_Equality(string, string)
 	IL_0050:  brfalse IL_005e
 
@@ -138,326 +165,1110 @@
 
 	IL_0065:  ldloc.2 
 	IL_0066:  ret 
-    } // end of method WhidbeySolutionProvider::IsSupported
+    } // end of method OrcasSolutionProvider::IsSupported
 
-    // method line 3
+    // method line 4
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x20cc
-    } // end of method WhidbeySolutionProvider::<NULL METHOD SIGNATURE>
+        // Method begins at RVA 0x2418
+    } // end of method OrcasSolutionProvider::<NULL METHOD SIGNATURE>
 
-  } // end of class NAnt.VSNet.WhidbeySolutionProvider
+  } // end of class NAnt.VSNet.OrcasSolutionProvider
 }
 
-.namespace NAnt.VSNet
+.namespace NAnt.MSBuild.BuildEngine
 {
-  .class private auto ansi beforefieldinit WhidbeySolution
-  	extends [NAnt.VSNetTasks]NAnt.VSNet.SolutionBase
+  .class private auto ansi beforefieldinit BuildPropertyGroup
+  	extends [mscorlib]System.Object
   {
-    .field private static literal  string SolutionFolder_GUID = "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
 
-    // method line 4
-    .method public hidebysig specialname rtspecialname 
-           (null) cil managed 
+    // method line 5
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object o)  cil managed 
+    {
+        // Method begins at RVA 0x2439
+	// 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 6
+    .method public hidebysig 
+           instance default void SetProperty (string propertyName, string propertyValue)  cil managed 
     {
-        // Method begins at RVA 0x20f0
-    } // end of method WhidbeySolution::<NULL METHOD SIGNATURE>
+        // Method begins at RVA 0x245c
+	// 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.VSNet.WhidbeySolution
+  } // end of class NAnt.MSBuild.BuildEngine.BuildPropertyGroup
 }
 
-.namespace NAnt.MSBuild.Functions
+.namespace NAnt.MSBuild.BuildEngine
 {
-  .class public auto ansi beforefieldinit MSBuildFunctions
-  	extends [NAnt.Core]NAnt.Core.FunctionSetBase
+  .class private auto ansi beforefieldinit BuildItemGroup
+  	extends [mscorlib]System.Object
   {
-    .custom instance void [NAnt.Core]NAnt.Core.Attributes.FunctionSetAttribute::.ctor(string, string) =  (
-		01 00 07 6D 73 62 75 69 6C 64 07 4D 53 42 75 69   // ...msbuild.MSBui
-		6C 64 00 00                                     ) // ld..
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
 
-
-    // method line 5
-    .method public hidebysig specialname rtspecialname 
-           (null) cil managed 
+    // method line 7
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object o)  cil managed 
     {
-        // Method begins at RVA 0x242c
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x24b4
+	// Code size 32 (0x20)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void [NAnt.Core]NAnt.Core.FunctionSetBase::.ctor(<BROKEN CLASS token_ 1000025 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_ 1000026 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method MSBuildFunctions::<NULL METHOD SIGNATURE>
+	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 6
+    // method line 8
     .method public hidebysig 
-           instance default bool IsMsbuildProject (string project)  cil managed 
+           instance default class [mscorlib]System.Collections.IEnumerator GetEnumerator ()  cil managed 
     {
-        .custom instance void [NAnt.Core]NAnt.Core.Attributes.FunctionAttribute::.ctor(string) =  (
-		01 00 12 69 73 2D 6D 73 62 75 69 6C 64 2D 70 72   // ...is-msbuild-pr
-		6F 6A 65 63 74 00 00                            ) // oject..
+        // Method begins at RVA 0x24d8
+	// 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 begins at RVA 0x2438
-	// Code size 75 (0x4b)
-	.maxstack 4
+    // method line 9
+    .method public hidebysig 
+           instance default class NAnt.MSBuild.BuildEngine.BuildItem AddNewItem (string itemName, string itemInclude)  cil managed 
+    {
+        // Method begins at RVA 0x2514
+	// Code size 87 (0x57)
+	.maxstack 6
 	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		class [System.Xml]System.Xml.XmlDocument	V_1,
-		string	V_2,
-		bool	V_3)
+		class NAnt.MSBuild.BuildEngine.BuildItem	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldc.i4.3 
-	IL_0003:  ldc.i4.1 
-	IL_0004:  ldc.i4.3 
-	IL_0005:  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_000a:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
-	IL_000f:  stloc.0 
-	.try { // 0
-	  IL_0010:  nop 
-	  IL_0011:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	  IL_0016:  stloc.1 
-	  IL_0017:  ldloc.1 
-	  IL_0018:  ldloc.0 
-	  IL_0019:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.TextReader)
-	  IL_001e:  ldloc.1 
-	  IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNameTable class [System.Xml]System.Xml.XmlDocument::get_NameTable()
-	  IL_0024:  ldstr "http://schemas.microsoft.com/developer/msbuild/2003"
-	  IL_0029:  callvirt instance string class [System.Xml]System.Xml.XmlNameTable::Get(string)
-	  IL_002e:  stloc.2 
-	  IL_002f:  ldloc.2 
-	  IL_0030:  ldnull 
-	  IL_0031:  ceq 
-	  IL_0033:  ldc.i4.0 
-	  IL_0034:  ceq 
-	  IL_0036:  stloc.3 
-	  IL_0037:  leave IL_0049
-
-	} // end .try 0
-	finally  { // 0
-	  IL_003c:  ldloc.0 
-	  IL_003d:  brfalse IL_0048
-
-	  IL_0042:  ldloc.0 
-	  IL_0043:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0048:  endfinally 
-	} // end handler 0
-	IL_0049:  ldloc.3 
-	IL_004a:  ret 
-    } // end of method MSBuildFunctions::IsMsbuildProject
+	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 10
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IEnumerator po)  cil managed 
+    {
+        // Method begins at RVA 0x2577
+	// 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 11
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2588
+	// 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 12
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x25b0
+	// 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 13
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x25d0
+	// 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.Functions.MSBuildFunctions
+  } // end of class NAnt.MSBuild.BuildEngine.BuildItemGroup
 }
 
-.namespace NAnt.VSNet
+.namespace NAnt.MSBuild.BuildEngine
 {
-  .class private auto ansi beforefieldinit RosarioSolutionProvider
+  .class private auto ansi beforefieldinit Project
   	extends [mscorlib]System.Object
-  	implements [NAnt.VSNetTasks]NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+  {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
 
-    // method line 7
+    // method line 14
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.MSBuild.BuildEngine.Engine engine)  cil managed 
     {
-        // Method begins at RVA 0x24a0
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x25de
+	// Code size 62 (0x3e)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method RosarioSolutionProvider::.ctor
-
-    // method line 8
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string fileContents)  cil managed 
+	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 15
+    .method public hidebysig specialname 
+           instance default string get_FullFileName ()  cil managed 
     {
-        // Method begins at RVA 0x24a8
-	// Code size 103 (0x67)
+        // Method begins at RVA 0x2620
+	// 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 16
+    .method public hidebysig specialname 
+           instance default void set_FullFileName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2656
+	// 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 17
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.PropertyInfo get_ToolsVersionPI ()  cil managed 
+    {
+        // Method begins at RVA 0x2678
+	// Code size 25 (0x19)
 	.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)
+		class [mscorlib]System.Reflection.PropertyInfo	V_0)
 	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_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 18
+    .method public hidebysig specialname 
+           instance default string get_ToolsVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x26a0
+	// 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 19
+    .method public hidebysig specialname 
+           instance default void set_ToolsVersion (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x26e8
+	// 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
 
-	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 "11.00"
-	IL_004b:  call bool string::op_Equality(string, string)
-	IL_0050:  brfalse IL_005e
+    // method line 20
+    .method public hidebysig 
+           instance default void LoadXml (string projectXml)  cil managed 
+    {
+        // Method begins at RVA 0x271c
+	// 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 21
+    .method public hidebysig specialname 
+           instance default class NAnt.MSBuild.BuildEngine.BuildPropertyGroup get_GlobalProperties ()  cil managed 
+    {
+        // Method begins at RVA 0x2758
+	// 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
 
-	IL_0055:  nop 
-	IL_0056:  ldc.i4.s 0x0a
-	IL_0058:  stloc.2 
-	IL_0059:  br IL_0065
+    // method line 22
+    .method public hidebysig 
+           instance default string GetEvaluatedProperty (string propertyName)  cil managed 
+    {
+        // Method begins at RVA 0x2790
+	// 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
 
-	IL_005e:  ldc.i4.0 
-	IL_005f:  stloc.2 
-	IL_0060:  br IL_0065
+    // method line 23
+    .method public hidebysig 
+           instance default class NAnt.MSBuild.BuildEngine.BuildItemGroup GetEvaluatedItemsByName (string itemName)  cil managed 
+    {
+        // Method begins at RVA 0x27d0
+	// 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
 
-	IL_0065:  ldloc.2 
-	IL_0066:  ret 
-    } // end of method RosarioSolutionProvider::IsSupported
+    // method line 24
+    .method public hidebysig 
+           instance default void RemoveItemsByName (string itemName)  cil managed 
+    {
+        // Method begins at RVA 0x280f
+	// 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 9
-    .method public final virtual hidebysig newslot 
-           (null) cil managed 
+    // method line 25
+    .method public hidebysig 
+           instance default class NAnt.MSBuild.BuildEngine.BuildItemGroup AddNewItemGroup ()  cil managed 
     {
-        // Method begins at RVA 0x251c
-    } // end of method RosarioSolutionProvider::<NULL METHOD SIGNATURE>
+        // Method begins at RVA 0x2838
+	// 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
 
-  } // end of class NAnt.VSNet.RosarioSolutionProvider
+    // method line 26
+    .method public hidebysig 
+           instance default bool Build ()  cil managed 
+    {
+        // Method begins at RVA 0x2870
+	// 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.VSNet
+.namespace NAnt.MSBuild.BuildEngine
 {
-  .class private auto ansi beforefieldinit RosarioSolution
-  	extends NAnt.VSNet.WhidbeySolution
+  .class private auto ansi beforefieldinit BuildItem
+  	extends [mscorlib]System.Object
   {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
 
-    // method line 10
-    .method public hidebysig specialname rtspecialname 
-           (null) cil managed 
+    // method line 27
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object o)  cil managed 
     {
-        // Method begins at RVA 0x253d
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x28ac
+	// Code size 32 (0x20)
 	.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_ 1000013 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_ 1000015 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_ 1000016 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:  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 28
+    .method public hidebysig specialname 
+           instance default string get_FinalItemSpec ()  cil managed 
+    {
+        // Method begins at RVA 0x28d0
+	// 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 29
+    .method public hidebysig 
+           instance default string GetMetadata (string metadataName)  cil managed 
+    {
+        // Method begins at RVA 0x2908
+	// 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
 
-  } // end of class NAnt.VSNet.RosarioSolution
+    // method line 30
+    .method public hidebysig 
+           instance default void SetMetadata (string metadataName, string metadataValue)  cil managed 
+    {
+        // Method begins at RVA 0x2948
+	// 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
+.namespace NAnt.MSBuild.BuildEngine
 {
-  .class private auto ansi beforefieldinit OrcasSolutionProvider
-  	extends [mscorlib]System.Object
-  	implements [NAnt.VSNetTasks]NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+  .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 11
-    .method public hidebysig specialname rtspecialname 
+    // method line 31
+    .method private hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x254d
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x29a0
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method OrcasSolutionProvider::.ctor
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method Engine::.ctor
 
-    // method line 12
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string fileContents)  cil managed 
+    // method line 32
+    .method public static hidebysig 
+           (null) cil managed 
     {
-        // Method begins at RVA 0x2558
-	// Code size 103 (0x67)
+        // Method begins at RVA 0x29ac
+	// Code size 34 (0x22)
 	.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)
+		class NAnt.MSBuild.BuildEngine.Engine/Loader	V_0,
+		class NAnt.MSBuild.BuildEngine.Engine	V_1)
 	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_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:  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_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 33
+    .method private static hidebysig 
+           default void executionAD_AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x29da
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Engine::executionAD_AssemblyLoad
 
-	IL_0021:  nop 
-	IL_0022:  ldc.i4.0 
-	IL_0023:  stloc.2 
-	IL_0024:  br IL_0065
+    // method line 34
+    .method private static hidebysig 
+           default void CurrentDomain_AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x29dd
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Engine::CurrentDomain_AssemblyLoad
 
-	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 "10.00"
-	IL_004b:  call bool string::op_Equality(string, string)
-	IL_0050:  brfalse IL_005e
+    // method line 35
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+    {
+        // Method begins at RVA 0x29e0
+	// 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_0055:  nop 
-	IL_0056:  ldc.i4.s 0x0a
-	IL_0058:  stloc.2 
-	IL_0059:  br IL_0065
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Engine::get_Assembly
 
-	IL_005e:  ldc.i4.0 
-	IL_005f:  stloc.2 
-	IL_0060:  br IL_0065
+    // method line 36
+    .method assembly hidebysig specialname 
+           instance default object get_Object ()  cil managed 
+    {
+        // Method begins at RVA 0x29fc
+	// 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_0065:  ldloc.2 
-	IL_0066:  ret 
-    } // end of method OrcasSolutionProvider::IsSupported
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Engine::get_Object
 
-    // method line 13
-    .method public final virtual hidebysig newslot 
-           (null) cil managed 
+    // method line 37
+    .method public hidebysig 
+           instance default void UnregisterAllLoggers ()  cil managed 
     {
-        // Method begins at RVA 0x25cc
-    } // end of method OrcasSolutionProvider::<NULL METHOD SIGNATURE>
+        // Method begins at RVA 0x2a17
+	// 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
 
-  } // end of class NAnt.VSNet.OrcasSolutionProvider
+    // method line 38
+    .method public hidebysig 
+           instance default void RegisterLogger (object logger)  cil managed 
+    {
+        // Method begins at RVA 0x2a37
+	// 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 39
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2a60
+	// 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 40
+    .method public hidebysig 
+           instance default void DoLoad ()  cil managed 
+    {
+        // Method begins at RVA 0x2a68
+	// 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.VSNet
 {
-  .class private auto ansi beforefieldinit OrcasSolution
+  .class private auto ansi beforefieldinit RosarioSolution
   	extends NAnt.VSNet.WhidbeySolution
   {
 
-    // method line 14
+    // method line 41
     .method public hidebysig specialname rtspecialname 
            (null) cil managed 
     {
-        // Method begins at RVA 0x25ed
+        // Method begins at RVA 0x2bbf
 	// 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
@@ -4,9 +4,14 @@
         <name>NAnt.MSBuild</name>
     </assembly>
     <members>
-        <member name="T:NAnt.VSNet.WhidbeySolution">
+        <member name="T:NAnt.VSNet.OrcasSolution">
              <summary>
-             Analyses Microsoft Visual Studio .NET 2005 (Whidbey) solution files.
+             Analyses Microsoft Visual Studio .NET 2008 (Orcas) solution files.
+             </summary>
+            </member>
+        <member name="T:NAnt.VSNet.RosarioSolution">
+             <summary>
+             Analyses Microsoft Visual Studio .NET 2010 (Rosario) solution files.
              </summary>
             </member>
         <member name="T:NAnt.MSBuild.Functions.MSBuildFunctions">
@@ -26,15 +31,41 @@
              True, if it is msbuild project, False otherwise.
              </returns>
             </member>
-        <member name="T:NAnt.VSNet.RosarioSolution">
+        <member name="T:NAnt.VSNet.WhidbeySolution">
              <summary>
-             Analyses Microsoft Visual Studio .NET 2010 (Rosario) solution files.
+             Analyses Microsoft Visual Studio .NET 2005 (Whidbey) solution files.
              </summary>
             </member>
-        <member name="T:NAnt.VSNet.OrcasSolution">
+        <member name="M:NAnt.MSBuild.MSBuildProject.DetermineProductVersion(System.Xml.XmlElement)">
              <summary>
-             Analyses Microsoft Visual Studio .NET 2008 (Orcas) solution files.
+             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>
         <member name="T:NAnt.MSBuild.NAntLoggerVerbosity">
              <summary>
@@ -77,36 +108,5 @@
         <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 (number of pkgs that are not bit-by-bit identical: 0 is good)
overall=1