<?xml version="1.0"?>
<configuration>
    <!-- Leave this alone. Sets up configsectionhandler section -->
    <configSections>
        <section name="nant" type="NAnt.Core.ConfigurationSection, NAnt.Core" />
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
    </configSections>
    <appSettings>
        <!-- Used to indicate the location of the cache folder for shadow files -->
        <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
        <!-- Used to indicate that NAnt should shadow copy files in a cache folder near the executable -->
        <add key="nant.shadowfiles" value="False" />
        <!-- Used to indicate if cached files should be deleted when done running-->
        <add key="nant.shadowfiles.cleanup" value="False" />
        <!-- To enable internal log4net logging, uncomment the next line -->
        <!-- <add key="log4net.Internal.Debug" value="true"/> -->
    </appSettings>
    <!-- nant config settings -->
    <nant>
        <frameworks>
            <platform name="win32" default="auto">
                <task-assemblies>
                        <!-- include NAnt task assemblies -->
                        <include name="*Tasks.dll" />
                        <!-- include NAnt test assemblies -->
                        <include name="*Tests.dll" />
                        <!-- include framework-neutral assemblies -->
                        <include name="extensions/common/neutral/**/*.dll" />
                        <!-- exclude Microsoft.NET specific task assembly -->
                        <exclude name="NAnt.MSNetTasks.dll" />
                        <!-- exclude Microsoft.NET specific test assembly -->
                        <exclude name="NAnt.MSNet.Tests.dll" />
                </task-assemblies>
                <framework 
                    name="net-1.0" 
                    family="net" 
                    version="1.0"
                    description="Microsoft .NET Framework 1.0"
                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
                    frameworkdirectory="${path::combine(installRoot, 'v1.0.3705')}" 
                    frameworkassemblydirectory="${path::combine(installRoot, 'v1.0.3705')}"
                    clrversion="1.0.3705"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/net/1.0" />
                            <directory name="lib/net/neutral" />
                            <directory name="lib/common/1.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v1.0.3705" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(installRoot, 'v1.0.3705')}">
                        <include name="Accessibility.dll" />
                        <include name="mscorlib.dll" />
                        <include name="Microsoft.Vsa.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="System.Configuration.Install.dll" />
                        <include name="System.Data.dll" />
                        <include name="System.Design.dll" />
                        <include name="System.DirectoryServices.dll" />
                        <include name="System.dll" />
                        <include name="System.Drawing.Design.dll" />
                        <include name="System.Drawing.dll" />
                        <include name="System.EnterpriseServices.dll" />
                        <include name="System.Management.dll" />
                        <include name="System.Messaging.dll" />
                        <include name="System.Runtime.Remoting.dll" />
                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
                        <include name="System.Security.dll" />
                        <include name="System.ServiceProcess.dll" />
                        <include name="System.Web.dll" />
                        <include name="System.Web.RegularExpressions.dll" />
                        <include name="System.Web.Services.dll" />
                        <include name="System.Windows.Forms.dll" />
                        <include name="System.XML.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 1.0 specific assemblies -->
                        <include name="extensions/net/1.0/**/*.dll" />
                        <!-- include Microsoft.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include Microsoft.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 1.0 specific assemblies -->
                        <include name="extensions/common/1.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
                        <directory name="${path::combine(installRoot, 'v1.0.3705')}" />
                    </tool-paths>
                    <project>
                        <readregistry
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRoot"
                            hive="LocalMachine"
                            failonerror="false" />
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="supportsnowarnlist">true</attribute>
                        </task>
                        <task name="vjc">
                            <attribute name="supportsnowarnlist">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                        </task>
                        <task name="aximp">
                            <attribute name="supportsrcw">false</attribute>
                        </task>
                        <task name="tlbimp">
                            <attribute name="supportstransform">false</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="net-1.1"
                    family="net" 
                    version="1.1"
                    description="Microsoft .NET Framework 1.1"
                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
                    frameworkdirectory="${path::combine(installRoot, 'v1.1.4322')}"
                    frameworkassemblydirectory="${path::combine(installRoot, 'v1.1.4322')}"
                    clrversion="1.1.4322"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/net/1.1" />
                            <directory name="lib/net/neutral" />
                            <directory name="lib/common/1.1" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v1.1.4322" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(installRoot, 'v1.1.4322')}">
                        <include name="Accessibility.dll" />
                        <include name="mscorlib.dll" />
                        <include name="Microsoft.Vsa.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="System.Configuration.Install.dll" />
                        <include name="System.Data.dll" />
                        <include name="System.Design.dll" />
                        <include name="System.DirectoryServices.dll" />
                        <include name="System.dll" />
                        <include name="System.Drawing.Design.dll" />
                        <include name="System.Drawing.dll" />
                        <include name="System.EnterpriseServices.dll" />
                        <include name="System.Management.dll" />
                        <include name="System.Messaging.dll" />
                        <include name="System.Runtime.Remoting.dll" />
                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
                        <include name="System.Security.dll" />
                        <include name="System.ServiceProcess.dll" />
                        <include name="System.Web.dll" />
                        <include name="System.Web.Mobile.dll" />
                        <include name="System.Web.RegularExpressions.dll" />
                        <include name="System.Web.Services.dll" />
                        <include name="System.Windows.Forms.dll" />
                        <include name="System.XML.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 1.1 specific assemblies -->
                        <include name="extensions/net/1.1/**/*.dll" />
                        <!-- include MS.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include MS.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 1.1 specific assemblies -->
                        <include name="extensions/common/1.1/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
                        <directory name="${path::combine(installRoot, 'v1.1.4322')}" />
                    </tool-paths>
                    <project>
                        <readregistry 
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry 
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv1.1"
                            hive="LocalMachine"
                            failonerror="false" />
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="supportsnowarnlist">true</attribute>
                        </task>
                        <task name="vjc">
                            <attribute name="supportsnowarnlist">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="net-2.0" 
                    family="net" 
                    version="2.0"
                    description="Microsoft .NET Framework 2.0" 
                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
                    frameworkdirectory="${path::combine(installRoot, 'v2.0.50727')}" 
                    frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/net/2.0" />
                            <directory name="lib/net/neutral" />
                            <directory name="lib/common/2.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(installRoot, 'v2.0.50727')}">
                        <include name="Accessibility.dll" />
                        <include name="mscorlib.dll" />
                        <include name="Microsoft.Build.Engine.dll" />
                        <include name="Microsoft.Build.Framework.dll" />
                        <include name="Microsoft.Build.Utilities.dll" />
                        <include name="Microsoft.Vsa.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="Microsoft.VisualBasic.Compatibility.dll" />
                        <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
                        <include name="System.Configuration.dll" />
                        <include name="System.Configuration.Install.dll" />
                        <include name="System.Data.dll" />
                        <include name="System.Data.OracleClient.dll" />
                        <include name="System.Data.SqlXml.dll" />
                        <include name="System.Deployment.dll" />
                        <include name="System.Design.dll" />
                        <include name="System.DirectoryServices.dll" />
                        <include name="System.dll" />
                        <include name="System.Drawing.Design.dll" />
                        <include name="System.Drawing.dll" />
                        <include name="System.EnterpriseServices.dll" />
                        <include name="System.Management.dll" />
                        <include name="System.Messaging.dll" />
                        <include name="System.Runtime.Remoting.dll" />
                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
                        <include name="System.Security.dll" />
                        <include name="System.ServiceProcess.dll" />
                        <include name="System.Transactions.dll" />
                        <include name="System.Web.dll" />
                        <include name="System.Web.Mobile.dll" />
                        <include name="System.Web.RegularExpressions.dll" />
                        <include name="System.Web.Services.dll" />
                        <include name="System.Windows.Forms.dll" />
                        <include name="System.Xml.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 2.0 specific assemblies -->
                        <include name="extensions/net/2.0/**/*.dll" />
                        <!-- include MS.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include MS.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
                        <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
                    </tool-paths>
                    <project>
                        <readregistry
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
                            hive="LocalMachine"
                            failonerror="false" />
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportsnostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="supportsplatform">true</attribute>
                        </task>
                        <task name="vjc">
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="supportsassemblyreferences">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                            <attribute name="supportsassemblyreferences">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="net-3.5"
                    family="net"
                    version="2.0"
                    description="Microsoft .NET Framework 3.5"
                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}"
                    frameworkdirectory="${path::combine(installRoot, 'v3.5')}"
                    frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/net/2.0" />
                            <directory name="lib/net/neutral" />
                            <directory name="lib/common/2.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(installRoot, 'v2.0.50727')}">
                        <include name="Accessibility.dll" />
                        <include name="mscorlib.dll" />
                        <include name="Microsoft.Build.Utilities.dll" />
                        <include name="Microsoft.Vsa.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="Microsoft.VisualBasic.Compatibility.dll" />
                        <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
                        <include name="System.Configuration.dll" />
                        <include name="System.Configuration.Install.dll" />
                        <include name="System.Data.dll" />
                        <include name="System.Data.OracleClient.dll" />
                        <include name="System.Data.SqlXml.dll" />
                        <include name="System.Deployment.dll" />
                        <include name="System.Design.dll" />
                        <include name="System.DirectoryServices.dll" />
                        <include name="System.dll" />
                        <include name="System.Drawing.Design.dll" />
                        <include name="System.Drawing.dll" />
                        <include name="System.EnterpriseServices.dll" />
                        <include name="System.Management.dll" />
                        <include name="System.Messaging.dll" />
                        <include name="System.Runtime.Remoting.dll" />
                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
                        <include name="System.Security.dll" />
                        <include name="System.ServiceProcess.dll" />
                        <include name="System.Transactions.dll" />
                        <include name="System.Web.dll" />
                        <include name="System.Web.Mobile.dll" />
                        <include name="System.Web.RegularExpressions.dll" />
                        <include name="System.Web.Services.dll" />
                        <include name="System.Windows.Forms.dll" />
                        <include name="System.Xml.dll" />
                    </reference-assemblies>
                    <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/v3.5">
                        <include name="Microsoft.Build.Engine.dll" />
                        <include name="Microsoft.Build.Framework.dll" />
                        <include name="System.AddIn.Contract.dll" />
                        <include name="System.AddIn.dll" />
                        <include name="System.Core.dll" />
                        <include name="System.Data.DataSetExtensions.dll" />
                        <include name="System.Data.Linq.dll" />
                        <include name="System.DirectoryServices.AccountManagement.dll" />
                        <include name="System.Management.Instrumentation.dll" />
                        <include name="System.Net.dll" />
                        <include name="System.ServiceModel.Web.dll" />
                        <include name="System.Web.Extensions.Design.dll" />
                        <include name="System.Web.Extensions.dll" />
                        <include name="System.Windows.Presentation.dll" />
                        <include name="System.WorkflowServices.dll" />
                        <include name="System.Xml.Linq.dll" />
                    </reference-assemblies>
                    <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/v3.0">
                        <include name="System.IdentityModel.dll" />
                        <include name="System.IdentityModel.Selectors.dll" />
                        <include name="System.IO.Log.dll" />
                        <include name="System.Printing.dll" />
                        <include name="System.Runtime.Serialization.dll" />
                        <include name="System.ServiceModel.dll" />
                        <include name="System.Speech.dll" />
                        <include name="System.Workflow.Activities.dll" />
                        <include name="System.Workflow.ComponentModel.dll" />
                        <include name="System.Workflow.Runtime.dll" />
                        <include name="WindowsBase.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 2.0 specific assemblies -->
                        <include name="extensions/net/2.0/**/*.dll" />
                        <!-- include MS.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include MS.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
                        <directory name="${path::combine(installRoot, 'v3.5')}" />
                        <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
                    </tool-paths>
                    <project>
                        <readregistry
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKNetFxTools\InstallationFolder"
                            hive="LocalMachine"
                            failonerror="false" />
                        <property name="frameworkDirectoryV35" value="${path::combine(installRoot, 'v3.5')}" />
                        <fail if="${not(directory::exists(frameworkDirectoryV35))}">The Framework directory for .NET 3.5 does not exist.</fail>
                        <property name="referenceV35" value="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/v3.5" />
                        <fail if="${not(directory::exists(referenceV35))}">The Reference Assemblies directory for .NET 3.5 does not exist.</fail>
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="exename">${path::combine(frameworkDirectoryV35,'csc.exe')}</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">${path::combine(frameworkDirectoryV35,'vbc.exe')}</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportsnostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="supportsplatform">true</attribute>
                        </task>
                        <task name="vjc">
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="supportsassemblyreferences">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="al">
                            <attribute name="exename">${path::combine(sdkInstallRoot, 'bin/al.exe')}</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                            <attribute name="supportsassemblyreferences">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="netcf-1.0"
                    family="netcf"
                    version="1.0"
                    description="Microsoft .NET Compact Framework 1.0"
                    sdkdirectory="${path::combine(sdkInstallRoot, 'v1.0.5000\bin')}"
                    frameworkdirectory="${path::combine(installRoot, 'v1.1.4322')}"
                    frameworkassemblydirectory="${path::combine(sdkInstallRoot, 'v1.0.5000\Windows CE')}"
                    clrversion="1.1.4322"
                    >
                    <runtime>
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v1.1.4322" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(sdkInstallRoot, 'v1.0.5000\Windows CE')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- this is not a supported runtime framework -->
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot, 'v1.0.5000\bin')}" />
                        <directory name="${path::combine(installRoot, 'v1.1.4322')}" />
                        <directory name="${path::combine(sdkInstallRoot.DesktopFramework, 'bin')}" />
                    </tool-paths>
                    <project>
                        <readregistry
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\.NETCompactFramework\sdkInstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot.DesktopFramework"
                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv1.1"
                            hive="LocalMachine" />
                        <fail if="${not directory::exists(sdkInstallRoot.DesktopFramework)}">The .NET Framework 1.1 SDK is not installed.</fail>
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="noconfig">true</attribute>
                            <attribute name="nostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="exename">cfresgen</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="netcf-2.0"
                    family="netcf"
                    version="2.0"
                    description="Microsoft .NET Compact Framework 2.0"
                    sdkdirectory="${path::combine(sdkInstallRoot.DesktopFramework, 'bin')}"
                    frameworkdirectory="${path::combine(installRoot, 'v2.0.50727')}"
                    frameworkassemblydirectory="${path::combine(sdkInstallRoot, 'WindowsCE')}"
                    clrversion="2.0.0"
                    >
                    <runtime>
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(sdkInstallRoot, 'WindowsCE')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- this is not a supported runtime framework -->
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot.DesktopFramework, 'bin')}" />
                    </tool-paths>
                    <project>
                        <readregistry
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\.NETCompactFramework\v2.0.0.0\InstallRoot\"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot.DesktopFramework"
                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
                            hive="LocalMachine" />
                        <fail if="${not directory::exists(sdkInstallRoot.DesktopFramework)}">The .NET Framework 2.0 SDK is not installed.</fail>
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="noconfig">true</attribute>
                            <attribute name="nostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="nostdlib">true</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportsnostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="supportsassemblyreferences">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                            <attribute name="supportsassemblyreferences">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="silverlight-2.0" 
                    family="silverlight" 
                    version="2.0"
                    description="Microsoft Silverlight 2.0" 
                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
                    frameworkdirectory="${path::combine(installRoot, 'v2.0.50727')}" 
                    frameworkassemblydirectory="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <modes>
                            <strict>
                                <environment>
                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight">
                        <include name="agclr.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="mscorlib.dll" />
                        <include name="System.Core.dll" />
                        <include name="System.dll" />
                        <include name="System.Silverlight.dll" />
                        <include name="System.Xml.Core.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 2.0 specific assemblies -->
                        <include name="extensions/net/2.0/**/*.dll" />
                        <!-- include MS.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include MS.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
                        <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
                        <directory name="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight" />
                    </tool-paths>
                    <project>
                        <readregistry
                            property="installRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                            hive="LocalMachine" />
                        <readregistry
                            property="sdkInstallRoot"
                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
                            hive="LocalMachine"
                            failonerror="false" />
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="noconfig">true</attribute>
                            <attribute name="nostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="nostdlib">true</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportsnostdlib">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportsplatform">true</attribute>
                            <attribute name="supportswarnaserrorlist">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="supportsplatform">true</attribute>
                        </task>
                        <task name="vjc">
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="supportsassemblyreferences">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="exename">lc</attribute>
                            <attribute name="supportsassemblyreferences">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework
                    name="mono-1.0"
                    family="mono"
                    version="1.0"
                    description="Mono 1.0 Profile"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}"
                    clrversion="1.1.4322"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/mono/1.0" />
                            <directory name="lib/mono/neutral" />
                            <directory name="lib/common/1.1" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <auto>
                                <engine program="${runtimeEngine}" />
                                <environment>
                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
                                </environment>
                            </auto>
                            <strict>
                                <engine program="${runtimeEngine}">
                                    <arg value="--runtime=v1.1.4322" />
                                </engine>
                                <environment>
                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include Mono version-neutral assemblies -->
                        <include name="extensions/mono/neutral/**/*.dll" />
                        <!-- include Mono 1.0 specific assemblies -->
                        <include name="extensions/mono/1.0/**/*.dll" />
                        <!-- include .NET 1.1 specific assemblies -->
                        <include name="extensions/common/1.1/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                    </tool-paths>
                    <project>
                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
                        <if test="${pkgconfig.available}">
                            <if test="${pkg-config::exists('mono')}">
                                <call target="configure-from-pkg-config" />
                            </if>
                            <if test="${not pkg-config::exists('mono')}">
                                <call target="configure-from-registry" />
                            </if>
                        </if>
                        <if test="${not pkgconfig.available}">
                            <call target="configure-from-registry" />
                        </if>

                        <!-- determine if we're dealing with a Mono 1.0.x release -->
                        <if test="${version::parse(mono.version) &lt; version::parse('1.1')}">
                            <!-- 
                                in Mono 1.0.x, the framework tools are located 
                                in the <install root>\lib directory
                            -->
                            <property name="toolDirectory" value="${frameworkAssemblyDirectory}" />
                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
                            <property name="resgen.tool" value="monoresgen" />
                            <!-- in Mono 1.0.x, only mcs and mbas are located in <install root>\lib\mono\<profile> -->
                            <property name="csc.tool" value="${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mcs.exe')}" />
                            <property name="mbas.tool" value="${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mbas.exe')}" />
                            <!-- /doc is not supported in Mono 1.0.x -->
                            <property name="csc.supportsdocgeneration" value="false" />

                            <!-- 
                                Mono 1.0.1 installer incorrectly adds '\mono' to 
                                "MonoConfigDir" registry value
                            -->
                            <if test="${string::ends-with(configDir, 'etc\mono')}">
                                <property name="configDir" value="${string::replace(configDir, 'etc\mono', 'etc')}" />
                            </if>
                        </if>

                        <!-- determine if we're dealing with a Mono 1.1.x release or higher -->
                        <if test="${version::parse(mono.version) >= version::parse('1.1')}">
                            <!-- 
                                in Mono 1.1.x (and higher ?), the framework tools 
                                are located in the <install root>\lib\mono\<profile>
                                directory
                            -->
                            <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
                            <!-- starting from Mono 1.1.9.2, mono.exe is located in the bin directory -->
                            <if test="${not file::exists(runtimeEngine)}">
                                <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
                            </if>
                            <property name="resgen.tool" value="resgen" />
                            <property name="csc.tool" value="mcs" />
                            <property name="csc.supportsdocgeneration" value="true" />
                            <property name="mbas.tool" value="mbas" />
                        </if>

                        <target name="configure-from-pkg-config">
                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                        </target>

                        <target name="configure-from-registry">
                            <!-- 
                                first try using the DefaultCLR in HKLM\Novell\Mono, 
                                this is used by the Mono 1.0.1 installer (and later?)
                            -->
                            <readregistry
                                property="mono.version"
                                key="SOFTWARE\Novell\Mono\DefaultCLR"
                                hive="LocalMachine" 
                                failonerror="false" 
                            />
                        
                            <if test="${property::exists('mono.version')}">
                                <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
                            </if>
                        
                            <!-- 
                                if the DefaultCLR registry value does not exist in 
                                HKLM\Novell\Mono, then try the HKML\Mono registry 
                                key as this was used for the Mono 1.0 installer
                            -->
                            <if test="${not property::exists('mono.version')}">
                                <readregistry
                                    property="mono.version"
                                    key="SOFTWARE\Mono\DefaultCLR"
                                    hive="LocalMachine" 
                                />
                                <property name="monokey" value="SOFTWARE\Mono\${mono.version}" />
                            </if>

                            <readregistry
                                property="sdkInstallRoot"
                                key="${monokey}\SdkInstallRoot"
                                hive="LocalMachine" />
                            <readregistry
                                property="frameworkAssemblyDirectory"
                                key="${monokey}\FrameworkAssemblyDirectory"
                                hive="LocalMachine" />
                            <readregistry
                                property="configDir"
                                key="${monokey}\MonoConfigDir"
                                hive="LocalMachine" />
                        </target>
                    </project>
                    <properties>
                    </properties>
                    <tasks>
                        <task name="al">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="csc">
                            <attribute name="exename">${csc.tool}</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="exename">mjs</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">${mbas.tool}</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="exename">${resgen.tool}</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="mono-2.0"
                    family="mono"
                    version="2.0"
                    description="Mono 2.0 Profile"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/mono/2.0" />
                            <directory name="lib/mono/neutral" />
                            <directory name="lib/common/2.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <auto>
                                <engine program="${runtimeEngine}" />
                                <environment>
                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
                                </environment>
                            </auto>
                            <strict>
                                <engine program="${runtimeEngine}">
                                    <arg value="--runtime=v2.0.50727" />
                                </engine>
                                <environment>
                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include Mono version-neutral assemblies -->
                        <include name="extensions/mono/neutral/**/*.dll" />
                        <!-- include Mono 2.0 specific assemblies -->
                        <include name="extensions/mono/2.0/**/*.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                        <!-- for compatibility with Mono 1.0.x -->
                        <directory name="${frameworkAssemblyDirectory}" />
                    </tool-paths>
                    <project>
                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
                        <if test="${pkgconfig.available}">
                            <if test="${pkg-config::exists('mono')}">
                                <call target="configure-from-pkg-config" />
                            </if>
                            <if test="${not pkg-config::exists('mono')}">
                                <call target="configure-from-registry" />
                            </if>
                        </if>
                        <if test="${not pkgconfig.available}">
                            <call target="configure-from-registry" />
                        </if>

                        <property name="resgen.supportsexternalfilereferences" value="false" />

                        <!-- determine if we're dealing with a Mono 1.0.x release -->
                        <if test="${version::parse(mono.version) &lt; version::parse('1.1')}">
                            <!-- 
                                in Mono 1.0.x, the framework tools are located 
                                in the <install root>\lib directory, except for
                                mbas and mcs
                            -->
                            <property name="toolDirectory" value="${frameworkAssemblyDirectory}" />
                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
                            <property name="resgen.tool" value="monoresgen" />
                            <property name="csc.supportsdocgeneration" value="false" />

                            <!-- 
                                Mono 1.0.1 installer incorrectly adds '\mono' to 
                                "MonoConfigDir" registry value
                            -->
                            <if test="${string::ends-with(configDir, 'etc\mono')}">
                                <property name="configDir" value="${string::replace(configDir, 'etc\mono', 'etc')}" />
                            </if>
                        </if>

                        <!-- determine if we're dealing with a Mono 1.1.x release or higher -->
                        <if test="${version::parse(mono.version) >= version::parse('1.1')}">
                            <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
                            <!-- starting from Mono 1.1.9.2, mono.exe is located in the bin directory -->
                            <if test="${not file::exists(runtimeEngine)}">
                                <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
                            </if>
                            <property name="csc.supportsdocgeneration" value="true" />
                        </if>
                        <!-- as from Mono 1.2.3.50, resgen supports the /usesourcepath option -->
                        <if test="${version::parse(mono.version) >= version::parse('1.2.3.50')}">
                            <property name="resgen.supportsexternalfilereferences" value="true" />
                        </if>

                        <target name="configure-from-pkg-config">
                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                        </target>

                        <target name="configure-from-registry">
                            <readregistry
                                property="mono.version"
                                key="SOFTWARE\Novell\Mono\DefaultCLR"
                                hive="LocalMachine" 
                            />
                            <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />

                            <readregistry
                                property="sdkInstallRoot"
                                key="${monokey}\SdkInstallRoot"
                                hive="LocalMachine" />
                            <readregistry
                                property="frameworkAssemblyDirectory"
                                key="${monokey}\FrameworkAssemblyDirectory"
                                hive="LocalMachine" />
                            <readregistry
                                property="configDir"
                                key="${monokey}\MonoConfigDir"
                                hive="LocalMachine" />
                        </target>
                    </project>
                    <properties>
                    </properties>
                    <tasks>
                        <task name="al">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="csc">
                            <attribute name="exename">gmcs</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="exename">mjs</attribute>
                            <attribute name="managed">strict</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">vbnc}</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="exename">${resgen.tool}</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportsexternalfilereferences">${resgen.supportsexternalfilereferences}</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework
                    name="mono-3.5"
                    family="mono"
                    version="3.5"
                    description="Mono 3.5 Profile"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/mono/2.0" />
                            <directory name="lib/mono/neutral" />
                            <directory name="lib/common/2.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <auto>
                                <engine program="${runtimeEngine}" />
                                <environment>
                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
                                </environment>
                            </auto>
                            <strict>
                                <engine program="${runtimeEngine}">
                                    <arg value="--runtime=v2.0.50727" />
                                </engine>
                                <environment>
                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
                                </environment>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/3.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include Mono version-neutral assemblies -->
                        <include name="extensions/mono/neutral/**/*.dll" />
                        <!-- include Mono 2.0 specific assemblies -->
                        <include name="extensions/mono/2.0/**/*.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                    </tool-paths>
                    <project>
                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
                        <if test="${pkgconfig.available}">
                            <if test="${pkg-config::exists('mono')}">
                                <call target="configure-from-pkg-config" />
                            </if>
                            <if test="${not pkg-config::exists('mono')}">
                                <call target="configure-from-registry" />
                            </if>
                        </if>
                        <if test="${not pkgconfig.available}">
                            <call target="configure-from-registry" />
                        </if>

                        <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
                        <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />

                        <target name="configure-from-pkg-config">
                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                        </target>

                        <target name="configure-from-registry">
                            <readregistry
                                property="mono.version"
                                key="SOFTWARE\Novell\Mono\DefaultCLR"
                                hive="LocalMachine" 
                            />
                            <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
                           
                            <readregistry
                                property="sdkInstallRoot"
                                key="${monokey}\SdkInstallRoot"
                                hive="LocalMachine" />
                            <readregistry
                                property="frameworkAssemblyDirectory"
                                key="${monokey}\FrameworkAssemblyDirectory"
                                hive="LocalMachine" />
                            <readregistry
                                property="configDir"
                                key="${monokey}\MonoConfigDir"
                                hive="LocalMachine" />
                        </target>
                    </project>
                    <properties>
                    </properties>
                    <tasks>
                        <task name="al">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="csc">
                            <attribute name="exename">gmcs</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="langversion">linq</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="exename">mjs</attribute>
                            <attribute name="managed">strict</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">vbnc</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="managed">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework
                    name="moonlight-2.0" 
                    family="moonlight" 
                    version="2.0"
                    description="Moonlight 2.0"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${toolDirectory}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <modes>
                            <auto>
                                <engine program="${runtimeEngine}">
                                    <arg value="--runtime=moonlight" />
                                    <arg value="--security=temporary-smcs-hack" />
                                </engine>
                            </auto>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.1')}">
                        <include name="agclr.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="mscorlib.dll" />
                        <include name="System.Core.dll" />
                        <include name="System.dll" />
                        <include name="System.Silverlight.dll" />
                        <include name="System.Xml.Core.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 2.0 specific assemblies -->
                        <include name="extensions/net/2.0/**/*.dll" />
                        <!-- include MS.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include MS.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                    </tool-paths>
                    <project>
                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
                        <if test="${pkgconfig.available}">
                            <if test="${pkg-config::exists('mono')}">
                                <call target="configure-from-pkg-config" />
                            </if>
                            <if test="${not pkg-config::exists('mono')}">
                                <call target="configure-from-registry" />
                            </if>
                        </if>
                        <if test="${not pkgconfig.available}">
                            <call target="configure-from-registry" />
                        </if>

                        <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.1')}" />
                        <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />

                        <target name="configure-from-pkg-config">
                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                        </target>

                        <target name="configure-from-registry">
                            <readregistry
                                property="mono.version"
                                key="SOFTWARE\Novell\Mono\DefaultCLR"
                                hive="LocalMachine" 
                            />
                            <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
                           
                            <readregistry
                                property="sdkInstallRoot"
                                key="${monokey}\SdkInstallRoot"
                                hive="LocalMachine" />
                            <readregistry
                                property="frameworkAssemblyDirectory"
                                key="${monokey}\FrameworkAssemblyDirectory"
                                hive="LocalMachine" />
                            <readregistry
                                property="configDir"
                                key="${monokey}\MonoConfigDir"
                                hive="LocalMachine" />
                        </target>
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="exename">smcs</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="supportsassemblyreferences">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework 
                    name="sscli-1.0"
                    family="sscli"
                    version="1.0"
                    description="Microsoft Shared Source CLI 1.0"
                    sdkdirectory="C:\sscli\build\v1.x86fstchk.rotor\sdk\bin"
                    frameworkdirectory="C:\sscli\build\v1.x86fstchk.rotor"
                    frameworkassemblydirectory="C:\sscli\build\v1.x86fstchk.rotor"
                    clrversion="1.0.3"
                    >
                    <runtime>
                        <modes>
                            <auto>
                                <engine program="C:\sscli\build\v1.x86fstchk.rotor\clix.exe" />
                            </auto>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="C:\sscli\build\v1.x86fstchk.rotor">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- this is not a supported runtime framework -->
                    </task-assemblies>
                    <tool-paths>
                        <directory name="C:\sscli\build\v1.x86fstchk.rotor\sdk\bin" />
                        <directory name="C:\sscli\build\v1.x86fstchk.rotor" />
                    </tool-paths>
                    <project />
                    <tasks>
                        <task name="csc">
                            <attribute name="supportsnowarnlist">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="ildasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
            </platform>
            <platform name="unix" default="auto">
                <task-assemblies>
                        <!-- include NAnt task assemblies -->
                        <include name="*Tasks.dll" />
                        <!-- include NAnt test assemblies -->
                        <include name="*Tests.dll" />
                        <!-- include framework-neutral assemblies -->
                        <include name="extensions/common/neutral/**/*.dll" />
                        <!-- exclude Microsoft.NET specific task assembly -->
                        <exclude name="NAnt.MSNetTasks.dll" />
                        <!-- exclude Microsoft.NET specific test assembly -->
                        <exclude name="NAnt.MSNet.Tests.dll" />
                        <!-- exclude win32 specific task assembly -->
                        <exclude name="NAnt.Win32Tasks.dll" />
                        <!-- exclude win32 specific test assembly -->
                        <exclude name="NAnt.Win32.Tests.dll" />
                </task-assemblies>
                <framework 
                    name="mono-1.0"
                    family="mono"
                    version="1.0"
                    description="Mono 1.0 Profile"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/1.0')}"
                    clrversion="1.1.4322"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/mono/1.0" />
                            <directory name="lib/mono/neutral" />
                            <directory name="lib/common/1.1" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <auto>
                                <engine program="${path::combine(prefix, 'bin/mono')}" />
                            </auto>
                            <strict>
                                <engine program="${path::combine(prefix, 'bin/mono')}">
                                    <arg value="--runtime=v1.1.4322" />
                                </engine>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/1.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include Mono version-neutral assemblies -->
                        <include name="extensions/mono/neutral/**/*.dll" />
                        <!-- include Mono 1.0 specific assemblies -->
                        <include name="extensions/mono/1.0/**/*.dll" />
                        <!-- include .NET 1.1 specific assemblies -->
                        <include name="extensions/common/1.1/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                    </tool-paths>
                    <project>
                        <if test="${not pkg-config::exists('mono')}">
                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
                        </if>
                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                        <if test="${not(pkg-config::is-atleast-version('mono', '1.1'))}">
                            <property name="toolDirectory" value="${path::combine(prefix, 'bin')}" />
                            <property name="resgen.tool" value="monoresgen" />
                            <property name="csc.supportsdocgeneration" value="false" />
                        </if>
                        <if test="${pkg-config::is-atleast-version('mono', '1.1')}">
                            <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/1.0')}" />
                            <property name="resgen.tool" value="resgen" />
                            <property name="csc.supportsdocgeneration" value="true" />
                        </if>
                    </project>
                    <tasks>
                        <task name="al">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="csc">
                            <attribute name="exename">${path::combine(prefix, 'lib/mono/1.0/mcs.exe')}</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="exename">mjs</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">${path::combine(prefix, 'lib/mono/1.0/mbas.exe')}</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="exename">${resgen.tool}</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework
                    name="mono-2.0"
                    family="mono"
                    version="2.0"
                    description="Mono 2.0 Profile"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/2.0')}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/mono/2.0" />
                            <directory name="lib/mono/neutral" />
                            <directory name="lib/common/2.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <auto>
                                <engine program="${path::combine(prefix, 'bin/mono')}" />
                            </auto>
                            <strict>
                                <engine program="${path::combine(prefix, 'bin/mono')}">
                                    <arg value="--runtime=v2.0.50727" />
                                </engine>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include Mono version-neutral assemblies -->
                        <include name="extensions/mono/neutral/**/*.dll" />
                        <!-- include Mono 2.0 specific assemblies -->
                        <include name="extensions/mono/2.0/**/*.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                        <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
                    </tool-paths>
                    <project>
                        <if test="${not pkg-config::exists('mono')}">
                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
                        </if>
                        <property name="resgen.supportsexternalfilereferences" value="false" />
                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                        <if test="${not(pkg-config::is-atleast-version('mono', '1.1'))}">
                            <property name="toolDirectory" value="${path::combine(prefix, 'bin')}" />
                            <property name="resgen.tool" value="monoresgen" />
                            <property name="csc.supportsdocgeneration" value="false" />
                        </if>
                        <if test="${pkg-config::is-atleast-version('mono', '1.1')}">
                            <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/2.0')}" />
                            <property name="resgen.tool" value="resgen" />
                            <property name="csc.supportsdocgeneration" value="true" />
                        </if>
                        <!-- as from Mono 1.2.3.50, resgen supports the /usesourcepath option -->
                        <if test="${pkg-config::is-atleast-version('mono', '1.2.3.50')}">
                            <property name="resgen.supportsexternalfilereferences" value="true" />
                        </if>
                    </project>
                    <tasks>
                        <task name="al">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="csc">
                            <attribute name="exename">gmcs</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="exename">mjs</attribute>
                            <attribute name="managed">strict</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">vbnc</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="exename">${resgen.tool}</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportsexternalfilereferences">${resgen.supportsexternalfilereferences}</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework
                    name="mono-3.5"
                    family="mono"
                    version="3.5"
                    description="Mono 3.5 Profile"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/2.0')}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <probing-paths>
                            <directory name="lib/mono/2.0" />
                            <directory name="lib/mono/neutral" />
                            <directory name="lib/common/2.0" />
                            <directory name="lib/common/neutral" />
                        </probing-paths>
                        <modes>
                            <auto>
                                <engine program="${path::combine(prefix, 'bin/mono')}" />
                            </auto>
                            <strict>
                                <engine program="${path::combine(prefix, 'bin/mono')}">
                                    <arg value="--runtime=v2.0.50727" />
                                </engine>
                            </strict>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/3.5')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/3.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.0')}">
                        <include name="*.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include Mono version-neutral assemblies -->
                        <include name="extensions/mono/neutral/**/*.dll" />
                        <!-- include Mono 2.0 specific assemblies -->
                        <include name="extensions/mono/2.0/**/*.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                        <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                        <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
                    </tool-paths>
                    <project>
                        <if test="${not pkg-config::exists('mono')}">
                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
                        </if>
                        <property name="resgen.supportsexternalfilereferences" value="false" />
                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                        <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/3.5')}" />
                    </project>
                    <tasks>
                        <task name="al">
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="csc">
                            <attribute name="exename">gmcs</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="langversion">linq</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="jsc">
                            <attribute name="exename">mjs</attribute>
                            <attribute name="managed">strict</attribute>
                        </task>
                        <task name="vbc">
                            <attribute name="exename">vbnc</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="managed">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                            <attribute name="managed">true</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                        <task name="ilasm">
                            <attribute name="managed">true</attribute>
                        </task>
                    </tasks>
                </framework>
                <framework
                    name="moonlight-2.0" 
                    family="moonlight" 
                    version="2.0"
                    description="Moonlight 2.0"
                    sdkdirectory="${toolDirectory}"
                    frameworkdirectory="${toolDirectory}"
                    frameworkassemblydirectory="${toolDirectory}"
                    clrversion="2.0.50727"
                    >
                    <runtime>
                        <modes>
                            <auto>
                                <engine program="${path::combine(prefix, 'bin/mono')}">
                                    <arg value="--runtime=moonlight" />
                                    <arg value="--security=temporary-smcs-hack" />
                                </engine>
                            </auto>
                        </modes>
                    </runtime>
                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.1')}">
                        <include name="agclr.dll" />
                        <include name="Microsoft.VisualBasic.dll" />
                        <include name="mscorlib.dll" />
                        <include name="System.Core.dll" />
                        <include name="System.dll" />
                        <include name="System.Silverlight.dll" />
                        <include name="System.Xml.Core.dll" />
                    </reference-assemblies>
                    <task-assemblies>
                        <!-- include MS.NET version-neutral assemblies -->
                        <include name="extensions/net/neutral/**/*.dll" />
                        <!-- include MS.NET 2.0 specific assemblies -->
                        <include name="extensions/net/2.0/**/*.dll" />
                        <!-- include MS.NET specific task assembly -->
                        <include name="NAnt.MSNetTasks.dll" />
                        <!-- include MS.NET specific test assembly -->
                        <include name="NAnt.MSNet.Tests.dll" />
                        <!-- include .NET 2.0 specific assemblies -->
                        <include name="extensions/common/2.0/**/*.dll" />
                    </task-assemblies>
                    <tool-paths>
                        <directory name="${toolDirectory}" />
                        <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                        <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
                    </tool-paths>
                    <project>
                        <if test="${not pkg-config::exists('mono')}">
                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
                        </if>
                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                        <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/2.1')}" />
                    </project>
                    <tasks>
                        <task name="csc">
                            <attribute name="exename">smcs</attribute>
                            <attribute name="managed">true</attribute>
                            <attribute name="supportspackagereferences">true</attribute>
                            <attribute name="supportsnowarnlist">true</attribute>
                            <attribute name="supportsdocgeneration">true</attribute>
                            <attribute name="supportskeycontainer">true</attribute>
                            <attribute name="supportskeyfile">true</attribute>
                            <attribute name="supportsdelaysign">true</attribute>
                            <attribute name="supportslangversion">true</attribute>
                        </task>
                        <task name="resgen">
                            <attribute name="supportsassemblyreferences">true</attribute>
                            <attribute name="supportsexternalfilereferences">true</attribute>
                        </task>
                        <task name="delay-sign">
                            <attribute name="exename">sn</attribute>
                        </task>
                        <task name="license">
                            <attribute name="hascommandlinecompiler">false</attribute>
                        </task>
                    </tasks>
                </framework>
            </platform>
        </frameworks>
        <properties>
            <!-- properties defined here are accessible to all build files -->
            <!-- <property name="foo" value = "bar" readonly="false" /> -->
        </properties>
    </nant>
    <!--
        This section contains the log4net configuration settings.

        By default, no messages will be logged to the log4net logging infrastructure.

        To enable the internal logging, set the threshold attribute on the log4net element
        to "ALL".

        When internal logging is enabled, internal messages will be written to the 
        console.
    -->
    <log4net threshold="OFF">
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="[%c{2}:%m  - [%x] &lt;%X{auth}&gt;]%n" />
            </layout>
        </appender>
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="${APPDATA}\\NAnt\\NAnt.log" />
            <param name="AppendToFile" value="true" />
            <param name="MaxSizeRollBackups" value="2" />
            <param name="MaximumFileSize" value="500KB" />
            <param name="RollingStyle" value="Size" />
            <param name="StaticLogFileName" value="true" />
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="[%c{2}:%m  - [%x] &lt;%X{auth}&gt;]%n" />
            </layout>
        </appender>
        <!-- Setup the root category, add the appenders and set the default level -->
        <root>
            <!-- Only log messages with severity ERROR (or higher) -->
            <level value="ERROR" />
            <!-- Log messages to the console -->
            <appender-ref ref="ConsoleAppender" />
            <!-- Uncomment the next line to enable logging messages to the NAnt.log file -->
            <!-- <appender-ref ref="RollingLogFileAppender" /> -->
        </root>
        <!-- Specify the priority for some specific categories -->
        <!--
        <logger name="NAnt.Core.TaskBuilderCollection">
            <level value="DEBUG" />
        </logger>
        <logger name="NAnt">
            <level value="INFO" />
        </logger>
        -->
    </log4net>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="lib" />
        </assemblyBinding>
    </runtime>
    <startup>
        <!-- .NET Framework 2.0 -->
        <supportedRuntime version="v2.0.50727" />
        <!-- .NET Framework 1.1 -->
        <supportedRuntime version="v1.1.4322" />
        <!-- .NET Framework 1.0 -->
        <supportedRuntime version="v1.0.3705" />
    </startup>
</configuration>
