Pages

Wednesday, April 2, 2014

Nant target .net framework 4.5

Uma das regras basilares de boas praticas num projecto é ter o processo de build/deploy automatizado (pelo menos para mim), assim evitar erros humanos e dar alguma segurança quando delegamos estas tarefas a pessoas que ainda não estão (e assim conservarmos o nosso tempo para as nossas tarefas)

No projecto em que estou usa-se NAnt como ferramenta de build, a meu ver é uma ferramenta robusta e facilmente extensível através de scripts para fazer o que não nos dá out-of-the-box.

No entanto a versão actual ainda não suporta a framework .net 4.5, para isso é preciso adicionar ao ficheiro de configuração a especificação da framework com a localização das assemblies dessa versão e do compilador.


Para facilitar o trabalho, fica aqui o ficheiro completo de configuração para o NAnt v0.92. Basta substituir o ficheiro de configuração original pelo que tenho aqui e passamos a ter a framework 4.5 disponível!

<?xml version="1.0"?>
<!--
Building .NET 4.5 Projects with Nant:
http://stackoverflow.com/questions/11837795/building-net-4-5-projects-with-nant/11840925#11840925
-->
<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"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <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="cscompmgd.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')}"
                if="${property::exists('sdkInstallRoot')}" />
            <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"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <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="cscompmgd.dll" />
            <include name="mscorlib.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.Install.dll" />
            <include name="System.Data.dll" />
            <include name="System.Data.OracleClient.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')}"
                if="${property::exists('sdkInstallRoot')}" />
            <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"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <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="cscompmgd.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')}"
                if="${property::exists('sdkInstallRoot')}" />
            <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="3.5"
            description="Microsoft .NET Framework 3.5"
            sdkdirectory="${sdkInstallRoot}"
            frameworkdirectory="${path::combine(installRoot, 'v3.5')}"
            frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}"
            clrversion="2.0.50727"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <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="cscompmgd.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.ComponentModel.DataAnnotations.dll" />
            <include name="System.Core.dll" />
            <include name="System.Data.DataSetExtensions.dll" />
            <include name="System.Data.Entity.Design.dll" />
            <include name="System.Data.Entity.dll" />
            <include name="System.Data.Linq.dll" />
            <include name="System.Data.Services.Client.dll" />
            <include name="System.Data.Services.Design.dll" />
            <include name="System.Data.Services.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.Abstractions.dll" />
            <include name="System.Web.DynamicData.Design.dll" />
            <include name="System.Web.DynamicData.dll" />
            <include name="System.Web.Entitly.Design.dll" />
            <include name="System.Web.Entitly.dll" />
            <include name="System.Web.Extensions.Design.dll" />
            <include name="System.Web.Extensions.dll" />
            <include name="System.Web.Routing.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="PresentationBuildTasks.dll" />
            <include name="PresentationCore.dll" />
            <include name="PresentationFramework.Aero.dll" />
            <include name="PresentationFramework.Classic.dll" />
            <include name="PresentationFramework.dll" />
            <include name="PresentationFramework.Luna.dll" />
            <include name="PresentationFramework.Royale.dll" />
            <include name="ReachFramework.dll" />
            <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="UIAutomationClient.dll" />
            <include name="UIAutomationClientsideProviders.dll" />
            <include name="UIAutomationProvider.dll" />
            <include name="UIAutomationTypes.dll" />
            <include name="WindowsBase.dll" />
            <include name="WindowsFormsIntegration.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="${sdkInstallRoot}"
                if="${property::exists('sdkInstallRoot')}" />
            <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" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v6.0A" maxnetfxver="3.5" 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-4.0"
            family="net"
            version="4.0"
            description="Microsoft .NET Framework 4.0"
            sdkdirectory="${sdkInstallRoot}"
            frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}"
            frameworkassemblydirectory="${path::combine(installRoot, 'v4.0.30319')}"
            clrversion="4.0.30319"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <runtime>
            <probing-paths>
              <directory name="lib/common/2.0" />
              <directory name="lib/common/neutral" />
            </probing-paths>
            <modes>
              <strict>
                <environment>
                  <variable name="COMPLUS_VERSION" value="v4.0.30319" />
                </environment>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${path::combine(installRoot, 'v4.0.30319')}">
            <include name="Accessibility.dll" />
            <include name="Microsoft.Build.Conversion.v4.0.dll" />
            <include name="Microsoft.Build.dll" />
            <include name="Microsoft.Build.Engine.dll" />
            <include name="Microsoft.Build.Framework.dll" />
            <include name="Microsoft.Build.Tasks.v4.0.dll" />
            <include name="Microsoft.Build.Utilities.v4.0.dll" />
            <include name="Microsoft.CSharp.dll" />
            <include name="Microsoft.Data.Entity.Build.Tasks.dll" />
            <include name="Microsoft.JScript.dll" />
            <include name="Microsoft.Transactions.Bridge.dll" />
            <include name="Microsoft.Transactions.Bridge.Dtc.dll" />
            <include name="Microsoft.VisualBasic.Activities.Compiler.dll" />
            <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
            <include name="Microsoft.VisualBasic.Compatibility.dll" />
            <include name="Microsoft.VisualBasic.dll" />
            <include name="Microsoft.VisualC.dll" />
            <include name="Microsoft.VisualC.STLCLR.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Activities.Core.Presentation.dll" />
            <include name="System.Activities.dll" />
            <include name="System.Activities.DurableInstancing.dll" />
            <include name="System.Activities.Presentation.dll" />
            <include name="System.AddIn.Contract" />
            <include name="System.AddIn.dll" />
            <include name="System.ComponentModel.Composition.dll" />
            <include name="System.ComponentModel.DataAnnotations.dll" />
            <include name="System.Configuration.dll" />
            <include name="System.Configuration.Install.dll" />
            <include name="System.Core.dll" />
            <include name="System.Data.DataSetExtensions.dll" />
            <include name="System.Data.dll" />
            <include name="System.Data.Entity.Design.dll" />
            <include name="System.Data.Entity.dll" />
            <include name="System.Data.Linq.dll" />
            <include name="System.Data.OracleClient.dll" />
            <include name="System.Data.Services.Client.dll" />
            <include name="System.Data.Services.Design.dll" />
            <include name="System.Data.Services.dll" />
            <include name="System.Data.SqlXml.dll" />
            <include name="System.Deployment.dll" />
            <include name="System.Design.dll" />
            <include name="System.Device.dll" />
            <include name="System.DirectoryServices.dll" />
            <include name="System.DirectoryServices.Protocols.dll" />
            <include name="System.dll" />
            <include name="System.Drawing.Design.dll" />
            <include name="System.Drawing.dll" />
            <include name="System.Dynamic.dll" />
            <include name="System.EnterpriseServices.dll" />
            <include name="System.EnterpriseServices.Thunk.dll" />
            <include name="System.EnterpriseServices.Wrapper.dll" />
            <include name="System.IdentityModel.dll" />
            <include name="System.IdentityModel.Selectors.dll" />
            <include name="System.IO.Log.dll" />
            <include name="System.Management.dll" />
            <include name="System.Management.Instrumentation.dll" />
            <include name="System.Messaging.dll" />
            <include name="System.Net.dll" />
            <include name="System.Numerics.dll" />
            <include name="System.Runtime.Caching.dll" />
            <include name="System.Runtime.DurableInstancing.dll" />
            <include name="System.Runtime.Remoting.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
            <include name="System.Security.dll" />
            <include name="System.ServiceModel.Activation.dll" />
            <include name="System.ServiceModel.Activities.dll" />
            <include name="System.ServiceModel.Channels.dll" />
            <include name="System.ServiceModel.Discovery.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Routing.dll" />
            <include name="System.ServiceModel.ServiceMoniker40.dll" />
            <include name="System.ServiceModel.WasHosting.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.ServiceProcess.dll" />
            <include name="System.Transactions.dll" />
            <include name="System.Web.Abstractions.dll" />
            <include name="System.Web.ApplicationServices.dll" />
            <include name="System.Web.DataVisualization.Design.dll" />
            <include name="System.Web.DataVisualization.dll" />
            <include name="System.Web.dll" />
            <include name="System.Web.DynamicData.Design.dll" />
            <include name="System.Web.DynamicData.dll" />
            <include name="System.Web.Entity.Design.dll" />
            <include name="System.Web.Entity.dll" />
            <include name="System.Web.Extensions.Design.dll" />
            <include name="System.Web.Extensions.dll" />
            <include name="System.Web.Mobile.dll" />
            <include name="System.Web.RegularExpressions.dll" />
            <include name="System.Web.Routing.dll" />
            <include name="System.Web.Services.dll" />
            <include name="System.Windows.Forms.DataVisualization.Design.dll" />
            <include name="System.Windows.Forms.DataVisualization.dll" />
            <include name="System.Windows.Forms.dll" />
            <include name="System.Workflow.Activities.dll" />
            <include name="System.Workflow.ComponentModel.dll" />
            <include name="System.Workflow.Runtime.dll" />
            <include name="System.WorkflowServices.dll" />
            <include name="System.Xaml.dll" />
            <include name="System.Xaml.Hosting.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Xml.Linq.dll" />
          </reference-assemblies>
          <!-- WPF Assemblies -->
          <reference-assemblies basedir="${path::combine(installRoot, 'v4.0.30319')}/WPF">
            <include name="NaturalLanguage6.dll" />
            <include name="NlsData0009.dll" />
            <include name="NlsLexicons0009.dll" />
            <include name="PenIMC.dll" />
            <include name="PresentationCore.dll" />
            <include name="PresentationFramework.Aero.dll" />
            <include name="PresentationFramework.Classic.dll" />
            <include name="PresentationFramework.dll" />
            <include name="PresentationFramework.Luna.dll" />
            <include name="PresentationFramework.Royale.dll" />
            <include name="PresentationHost_v0400.dll" />
            <include name="PresentationNative_v0400.dll" />
            <include name="PresentationUI.dll" />
            <include name="ReachFramework.dll" />
            <include name="System.Printing.dll" />
            <include name="System.Speech.dll" />
            <include name="System.Windows.Input.Manipulations.dll" />
            <include name="System.Windows.Presentation.dll" />
            <include name="UIAutomationClient.dll" />
            <include name="UIAutomationClientsideProviders.dll" />
            <include name="UIAutomationProvider.dll" />
            <include name="UIAutomationTypes.dll" />
            <include name="WindowsBase.dll" />
            <include name="WindowsFormsIntegration.dll" />
            <include name="wpfgfx_v0400.dll" />
            <include name="wpftxt_v0400.dll" />
          </reference-assemblies>
          <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.0">
            <include name="Microsoft.Build.Conversion.v4.0.dll" />
            <include name="Microsoft.Build.dll" />
            <include name="Microsoft.Build.Engine.dll" />
            <include name="Microsoft.Build.Framework.dll" />
            <include name="Microsoft.Build.Tasks.v4.0.dll" />
            <include name="Microsoft.Build.Utilities.v4.0.dll" />
            <include name="Microsoft.CSharp.dll" />
            <include name="Microsoft.JScript.dll" />
            <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
            <include name="Microsoft.VisualBasic.Comptatibility.dll" />
            <include name="Microsoft.VisualBasic.dll" />
            <include name="Microsoft.VisualC.dll" />
            <include name="Microsoft.VisualC.STLCLR.dll" />
            <include name="mscorlib.dll" />
            <include name="PresentationBuildTasks.dll" />
            <include name="PresentationCore.dll" />
            <include name="WindowsBase.dll" />
            <include name="PresentationFramework.dll" />
            <include name="PresentationFramework.Aero.dll" />
            <include name="PresentationFramework.Classic.dll" />
            <include name="PresentationFramework.Luna.dll" />
            <include name="PresentationFramework.Royale.dll" />
            <include name="ReachFramework.dll" />
            <include name="System.Activities.Core.Presentation.dll" />
            <include name="System.Activities.dll" />
            <include name="System.Activities.DurableInstancing.dll" />
            <include name="System.Activities.Presentation.dll" />
            <include name="System.AddIn.Contract.dll" />
            <include name="System.AddIn.dll" />
            <include name="System.ComponentModel.Composition.dll" />
            <include name="System.ComponentModel.DataAnnotations.dll" />
            <include name="System.Configuration.dll" />
            <include name="System.Core.dll" />
            <include name="System.Data.DataSetExtension.dll" />
            <include name="System.Data.dll" />
            <include name="System.Data.Entity.Design.dll" />
            <include name="System.Data.Entity.dll" />
            <include name="System.Data.Linq.dll" />
            <include name="System.Data.OracleClient.dll" />
            <include name="System.Data.Services.Client.dll" />
            <include name="System.Data.Services.Design.dll" />
            <include name="System.Data.Services.dll" />
            <include name="System.Data.SqlXml.dll" />
            <include name="System.Deployment.dll" />
            <include name="System.Design.dll" />
            <include name="System.Device.dll" />
            <include name="System.DirectoryServices.AccountManagement.dll" />
            <include name="System.DirectoryServices.dll" />
            <include name="System.DirectoryServices.Protocols.dll" />
            <include name="System.dll" />
            <include name="System.Drawing.Design.dll" />
            <include name="System.Drawing.dll" />
            <include name="System.EnterpriseServices.dll" />
            <include name="System.EnterpriseServices.Thunk.dll" />
            <include name="System.EnterpriseServices.Wrapper.dll" />
            <include name="System.IdentityModel.dll" />
            <include name="System.IdentityModel.Selectors.dll" />
            <include name="System.IO.Log.dll" />
            <include name="System.Management.dll" />
            <include name="System.Management.Instrumentation.dll" />
            <include name="System.Messaging.dll" />
            <include name="System.Net.dll" />
            <include name="System.Numerics.dll" />
            <include name="System.Printing.dll" />
            <include name="System.Runtime.Caching.dll" />
            <include name="System.Runtime.DurableInstancing.dll" />
            <include name="System.Runtime.Remoting.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
            <include name="System.Security.dll" />
            <include name="System.ServiceModel.Activation.dll" />
            <include name="System.ServiceModel.Activities.dll" />
            <include name="System.ServiceModel.Channels.dll" />
            <include name="System.ServiceModel.Discovery.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Routing.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.ServiceProcess.dll" />
            <include name="System.Speech.dll" />
            <include name="System.Transactions.dll" />
            <include name="System.Web.Abstractions.dll" />
            <include name="System.Web.ApplicationServices.dll" />
            <include name="System.Web.DataVisualization.Design.dll" />
            <include name="System.Web.DataVisualization.dll" />
            <include name="System.Web.dll" />
            <include name="System.Web.DynamicData.Design.dll" />
            <include name="System.Web.DynamicData.dll" />
            <include name="System.Web.Entity.Design.dll" />
            <include name="System.Web.Entity.dll" />
            <include name="System.Web.Extensions.Design.dll" />
            <include name="System.Web.Extensions.dll" />
            <include name="System.Web.Mobile.dll" />
            <include name="System.Web.RegularExpressions.dll" />
            <include name="System.Web.Routing.dll" />
            <include name="System.Web.Services.dll" />
            <include name="System.Windows.Forms.DataVisualization.Design.dll" />
            <include name="System.Windows.Forms.DataVisualization.dll" />
            <include name="System.Windows.Forms.dll" />
            <include name="System.Windows.Input.Manipulations.dll" />
            <include name="System.Windows.Presentation.dll" />
            <include name="System.Workflow.Activities.dll" />
            <include name="System.Workflow.ComponentModel.dll" />
            <include name="System.Workflow.Runtime.dll" />
            <include name="System.WorkflowServices.dll" />
            <include name="System.Xaml.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Xml.Linq.dll" />
          </reference-assemblies>
          <task-assemblies>
            <!-- include MS.NET version-neutral assemblies -->
            <include name="extensions/net/neutral/**/*.dll" />
            <!-- include MS.NET 4.0 specific assemblies -->
            <include name="extensions/net/4.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 4.0 specific assemblies -->
            <include name="extensions/common/4.0/**/*.dll" />
          </task-assemblies>
          <tool-paths>
            <directory name="${sdkInstallRoot}"
                if="${property::exists('sdkInstallRoot')}" />
            <directory name="${path::combine(installRoot, 'v4.0.30319')}" />
          </tool-paths>
          <project>
            <readregistry
                property="installRoot"
                key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                hive="LocalMachine" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" 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="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"
            clrtype="Compact"
            vendor="Microsoft"
                    >
          <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"
            clrtype="Compact"
            vendor="Microsoft"
                    >
          <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, 'v3.5')}"
            frameworkassemblydirectory="${SL2RefAssemblyBaseDir}"
            clrversion="2.0.50727"
            clrtype="Browser"
            vendor="Microsoft"
                    >
          <runtime>
            <modes>
              <strict>
                <environment>
                  <variable name="COMPLUS_VERSION" value="v2.0.50727" />
                </environment>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${SL2RefAssemblyBaseDir}">
            <include name="Microsoft.VisualBasic.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Core.dll" />
            <include name="System.dll" />
            <include name="System.Net.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.Windows.Browser.dll" />
            <include name="System.Windows.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="${SL2RefAssemblyBaseDir}" />
            <directory name="${path::combine(sdkInstallRoot, 'bin')}"
                if="${property::exists('sdkInstallRoot')}" />
            <directory name="${path::combine(installRoot, 'v3.5')}" />
            <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
          </tool-paths>
          <project>
            <readregistry property="SL2RefAssemblyBaseDir"
                key="SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v2.0\ReferenceAssemblies\SLRuntimeInstallPath"
                hive="LocalMachine" />
            <readregistry
                property="installRoot"
                key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                hive="LocalMachine" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v6.0A" maxnetfxver="3.5" 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="silverlight-3.0"
            family="silverlight"
            version="3.0"
            description="Microsoft Silverlight 3.0"
            sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}"
            frameworkdirectory="${path::combine(installRoot, 'v3.5')}"
            frameworkassemblydirectory="${SL3RefAssemblyBaseDir}"
            clrversion="2.0.50727"
            clrtype="Browser"
            vendor="Microsoft"
                    >
          <runtime>
            <modes>
              <strict>
                <environment>
                  <variable name="COMPLUS_VERSION" value="v2.0.50727" />
                </environment>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${SL3RefAssemblyBaseDir}">
            <include name="Microsoft.VisualBasic.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Core.dll" />
            <include name="System.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Windows.dll" />
            <include name="System.Windows.Browser.dll" />
            <!-- Remaining libraries found in the Reference Assembly directory -->
            <include name="agcore.debug.dll" />
            <include name="agcore.dll" />
            <include name="coreclr.dll" />
            <include name="mscorrc.debug.dll" />
            <include name="mscorrc.dll" />
            <include name="npctrl.dll" />
            <include name="npctrlui.dll" />
            <include name="Silverlight.ConfigurationUI.dll" />
            <include name="System.Net.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Web.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="${SL3RefAssemblyBaseDir}" />
            <directory name="${path::combine(sdkInstallRoot, 'bin')}"
                if="${property::exists('sdkInstallRoot')}" />
            <directory name="${path::combine(installRoot, 'v3.5')}" />
          </tool-paths>
          <project>
            <readregistry property="SL3RefAssemblyBaseDir"
                key="SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v3.0\ReferenceAssemblies\SLRuntimeInstallPath"
                hive="LocalMachine" />
            <readregistry
                property="installRoot"
                key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                hive="LocalMachine" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v6.0A" maxnetfxver="3.5" 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="silverlight-4.0"
            family="silverlight"
            version="4.0"
            description="Microsoft Silverlight 4.0"
            sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}"
            frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}"
            frameworkassemblydirectory="${SL4RefAssemblyBaseDir}"
            clrversion="4.0.30319"
            clrtype="Browser"
            vendor="Microsoft"
                    >
          <runtime>
            <modes>
              <strict>
                <environment>
                  <variable name="COMPLUS_VERSION" value="v4.0.30319" />
                </environment>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${SL4RefAssemblyBaseDir}">
            <include name="Microsoft.VisualBasic.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Core.dll" />
            <include name="system.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Windows.dll" />
            <include name="System.Windows.Browser.dll" />
            <!-- Remaining libraries found in the Reference Assembly directory -->
            <include name="agcore.debug.dll" />
            <include name="agcore.dll" />
            <include name="coreclr.dll" />
            <include name="mscorrc.debug.dll" />
            <include name="mscorrc.dll" />
            <include name="npctrl.dll" />
            <include name="npctrlui.dll" />
            <include name="System.Net.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Web.dll" />
          </reference-assemblies>
          <task-assemblies>
            <!-- include MS.NET version-neutral assemblies -->
            <include name="extensions/net/neutral/**/*.dll" />
            <!-- include MS.NET 4.0 specific assemblies -->
            <include name="extensions/net/4.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 4.0 specific assemblies -->
            <include name="extensions/common/4.0/**/*.dll" />
          </task-assemblies>
          <tool-paths>
            <directory name="${SL4RefAssemblyBaseDir}" />
            <directory name="${path::combine(sdkInstallRoot, 'bin')}"
                if="${property::exists('sdkInstallRoot')}" />
            <directory name="${path::combine(installRoot, 'v4.0.30319')}" />
          </tool-paths>
          <project>
            <readregistry property="SL4RefAssemblyBaseDir"
                key="SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v4.0\ReferenceAssemblies\SLRuntimeInstallPath"
                hive="LocalMachine" />
            <readregistry
                property="installRoot"
                key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                hive="LocalMachine" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" 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="silverlight-5.0"
            family="silverlight"
            version="5.0"
            description="Microsoft Silverlight 5.0"
            sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}"
            frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}"
            frameworkassemblydirectory="${SL5RefAssemblyBaseDir}"
            clrversion="4.0.30319"
            clrtype="Browser"
            vendor="Microsoft"
                    >
          <runtime>
            <modes>
              <strict>
                <environment>
                  <variable name="COMPLUS_VERSION" value="v4.0.30319" />
                </environment>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${SL5RefAssemblyBaseDir}">
            <include name="Microsoft.VisualBasic.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Core.dll" />
            <include name="system.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Windows.dll" />
            <include name="System.Windows.Browser.dll" />
            <!-- Remaining libraries found in the Reference Assembly directory -->
            <include name="agcore.debug.dll" />
            <include name="agcore.dll" />
            <include name="coreclr.dll" />
            <include name="mscorrc.debug.dll" />
            <include name="mscorrc.dll" />
            <include name="npctrl.dll" />
            <include name="npctrlui.dll" />
            <include name="System.Net.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <!-- Remaining libraries are specific to XNA programming -->
            <include name="Microsoft.Xna.Framework.dll" />
            <include name="Microsoft.Xna.Framework.Graphics.dll" />
            <include name="Microsoft.Xna.Framework.Graphics.Shaders.dll" />
            <include name="System.Windows.Xna.dll" />
          </reference-assemblies>
          <task-assemblies>
            <!-- include MS.NET version-neutral assemblies -->
            <include name="extensions/net/neutral/**/*.dll" />
            <!-- include MS.NET 4.0 specific assemblies -->
            <include name="extensions/net/4.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 4.0 specific assemblies -->
            <include name="extensions/common/4.0/**/*.dll" />
          </task-assemblies>
          <tool-paths>
            <directory name="${SL5RefAssemblyBaseDir}" />
            <directory name="${path::combine(sdkInstallRoot, 'bin')}"
                if="${property::exists('sdkInstallRoot')}" />
            <directory name="${path::combine(installRoot, 'v4.0.30319')}" />
          </tool-paths>
          <project>
            <readregistry property="SL5RefAssemblyBaseDir"
                key="SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v5.0\ReferenceAssemblies\SLRuntimeInstallPath"
                hive="LocalMachine" />
            <readregistry
                property="installRoot"
                key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                hive="LocalMachine" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" 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"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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}" />
            <!-- unmanaged tools -->
            <directory name="${sdkInstallRoot}/bin" />
          </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) < 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">
              <monoregistry property="mono.reg" failonerror="false" />
              <readregistry
                  property="mono.version"
                  key="${mono.reg}\DefaultCLR"
                  hive="LocalMachine"
                            />
              <property name="monokey" value="${mono.reg}\${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">${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"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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}" />
            <!-- unmanaged tools -->
            <directory name="${sdkInstallRoot}/bin" />
          </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) < 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">
              <monoregistry property="mono.reg" failonerror="false" />
              <readregistry
                  property="mono.version"
                  key="${mono.reg}\DefaultCLR"
                  hive="LocalMachine"
                            />
              <property name="monokey" value="${mono.reg}\${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"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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')}" />
            <!-- unmanaged tools -->
            <directory name="${sdkInstallRoot}/bin" />
          </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">
              <monoregistry property="mono.reg" failonerror="false" />
              <readregistry
                  property="mono.version"
                  key="${mono.reg}\DefaultCLR"
                  hive="LocalMachine"
                            />
              <property name="monokey" value="${mono.reg}\${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="mono-4.0"
            family="mono"
            version="4.0"
            description="Mono 4.0 Profile"
            sdkdirectory="${toolDirectory}"
            frameworkdirectory="${toolDirectory}"
            frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/4.0')}"
            clrversion="4.0.30319"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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=v4.0.30319" />
                </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/4.0')}">
            <include name="*.dll" />
          </reference-assemblies>
          <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/4.0')}" />
            <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
            <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
            <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
            <!-- unmanaged tools -->
            <directory name="${sdkInstallRoot}/bin" />
          </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/4.0')}" />
            <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">
              <monoregistry property="mono.reg" failonerror="false" />
              <readregistry
                  property="mono.version"
                  key="${mono.reg}\DefaultCLR"
                  hive="LocalMachine"
                            />
              <property name="monokey" value="${mono.reg}\${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">dmcs</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"
            clrtype="Browser"
            vendor="Mono"
                    >
          <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(frameworkAssemblyDirectory, 'lib/mono/2.1')}">
            <include name="Microsoft.VisualBasic.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Core.dll" />
            <include name="System.dll" />
            <include name="System.Net.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.Windows.Browser.dll" />
            <include name="System.Windows.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="${toolDirectory}" />
            <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
            <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
            <!-- unmanaged tools -->
            <directory name="${sdkInstallRoot}/bin" />
          </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">
              <monoregistry property="mono.reg" failonerror="false" />
              <readregistry
                  property="mono.version"
                  key="${mono.reg}\DefaultCLR"
                  hive="LocalMachine"
                            />
              <property name="monokey" value="${mono.reg}\${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"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <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>
        <framework
            name="net-4.5"
            family="net"
            version="4.5"
            description="Microsoft .NET Framework 4.5"
            sdkdirectory="${sdkInstallRoot}"
            frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}"
            frameworkassemblydirectory="${path::combine(installRoot, 'v4.0.30319')}"
            clrversion="4.0.30319"
            clrtype="Desktop"
            vendor="Microsoft"
                    >
          <runtime>
            <probing-paths>
              <directory name="lib/common/2.0" />
              <directory name="lib/common/neutral" />
            </probing-paths>
            <modes>
              <strict>
                <environment>
                  <variable name="COMPLUS_VERSION" value="v4.0.30319" />
                </environment>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${path::combine(installRoot, 'v4.0.30319')}">
            <include name="Accessibility.dll" />
            <include name="Microsoft.Build.Conversion.v4.0.dll" />
            <include name="Microsoft.Build.dll" />
            <include name="Microsoft.Build.Engine.dll" />
            <include name="Microsoft.Build.Framework.dll" />
            <include name="Microsoft.Build.Tasks.v4.0.dll" />
            <include name="Microsoft.Build.Utilities.v4.0.dll" />
            <include name="Microsoft.CSharp.dll" />
            <include name="Microsoft.Data.Entity.Build.Tasks.dll" />
            <include name="Microsoft.JScript.dll" />
            <include name="Microsoft.Transactions.Bridge.dll" />
            <include name="Microsoft.Transactions.Bridge.Dtc.dll" />
            <include name="Microsoft.VisualBasic.Activities.Compiler.dll" />
            <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
            <include name="Microsoft.VisualBasic.Compatibility.dll" />
            <include name="Microsoft.VisualBasic.dll" />
            <include name="Microsoft.VisualC.dll" />
            <include name="Microsoft.VisualC.STLCLR.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Activities.Core.Presentation.dll" />
            <include name="System.Activities.dll" />
            <include name="System.Activities.DurableInstancing.dll" />
            <include name="System.Activities.Presentation.dll" />
            <include name="System.AddIn.Contract" />
            <include name="System.AddIn.dll" />
            <include name="System.ComponentModel.Composition.dll" />
            <include name="System.ComponentModel.DataAnnotations.dll" />
            <include name="System.Configuration.dll" />
            <include name="System.Configuration.Install.dll" />
            <include name="System.Core.dll" />
            <include name="System.Data.DataSetExtensions.dll" />
            <include name="System.Data.dll" />
            <include name="System.Data.Entity.Design.dll" />
            <include name="System.Data.Entity.dll" />
            <include name="System.Data.Linq.dll" />
            <include name="System.Data.OracleClient.dll" />
            <include name="System.Data.Services.Client.dll" />
            <include name="System.Data.Services.Design.dll" />
            <include name="System.Data.Services.dll" />
            <include name="System.Data.SqlXml.dll" />
            <include name="System.Deployment.dll" />
            <include name="System.Design.dll" />
            <include name="System.Device.dll" />
            <include name="System.DirectoryServices.dll" />
            <include name="System.DirectoryServices.Protocols.dll" />
            <include name="System.dll" />
            <include name="System.Drawing.Design.dll" />
            <include name="System.Drawing.dll" />
            <include name="System.Dynamic.dll" />
            <include name="System.EnterpriseServices.dll" />
            <include name="System.EnterpriseServices.Thunk.dll" />
            <include name="System.EnterpriseServices.Wrapper.dll" />
            <include name="System.IdentityModel.dll" />
            <include name="System.IdentityModel.Selectors.dll" />
            <include name="System.IO.Log.dll" />
            <include name="System.Management.dll" />
            <include name="System.Management.Instrumentation.dll" />
            <include name="System.Messaging.dll" />
            <include name="System.Net.dll" />
            <include name="System.Numerics.dll" />
            <include name="System.Runtime.Caching.dll" />
            <include name="System.Runtime.DurableInstancing.dll" />
            <include name="System.Runtime.Remoting.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
            <include name="System.Security.dll" />
            <include name="System.ServiceModel.Activation.dll" />
            <include name="System.ServiceModel.Activities.dll" />
            <include name="System.ServiceModel.Channels.dll" />
            <include name="System.ServiceModel.Discovery.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Routing.dll" />
            <include name="System.ServiceModel.ServiceMoniker40.dll" />
            <include name="System.ServiceModel.WasHosting.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.ServiceProcess.dll" />
            <include name="System.Transactions.dll" />
            <include name="System.Web.Abstractions.dll" />
            <include name="System.Web.ApplicationServices.dll" />
            <include name="System.Web.DataVisualization.Design.dll" />
            <include name="System.Web.DataVisualization.dll" />
            <include name="System.Web.dll" />
            <include name="System.Web.DynamicData.Design.dll" />
            <include name="System.Web.DynamicData.dll" />
            <include name="System.Web.Entity.Design.dll" />
            <include name="System.Web.Entity.dll" />
            <include name="System.Web.Extensions.Design.dll" />
            <include name="System.Web.Extensions.dll" />
            <include name="System.Web.Mobile.dll" />
            <include name="System.Web.RegularExpressions.dll" />
            <include name="System.Web.Routing.dll" />
            <include name="System.Web.Services.dll" />
            <include name="System.Windows.Forms.DataVisualization.Design.dll" />
            <include name="System.Windows.Forms.DataVisualization.dll" />
            <include name="System.Windows.Forms.dll" />
            <include name="System.Workflow.Activities.dll" />
            <include name="System.Workflow.ComponentModel.dll" />
            <include name="System.Workflow.Runtime.dll" />
            <include name="System.WorkflowServices.dll" />
            <include name="System.Xaml.dll" />
            <include name="System.Xaml.Hosting.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Xml.Linq.dll" />
          </reference-assemblies>
          <!-- WPF Assemblies -->
          <reference-assemblies basedir="${path::combine(installRoot, 'v4.0.30319')}/WPF">
            <include name="NaturalLanguage6.dll" />
            <include name="NlsData0009.dll" />
            <include name="NlsLexicons0009.dll" />
            <include name="PenIMC.dll" />
            <include name="PresentationCore.dll" />
            <include name="PresentationFramework.Aero.dll" />
            <include name="PresentationFramework.Classic.dll" />
            <include name="PresentationFramework.dll" />
            <include name="PresentationFramework.Luna.dll" />
            <include name="PresentationFramework.Royale.dll" />
            <include name="PresentationHost_v0400.dll" />
            <include name="PresentationNative_v0400.dll" />
            <include name="PresentationUI.dll" />
            <include name="ReachFramework.dll" />
            <include name="System.Printing.dll" />
            <include name="System.Speech.dll" />
            <include name="System.Windows.Input.Manipulations.dll" />
            <include name="System.Windows.Presentation.dll" />
            <include name="UIAutomationClient.dll" />
            <include name="UIAutomationClientsideProviders.dll" />
            <include name="UIAutomationProvider.dll" />
            <include name="UIAutomationTypes.dll" />
            <include name="WindowsBase.dll" />
            <include name="WindowsFormsIntegration.dll" />
            <include name="wpfgfx_v0400.dll" />
            <include name="wpftxt_v0400.dll" />
          </reference-assemblies>
          <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.5">
            <include name="Microsoft.Build.Conversion.v4.0.dll" />
            <include name="Microsoft.Build.dll" />
            <include name="Microsoft.Build.Engine.dll" />
            <include name="Microsoft.Build.Framework.dll" />
            <include name="Microsoft.Build.Tasks.v4.0.dll" />
            <include name="Microsoft.Build.Utilities.v4.0.dll" />
            <include name="Microsoft.CSharp.dll" />
            <include name="Microsoft.JScript.dll" />
            <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
            <include name="Microsoft.VisualBasic.Comptatibility.dll" />
            <include name="Microsoft.VisualBasic.dll" />
            <include name="Microsoft.VisualC.dll" />
            <include name="Microsoft.VisualC.STLCLR.dll" />
            <include name="mscorlib.dll" />
            <include name="PresentationBuildTasks.dll" />
            <include name="PresentationCore.dll" />
            <include name="WindowsBase.dll" />
            <include name="PresentationFramework.dll" />
            <include name="PresentationFramework.Aero.dll" />
            <include name="PresentationFramework.Classic.dll" />
            <include name="PresentationFramework.Luna.dll" />
            <include name="PresentationFramework.Royale.dll" />
            <include name="ReachFramework.dll" />
            <include name="System.Activities.Core.Presentation.dll" />
            <include name="System.Activities.dll" />
            <include name="System.Activities.DurableInstancing.dll" />
            <include name="System.Activities.Presentation.dll" />
            <include name="System.AddIn.Contract.dll" />
            <include name="System.AddIn.dll" />
            <include name="System.ComponentModel.Composition.dll" />
            <include name="System.ComponentModel.DataAnnotations.dll" />
            <include name="System.Configuration.dll" />
            <include name="System.Core.dll" />
            <include name="System.Data.DataSetExtension.dll" />
            <include name="System.Data.dll" />
            <include name="System.Data.Entity.Design.dll" />
            <include name="System.Data.Entity.dll" />
            <include name="System.Data.Linq.dll" />
            <include name="System.Data.OracleClient.dll" />
            <include name="System.Data.Services.Client.dll" />
            <include name="System.Data.Services.Design.dll" />
            <include name="System.Data.Services.dll" />
            <include name="System.Data.SqlXml.dll" />
            <include name="System.Deployment.dll" />
            <include name="System.Design.dll" />
            <include name="System.Device.dll" />
            <include name="System.DirectoryServices.AccountManagement.dll" />
            <include name="System.DirectoryServices.dll" />
            <include name="System.DirectoryServices.Protocols.dll" />
            <include name="System.dll" />
            <include name="System.Drawing.Design.dll" />
            <include name="System.Drawing.dll" />
            <include name="System.EnterpriseServices.dll" />
            <include name="System.EnterpriseServices.Thunk.dll" />
            <include name="System.EnterpriseServices.Wrapper.dll" />
            <include name="System.IdentityModel.dll" />
            <include name="System.IdentityModel.Selectors.dll" />
            <include name="System.IO.Log.dll" />
            <include name="System.Management.dll" />
            <include name="System.Management.Instrumentation.dll" />
            <include name="System.Messaging.dll" />
            <include name="System.Net.dll" />
            <include name="System.Numerics.dll" />
            <include name="System.Printing.dll" />
            <include name="System.Runtime.Caching.dll" />
            <include name="System.Runtime.DurableInstancing.dll" />
            <include name="System.Runtime.Remoting.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
            <include name="System.Security.dll" />
            <include name="System.ServiceModel.Activation.dll" />
            <include name="System.ServiceModel.Activities.dll" />
            <include name="System.ServiceModel.Channels.dll" />
            <include name="System.ServiceModel.Discovery.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Routing.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.ServiceProcess.dll" />
            <include name="System.Speech.dll" />
            <include name="System.Transactions.dll" />
            <include name="System.Web.Abstractions.dll" />
            <include name="System.Web.ApplicationServices.dll" />
            <include name="System.Web.DataVisualization.Design.dll" />
            <include name="System.Web.DataVisualization.dll" />
            <include name="System.Web.dll" />
            <include name="System.Web.DynamicData.Design.dll" />
            <include name="System.Web.DynamicData.dll" />
            <include name="System.Web.Entity.Design.dll" />
            <include name="System.Web.Entity.dll" />
            <include name="System.Web.Extensions.Design.dll" />
            <include name="System.Web.Extensions.dll" />
            <include name="System.Web.Mobile.dll" />
            <include name="System.Web.RegularExpressions.dll" />
            <include name="System.Web.Routing.dll" />
            <include name="System.Web.Services.dll" />
            <include name="System.Windows.Forms.DataVisualization.Design.dll" />
            <include name="System.Windows.Forms.DataVisualization.dll" />
            <include name="System.Windows.Forms.dll" />
            <include name="System.Windows.Input.Manipulations.dll" />
            <include name="System.Windows.Presentation.dll" />
            <include name="System.Workflow.Activities.dll" />
            <include name="System.Workflow.ComponentModel.dll" />
            <include name="System.Workflow.Runtime.dll" />
            <include name="System.WorkflowServices.dll" />
            <include name="System.Xaml.dll" />
            <include name="System.Xml.dll" />
            <include name="System.Xml.Linq.dll" />
          </reference-assemblies>
          <task-assemblies>
            <!-- include MS.NET version-neutral assemblies -->
            <include name="extensions/net/neutral/**/*.dll" />
            <!-- include MS.NET 4.0 specific assemblies -->
            <include name="extensions/net/4.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 4.0 specific assemblies -->
            <include name="extensions/common/4.0/**/*.dll" />
          </task-assemblies>
          <tool-paths>
            <directory name="${sdkInstallRoot}"
                if="${property::exists('sdkInstallRoot')}" />
            <directory name="${path::combine(installRoot, 'v4.0.30319')}" />
          </tool-paths>
          <project>
            <readregistry
                property="installRoot"
                key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                hive="LocalMachine" />
            <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" 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>
      </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"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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}" />
            <!-- unmanaged tools -->
            <directory name="${prefix}/bin" />
          </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"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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')}" />
            <!-- unmanaged tools -->
            <directory name="${prefix}/bin" />
          </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"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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')}" />
            <!-- unmanaged tools -->
            <directory name="${prefix}/bin" />
          </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="mono-4.0"
            family="mono"
            version="4.0"
            description="Mono 4.0 Profile"
            sdkdirectory="${toolDirectory}"
            frameworkdirectory="${toolDirectory}"
            frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/4.0')}"
            clrversion="4.0.30319"
            clrtype="Desktop"
            vendor="Mono"
                    >
          <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=v4.0.30319" />
                </engine>
              </strict>
            </modes>
          </runtime>
          <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/4.0')}">
            <include name="*.dll" />
          </reference-assemblies>
          <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/3.5')}" />
            <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
            <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
            <!-- unmanaged tools -->
            <directory name="${prefix}/bin" />
          </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/4.0')}" />
          </project>
          <tasks>
            <task name="al">
              <attribute name="managed">true</attribute>
            </task>
            <task name="csc">
              <attribute name="exename">dmcs</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"
            clrtype="Browser"
            vendor="Mono"
                    >
          <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="Microsoft.VisualBasic.dll" />
            <include name="mscorlib.dll" />
            <include name="System.Core.dll" />
            <include name="System.dll" />
            <include name="System.Net.dll" />
            <include name="System.Runtime.Serialization.dll" />
            <include name="System.ServiceModel.dll" />
            <include name="System.ServiceModel.Web.dll" />
            <include name="System.Windows.Browser.dll" />
            <include name="System.Windows.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="${toolDirectory}" />
            <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
            <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
            <!-- unmanaged tools -->
            <directory name="${prefix}/bin" />
          </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] <%X{auth}>]%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] <%X{auth}>]%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>
    <NetFx40_LegacySecurityPolicy enabled="true"/>
  </runtime>
  <startup>
    <!-- .NET Framework 4.5 -->
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
    <!-- .NET Framework 4.0 -->
    <supportedRuntime version="v4.0.30319" />
    <!-- .NET Framework 2.0 -->
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>


Fonte: Building .NET 4.5 Projects with Nant

No comments:

Post a Comment