master
   1<?xml version="1.0"?>
   2<configuration>
   3    <!-- Leave this alone. Sets up configsectionhandler section -->
   4    <configSections>
   5        <section name="nant" type="NAnt.Core.ConfigurationSection, NAnt.Core" />
   6        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
   7    </configSections>
   8    <appSettings>
   9        <!-- Used to indicate the location of the cache folder for shadow files -->
  10        <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
  11        <!-- Used to indicate that NAnt should shadow copy files in a cache folder near the executable -->
  12        <add key="nant.shadowfiles" value="False" />
  13        <!-- Used to indicate if cached files should be deleted when done running-->
  14        <add key="nant.shadowfiles.cleanup" value="False" />
  15        <!-- To enable internal log4net logging, uncomment the next line -->
  16        <!-- <add key="log4net.Internal.Debug" value="true"/> -->
  17    </appSettings>
  18    <!-- nant config settings -->
  19    <nant>
  20        <frameworks>
  21            <platform name="win32" default="auto">
  22                <task-assemblies>
  23                        <!-- include NAnt task assemblies -->
  24                        <include name="*Tasks.dll" />
  25                        <!-- include NAnt test assemblies -->
  26                        <include name="*Tests.dll" />
  27                        <!-- include framework-neutral assemblies -->
  28                        <include name="extensions/common/neutral/**/*.dll" />
  29                        <!-- exclude Microsoft.NET specific task assembly -->
  30                        <exclude name="NAnt.MSNetTasks.dll" />
  31                        <!-- exclude Microsoft.NET specific test assembly -->
  32                        <exclude name="NAnt.MSNet.Tests.dll" />
  33                </task-assemblies>
  34                <framework 
  35                    name="net-1.0" 
  36                    family="net" 
  37                    version="1.0"
  38                    description="Microsoft .NET Framework 1.0"
  39                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
  40                    frameworkdirectory="${path::combine(installRoot, 'v1.0.3705')}" 
  41                    frameworkassemblydirectory="${path::combine(installRoot, 'v1.0.3705')}"
  42                    clrversion="1.0.3705"
  43                    >
  44                    <runtime>
  45                        <probing-paths>
  46                            <directory name="lib/net/1.0" />
  47                            <directory name="lib/net/neutral" />
  48                            <directory name="lib/common/1.0" />
  49                            <directory name="lib/common/neutral" />
  50                        </probing-paths>
  51                        
  52                        <modes>
  53                            <strict>
  54                                <environment>
  55                                    <variable name="COMPLUS_VERSION" value="v1.0.3705" />
  56                                </environment>
  57                            </strict>
  58                        </modes>
  59                    </runtime>
  60                    <reference-assemblies basedir="${path::combine(installRoot, 'v1.0.3705')}">
  61                        <include name="Accessibility.dll" />
  62                        <include name="mscorlib.dll" />
  63                        <include name="Microsoft.Vsa.dll" />
  64                        <include name="Microsoft.VisualBasic.dll" />
  65                        <include name="System.Configuration.Install.dll" />
  66                        <include name="System.Data.dll" />
  67                        <include name="System.Design.dll" />
  68                        <include name="System.DirectoryServices.dll" />
  69                        <include name="System.dll" />
  70                        <include name="System.Drawing.Design.dll" />
  71                        <include name="System.Drawing.dll" />
  72                        <include name="System.EnterpriseServices.dll" />
  73                        <include name="System.Management.dll" />
  74                        <include name="System.Messaging.dll" />
  75                        <include name="System.Runtime.Remoting.dll" />
  76                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
  77                        <include name="System.Security.dll" />
  78                        <include name="System.ServiceProcess.dll" />
  79                        <include name="System.Web.dll" />
  80                        <include name="System.Web.RegularExpressions.dll" />
  81                        <include name="System.Web.Services.dll" />
  82                        <include name="System.Windows.Forms.dll" />
  83                        <include name="System.XML.dll" />
  84                    </reference-assemblies>
  85                    <task-assemblies>
  86                        <!-- include MS.NET version-neutral assemblies -->
  87                        <include name="extensions/net/neutral/**/*.dll" />
  88                        <!-- include MS.NET 1.0 specific assemblies -->
  89                        <include name="extensions/net/1.0/**/*.dll" />
  90                        <!-- include Microsoft.NET specific task assembly -->
  91                        <include name="NAnt.MSNetTasks.dll" />
  92                        <!-- include Microsoft.NET specific test assembly -->
  93                        <include name="NAnt.MSNet.Tests.dll" />
  94                        <!-- include .NET 1.0 specific assemblies -->
  95                        <include name="extensions/common/1.0/**/*.dll" />
  96                    </task-assemblies>
  97                    <tool-paths>
  98                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
  99                        <directory name="${path::combine(installRoot, 'v1.0.3705')}" />
 100                    </tool-paths>
 101                    <project>
 102                        <readregistry
 103                            property="installRoot"
 104                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 105                            hive="LocalMachine" />
 106                        <readregistry
 107                            property="sdkInstallRoot"
 108                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRoot"
 109                            hive="LocalMachine"
 110                            failonerror="false" />
 111                    </project>
 112                    <tasks>
 113                        <task name="csc">
 114                            <attribute name="supportsnowarnlist">true</attribute>
 115                        </task>
 116                        <task name="vjc">
 117                            <attribute name="supportsnowarnlist">true</attribute>
 118                        </task>
 119                        <task name="delay-sign">
 120                            <attribute name="exename">sn</attribute>
 121                        </task>
 122                        <task name="license">
 123                            <attribute name="exename">lc</attribute>
 124                        </task>
 125                        <task name="aximp">
 126                            <attribute name="supportsrcw">false</attribute>
 127                        </task>
 128                        <task name="tlbimp">
 129                            <attribute name="supportstransform">false</attribute>
 130                        </task>
 131                    </tasks>
 132                </framework>
 133                <framework 
 134                    name="net-1.1"
 135                    family="net" 
 136                    version="1.1"
 137                    description="Microsoft .NET Framework 1.1"
 138                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
 139                    frameworkdirectory="${path::combine(installRoot, 'v1.1.4322')}"
 140                    frameworkassemblydirectory="${path::combine(installRoot, 'v1.1.4322')}"
 141                    clrversion="1.1.4322"
 142                    >
 143                    <runtime>
 144                        <probing-paths>
 145                            <directory name="lib/net/1.1" />
 146                            <directory name="lib/net/neutral" />
 147                            <directory name="lib/common/1.1" />
 148                            <directory name="lib/common/neutral" />
 149                        </probing-paths>
 150                        <modes>
 151                            <strict>
 152                                <environment>
 153                                    <variable name="COMPLUS_VERSION" value="v1.1.4322" />
 154                                </environment>
 155                            </strict>
 156                        </modes>
 157                    </runtime>
 158                    <reference-assemblies basedir="${path::combine(installRoot, 'v1.1.4322')}">
 159                        <include name="Accessibility.dll" />
 160                        <include name="mscorlib.dll" />
 161                        <include name="Microsoft.Vsa.dll" />
 162                        <include name="Microsoft.VisualBasic.dll" />
 163                        <include name="System.Configuration.Install.dll" />
 164                        <include name="System.Data.dll" />
 165                        <include name="System.Design.dll" />
 166                        <include name="System.DirectoryServices.dll" />
 167                        <include name="System.dll" />
 168                        <include name="System.Drawing.Design.dll" />
 169                        <include name="System.Drawing.dll" />
 170                        <include name="System.EnterpriseServices.dll" />
 171                        <include name="System.Management.dll" />
 172                        <include name="System.Messaging.dll" />
 173                        <include name="System.Runtime.Remoting.dll" />
 174                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
 175                        <include name="System.Security.dll" />
 176                        <include name="System.ServiceProcess.dll" />
 177                        <include name="System.Web.dll" />
 178                        <include name="System.Web.Mobile.dll" />
 179                        <include name="System.Web.RegularExpressions.dll" />
 180                        <include name="System.Web.Services.dll" />
 181                        <include name="System.Windows.Forms.dll" />
 182                        <include name="System.XML.dll" />
 183                    </reference-assemblies>
 184                    <task-assemblies>
 185                        <!-- include MS.NET version-neutral assemblies -->
 186                        <include name="extensions/net/neutral/**/*.dll" />
 187                        <!-- include MS.NET 1.1 specific assemblies -->
 188                        <include name="extensions/net/1.1/**/*.dll" />
 189                        <!-- include MS.NET specific task assembly -->
 190                        <include name="NAnt.MSNetTasks.dll" />
 191                        <!-- include MS.NET specific test assembly -->
 192                        <include name="NAnt.MSNet.Tests.dll" />
 193                        <!-- include .NET 1.1 specific assemblies -->
 194                        <include name="extensions/common/1.1/**/*.dll" />
 195                    </task-assemblies>
 196                    <tool-paths>
 197                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
 198                        <directory name="${path::combine(installRoot, 'v1.1.4322')}" />
 199                    </tool-paths>
 200                    <project>
 201                        <readregistry 
 202                            property="installRoot"
 203                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 204                            hive="LocalMachine" />
 205                        <readregistry 
 206                            property="sdkInstallRoot"
 207                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv1.1"
 208                            hive="LocalMachine"
 209                            failonerror="false" />
 210                    </project>
 211                    <tasks>
 212                        <task name="csc">
 213                            <attribute name="supportsnowarnlist">true</attribute>
 214                        </task>
 215                        <task name="vjc">
 216                            <attribute name="supportsnowarnlist">true</attribute>
 217                        </task>
 218                        <task name="delay-sign">
 219                            <attribute name="exename">sn</attribute>
 220                        </task>
 221                        <task name="license">
 222                            <attribute name="exename">lc</attribute>
 223                        </task>
 224                    </tasks>
 225                </framework>
 226                <framework 
 227                    name="net-2.0" 
 228                    family="net" 
 229                    version="2.0"
 230                    description="Microsoft .NET Framework 2.0" 
 231                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
 232                    frameworkdirectory="${path::combine(installRoot, 'v2.0.50727')}" 
 233                    frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}"
 234                    clrversion="2.0.50727"
 235                    >
 236                    <runtime>
 237                        <probing-paths>
 238                            <directory name="lib/net/2.0" />
 239                            <directory name="lib/net/neutral" />
 240                            <directory name="lib/common/2.0" />
 241                            <directory name="lib/common/neutral" />
 242                        </probing-paths>
 243                        <modes>
 244                            <strict>
 245                                <environment>
 246                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
 247                                </environment>
 248                            </strict>
 249                        </modes>
 250                    </runtime>
 251                    <reference-assemblies basedir="${path::combine(installRoot, 'v2.0.50727')}">
 252                        <include name="Accessibility.dll" />
 253                        <include name="mscorlib.dll" />
 254                        <include name="Microsoft.Build.Engine.dll" />
 255                        <include name="Microsoft.Build.Framework.dll" />
 256                        <include name="Microsoft.Build.Utilities.dll" />
 257                        <include name="Microsoft.Vsa.dll" />
 258                        <include name="Microsoft.VisualBasic.dll" />
 259                        <include name="Microsoft.VisualBasic.Compatibility.dll" />
 260                        <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
 261                        <include name="System.Configuration.dll" />
 262                        <include name="System.Configuration.Install.dll" />
 263                        <include name="System.Data.dll" />
 264                        <include name="System.Data.OracleClient.dll" />
 265                        <include name="System.Data.SqlXml.dll" />
 266                        <include name="System.Deployment.dll" />
 267                        <include name="System.Design.dll" />
 268                        <include name="System.DirectoryServices.dll" />
 269                        <include name="System.dll" />
 270                        <include name="System.Drawing.Design.dll" />
 271                        <include name="System.Drawing.dll" />
 272                        <include name="System.EnterpriseServices.dll" />
 273                        <include name="System.Management.dll" />
 274                        <include name="System.Messaging.dll" />
 275                        <include name="System.Runtime.Remoting.dll" />
 276                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
 277                        <include name="System.Security.dll" />
 278                        <include name="System.ServiceProcess.dll" />
 279                        <include name="System.Transactions.dll" />
 280                        <include name="System.Web.dll" />
 281                        <include name="System.Web.Mobile.dll" />
 282                        <include name="System.Web.RegularExpressions.dll" />
 283                        <include name="System.Web.Services.dll" />
 284                        <include name="System.Windows.Forms.dll" />
 285                        <include name="System.Xml.dll" />
 286                    </reference-assemblies>
 287                    <task-assemblies>
 288                        <!-- include MS.NET version-neutral assemblies -->
 289                        <include name="extensions/net/neutral/**/*.dll" />
 290                        <!-- include MS.NET 2.0 specific assemblies -->
 291                        <include name="extensions/net/2.0/**/*.dll" />
 292                        <!-- include MS.NET specific task assembly -->
 293                        <include name="NAnt.MSNetTasks.dll" />
 294                        <!-- include MS.NET specific test assembly -->
 295                        <include name="NAnt.MSNet.Tests.dll" />
 296                        <!-- include .NET 2.0 specific assemblies -->
 297                        <include name="extensions/common/2.0/**/*.dll" />
 298                    </task-assemblies>
 299                    <tool-paths>
 300                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
 301                        <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
 302                    </tool-paths>
 303                    <project>
 304                        <readregistry
 305                            property="installRoot"
 306                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 307                            hive="LocalMachine" />
 308                        <readregistry
 309                            property="sdkInstallRoot"
 310                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
 311                            hive="LocalMachine"
 312                            failonerror="false" />
 313                    </project>
 314                    <tasks>
 315                        <task name="csc">
 316                            <attribute name="supportsnowarnlist">true</attribute>
 317                            <attribute name="supportswarnaserrorlist">true</attribute>
 318                            <attribute name="supportskeycontainer">true</attribute>
 319                            <attribute name="supportskeyfile">true</attribute>
 320                            <attribute name="supportsdelaysign">true</attribute>
 321                            <attribute name="supportsplatform">true</attribute>
 322                            <attribute name="supportslangversion">true</attribute>
 323                        </task>
 324                        <task name="vbc">
 325                            <attribute name="supportsdocgeneration">true</attribute>
 326                            <attribute name="supportsnostdlib">true</attribute>
 327                            <attribute name="supportsnowarnlist">true</attribute>
 328                            <attribute name="supportskeycontainer">true</attribute>
 329                            <attribute name="supportskeyfile">true</attribute>
 330                            <attribute name="supportsdelaysign">true</attribute>
 331                            <attribute name="supportsplatform">true</attribute>
 332                            <attribute name="supportswarnaserrorlist">true</attribute>
 333                        </task>
 334                        <task name="jsc">
 335                            <attribute name="supportsplatform">true</attribute>
 336                        </task>
 337                        <task name="vjc">
 338                            <attribute name="supportsnowarnlist">true</attribute>
 339                            <attribute name="supportskeycontainer">true</attribute>
 340                            <attribute name="supportskeyfile">true</attribute>
 341                            <attribute name="supportsdelaysign">true</attribute>
 342                        </task>
 343                        <task name="resgen">
 344                            <attribute name="supportsassemblyreferences">true</attribute>
 345                            <attribute name="supportsexternalfilereferences">true</attribute>
 346                        </task>
 347                        <task name="delay-sign">
 348                            <attribute name="exename">sn</attribute>
 349                        </task>
 350                        <task name="license">
 351                            <attribute name="exename">lc</attribute>
 352                            <attribute name="supportsassemblyreferences">true</attribute>
 353                        </task>
 354                    </tasks>
 355                </framework>
 356                <framework 
 357                    name="net-3.5"
 358                    family="net"
 359                    version="2.0"
 360                    description="Microsoft .NET Framework 3.5"
 361                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}"
 362                    frameworkdirectory="${path::combine(installRoot, 'v3.5')}"
 363                    frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}"
 364                    clrversion="2.0.50727"
 365                    >
 366                    <runtime>
 367                        <probing-paths>
 368                            <directory name="lib/net/2.0" />
 369                            <directory name="lib/net/neutral" />
 370                            <directory name="lib/common/2.0" />
 371                            <directory name="lib/common/neutral" />
 372                        </probing-paths>
 373                        <modes>
 374                            <strict>
 375                                <environment>
 376                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
 377                                </environment>
 378                            </strict>
 379                        </modes>
 380                    </runtime>
 381                    <reference-assemblies basedir="${path::combine(installRoot, 'v2.0.50727')}">
 382                        <include name="Accessibility.dll" />
 383                        <include name="mscorlib.dll" />
 384                        <include name="Microsoft.Build.Utilities.dll" />
 385                        <include name="Microsoft.Vsa.dll" />
 386                        <include name="Microsoft.VisualBasic.dll" />
 387                        <include name="Microsoft.VisualBasic.Compatibility.dll" />
 388                        <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
 389                        <include name="System.Configuration.dll" />
 390                        <include name="System.Configuration.Install.dll" />
 391                        <include name="System.Data.dll" />
 392                        <include name="System.Data.OracleClient.dll" />
 393                        <include name="System.Data.SqlXml.dll" />
 394                        <include name="System.Deployment.dll" />
 395                        <include name="System.Design.dll" />
 396                        <include name="System.DirectoryServices.dll" />
 397                        <include name="System.dll" />
 398                        <include name="System.Drawing.Design.dll" />
 399                        <include name="System.Drawing.dll" />
 400                        <include name="System.EnterpriseServices.dll" />
 401                        <include name="System.Management.dll" />
 402                        <include name="System.Messaging.dll" />
 403                        <include name="System.Runtime.Remoting.dll" />
 404                        <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
 405                        <include name="System.Security.dll" />
 406                        <include name="System.ServiceProcess.dll" />
 407                        <include name="System.Transactions.dll" />
 408                        <include name="System.Web.dll" />
 409                        <include name="System.Web.Mobile.dll" />
 410                        <include name="System.Web.RegularExpressions.dll" />
 411                        <include name="System.Web.Services.dll" />
 412                        <include name="System.Windows.Forms.dll" />
 413                        <include name="System.Xml.dll" />
 414                    </reference-assemblies>
 415                    <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/v3.5">
 416                        <include name="Microsoft.Build.Engine.dll" />
 417                        <include name="Microsoft.Build.Framework.dll" />
 418                        <include name="System.AddIn.Contract.dll" />
 419                        <include name="System.AddIn.dll" />
 420                        <include name="System.Core.dll" />
 421                        <include name="System.Data.DataSetExtensions.dll" />
 422                        <include name="System.Data.Linq.dll" />
 423                        <include name="System.DirectoryServices.AccountManagement.dll" />
 424                        <include name="System.Management.Instrumentation.dll" />
 425                        <include name="System.Net.dll" />
 426                        <include name="System.ServiceModel.Web.dll" />
 427                        <include name="System.Web.Extensions.Design.dll" />
 428                        <include name="System.Web.Extensions.dll" />
 429                        <include name="System.Windows.Presentation.dll" />
 430                        <include name="System.WorkflowServices.dll" />
 431                        <include name="System.Xml.Linq.dll" />
 432                    </reference-assemblies>
 433                    <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/v3.0">
 434                        <include name="System.IdentityModel.dll" />
 435                        <include name="System.IdentityModel.Selectors.dll" />
 436                        <include name="System.IO.Log.dll" />
 437                        <include name="System.Printing.dll" />
 438                        <include name="System.Runtime.Serialization.dll" />
 439                        <include name="System.ServiceModel.dll" />
 440                        <include name="System.Speech.dll" />
 441                        <include name="System.Workflow.Activities.dll" />
 442                        <include name="System.Workflow.ComponentModel.dll" />
 443                        <include name="System.Workflow.Runtime.dll" />
 444                        <include name="WindowsBase.dll" />
 445                    </reference-assemblies>
 446                    <task-assemblies>
 447                        <!-- include MS.NET version-neutral assemblies -->
 448                        <include name="extensions/net/neutral/**/*.dll" />
 449                        <!-- include MS.NET 2.0 specific assemblies -->
 450                        <include name="extensions/net/2.0/**/*.dll" />
 451                        <!-- include MS.NET specific task assembly -->
 452                        <include name="NAnt.MSNetTasks.dll" />
 453                        <!-- include MS.NET specific test assembly -->
 454                        <include name="NAnt.MSNet.Tests.dll" />
 455                        <!-- include .NET 2.0 specific assemblies -->
 456                        <include name="extensions/common/2.0/**/*.dll" />
 457                    </task-assemblies>
 458                    <tool-paths>
 459                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
 460                        <directory name="${path::combine(installRoot, 'v3.5')}" />
 461                        <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
 462                    </tool-paths>
 463                    <project>
 464                        <readregistry
 465                            property="installRoot"
 466                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 467                            hive="LocalMachine" />
 468                        <readregistry
 469                            property="sdkInstallRoot"
 470                            key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKNetFxTools\InstallationFolder"
 471                            hive="LocalMachine"
 472                            failonerror="false" />
 473                        <property name="frameworkDirectoryV35" value="${path::combine(installRoot, 'v3.5')}" />
 474                        <fail if="${not(directory::exists(frameworkDirectoryV35))}">The Framework directory for .NET 3.5 does not exist.</fail>
 475                        <property name="referenceV35" value="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/v3.5" />
 476                        <fail if="${not(directory::exists(referenceV35))}">The Reference Assemblies directory for .NET 3.5 does not exist.</fail>
 477                    </project>
 478                    <tasks>
 479                        <task name="csc">
 480                            <attribute name="exename">${path::combine(frameworkDirectoryV35,'csc.exe')}</attribute>
 481                            <attribute name="supportsnowarnlist">true</attribute>
 482                            <attribute name="supportswarnaserrorlist">true</attribute>
 483                            <attribute name="supportskeycontainer">true</attribute>
 484                            <attribute name="supportskeyfile">true</attribute>
 485                            <attribute name="supportsdelaysign">true</attribute>
 486                            <attribute name="supportsplatform">true</attribute>
 487                            <attribute name="supportslangversion">true</attribute>
 488                        </task>
 489                        <task name="vbc">
 490                            <attribute name="exename">${path::combine(frameworkDirectoryV35,'vbc.exe')}</attribute>
 491                            <attribute name="supportsdocgeneration">true</attribute>
 492                            <attribute name="supportsnostdlib">true</attribute>
 493                            <attribute name="supportsnowarnlist">true</attribute>
 494                            <attribute name="supportskeycontainer">true</attribute>
 495                            <attribute name="supportskeyfile">true</attribute>
 496                            <attribute name="supportsdelaysign">true</attribute>
 497                            <attribute name="supportsplatform">true</attribute>
 498                            <attribute name="supportswarnaserrorlist">true</attribute>
 499                        </task>
 500                        <task name="jsc">
 501                            <attribute name="supportsplatform">true</attribute>
 502                        </task>
 503                        <task name="vjc">
 504                            <attribute name="supportsnowarnlist">true</attribute>
 505                            <attribute name="supportskeycontainer">true</attribute>
 506                            <attribute name="supportskeyfile">true</attribute>
 507                            <attribute name="supportsdelaysign">true</attribute>
 508                        </task>
 509                        <task name="resgen">
 510                            <attribute name="supportsassemblyreferences">true</attribute>
 511                            <attribute name="supportsexternalfilereferences">true</attribute>
 512                        </task>
 513                        <task name="al">
 514                            <attribute name="exename">${path::combine(sdkInstallRoot, 'bin/al.exe')}</attribute>
 515                        </task>
 516                        <task name="delay-sign">
 517                            <attribute name="exename">sn</attribute>
 518                        </task>
 519                        <task name="license">
 520                            <attribute name="exename">lc</attribute>
 521                            <attribute name="supportsassemblyreferences">true</attribute>
 522                        </task>
 523                    </tasks>
 524                </framework>
 525                <framework 
 526                    name="netcf-1.0"
 527                    family="netcf"
 528                    version="1.0"
 529                    description="Microsoft .NET Compact Framework 1.0"
 530                    sdkdirectory="${path::combine(sdkInstallRoot, 'v1.0.5000\bin')}"
 531                    frameworkdirectory="${path::combine(installRoot, 'v1.1.4322')}"
 532                    frameworkassemblydirectory="${path::combine(sdkInstallRoot, 'v1.0.5000\Windows CE')}"
 533                    clrversion="1.1.4322"
 534                    >
 535                    <runtime>
 536                        <modes>
 537                            <strict>
 538                                <environment>
 539                                    <variable name="COMPLUS_VERSION" value="v1.1.4322" />
 540                                </environment>
 541                            </strict>
 542                        </modes>
 543                    </runtime>
 544                    <reference-assemblies basedir="${path::combine(sdkInstallRoot, 'v1.0.5000\Windows CE')}">
 545                        <include name="*.dll" />
 546                    </reference-assemblies>
 547                    <task-assemblies>
 548                        <!-- this is not a supported runtime framework -->
 549                    </task-assemblies>
 550                    <tool-paths>
 551                        <directory name="${path::combine(sdkInstallRoot, 'v1.0.5000\bin')}" />
 552                        <directory name="${path::combine(installRoot, 'v1.1.4322')}" />
 553                        <directory name="${path::combine(sdkInstallRoot.DesktopFramework, 'bin')}" />
 554                    </tool-paths>
 555                    <project>
 556                        <readregistry
 557                            property="installRoot"
 558                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 559                            hive="LocalMachine" />
 560                        <readregistry
 561                            property="sdkInstallRoot"
 562                            key="SOFTWARE\Microsoft\.NETCompactFramework\sdkInstallRoot"
 563                            hive="LocalMachine" />
 564                        <readregistry
 565                            property="sdkInstallRoot.DesktopFramework"
 566                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv1.1"
 567                            hive="LocalMachine" />
 568                        <fail if="${not directory::exists(sdkInstallRoot.DesktopFramework)}">The .NET Framework 1.1 SDK is not installed.</fail>
 569                    </project>
 570                    <tasks>
 571                        <task name="csc">
 572                            <attribute name="noconfig">true</attribute>
 573                            <attribute name="nostdlib">true</attribute>
 574                            <attribute name="supportsnowarnlist">true</attribute>
 575                        </task>
 576                        <task name="resgen">
 577                            <attribute name="exename">cfresgen</attribute>
 578                        </task>
 579                        <task name="delay-sign">
 580                            <attribute name="exename">sn</attribute>
 581                        </task>
 582                        <task name="license">
 583                            <attribute name="exename">lc</attribute>
 584                        </task>
 585                    </tasks>
 586                </framework>
 587                <framework 
 588                    name="netcf-2.0"
 589                    family="netcf"
 590                    version="2.0"
 591                    description="Microsoft .NET Compact Framework 2.0"
 592                    sdkdirectory="${path::combine(sdkInstallRoot.DesktopFramework, 'bin')}"
 593                    frameworkdirectory="${path::combine(installRoot, 'v2.0.50727')}"
 594                    frameworkassemblydirectory="${path::combine(sdkInstallRoot, 'WindowsCE')}"
 595                    clrversion="2.0.0"
 596                    >
 597                    <runtime>
 598                        <modes>
 599                            <strict>
 600                                <environment>
 601                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
 602                                </environment>
 603                            </strict>
 604                        </modes>
 605                    </runtime>
 606                    <reference-assemblies basedir="${path::combine(sdkInstallRoot, 'WindowsCE')}">
 607                        <include name="*.dll" />
 608                    </reference-assemblies>
 609                    <task-assemblies>
 610                        <!-- this is not a supported runtime framework -->
 611                    </task-assemblies>
 612                    <tool-paths>
 613                        <directory name="${path::combine(sdkInstallRoot.DesktopFramework, 'bin')}" />
 614                    </tool-paths>
 615                    <project>
 616                        <readregistry
 617                            property="installRoot"
 618                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 619                            hive="LocalMachine" />
 620                        <readregistry
 621                            property="sdkInstallRoot"
 622                            key="SOFTWARE\Microsoft\.NETCompactFramework\v2.0.0.0\InstallRoot\"
 623                            hive="LocalMachine" />
 624                        <readregistry
 625                            property="sdkInstallRoot.DesktopFramework"
 626                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
 627                            hive="LocalMachine" />
 628                        <fail if="${not directory::exists(sdkInstallRoot.DesktopFramework)}">The .NET Framework 2.0 SDK is not installed.</fail>
 629                    </project>
 630                    <tasks>
 631                        <task name="csc">
 632                            <attribute name="noconfig">true</attribute>
 633                            <attribute name="nostdlib">true</attribute>
 634                            <attribute name="supportsnowarnlist">true</attribute>
 635                            <attribute name="supportswarnaserrorlist">true</attribute>
 636                            <attribute name="supportskeycontainer">true</attribute>
 637                            <attribute name="supportskeyfile">true</attribute>
 638                            <attribute name="supportsdelaysign">true</attribute>
 639                            <attribute name="supportsplatform">true</attribute>
 640                            <attribute name="supportslangversion">true</attribute>
 641                        </task>
 642                        <task name="vbc">
 643                            <attribute name="nostdlib">true</attribute>
 644                            <attribute name="supportsdocgeneration">true</attribute>
 645                            <attribute name="supportsnostdlib">true</attribute>
 646                            <attribute name="supportsnowarnlist">true</attribute>
 647                            <attribute name="supportskeycontainer">true</attribute>
 648                            <attribute name="supportskeyfile">true</attribute>
 649                            <attribute name="supportsdelaysign">true</attribute>
 650                            <attribute name="supportsplatform">true</attribute>
 651                            <attribute name="supportswarnaserrorlist">true</attribute>
 652                        </task>
 653                        <task name="resgen">
 654                            <attribute name="supportsassemblyreferences">true</attribute>
 655                            <attribute name="supportsexternalfilereferences">true</attribute>
 656                        </task>
 657                        <task name="delay-sign">
 658                            <attribute name="exename">sn</attribute>
 659                        </task>
 660                        <task name="license">
 661                            <attribute name="exename">lc</attribute>
 662                            <attribute name="supportsassemblyreferences">true</attribute>
 663                        </task>
 664                    </tasks>
 665                </framework>
 666                <framework 
 667                    name="silverlight-2.0" 
 668                    family="silverlight" 
 669                    version="2.0"
 670                    description="Microsoft Silverlight 2.0" 
 671                    sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
 672                    frameworkdirectory="${path::combine(installRoot, 'v2.0.50727')}" 
 673                    frameworkassemblydirectory="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight"
 674                    clrversion="2.0.50727"
 675                    >
 676                    <runtime>
 677                        <modes>
 678                            <strict>
 679                                <environment>
 680                                    <variable name="COMPLUS_VERSION" value="v2.0.50727" />
 681                                </environment>
 682                            </strict>
 683                        </modes>
 684                    </runtime>
 685                    <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight">
 686                        <include name="agclr.dll" />
 687                        <include name="Microsoft.VisualBasic.dll" />
 688                        <include name="mscorlib.dll" />
 689                        <include name="System.Core.dll" />
 690                        <include name="System.dll" />
 691                        <include name="System.Silverlight.dll" />
 692                        <include name="System.Xml.Core.dll" />
 693                    </reference-assemblies>
 694                    <task-assemblies>
 695                        <!-- include MS.NET version-neutral assemblies -->
 696                        <include name="extensions/net/neutral/**/*.dll" />
 697                        <!-- include MS.NET 2.0 specific assemblies -->
 698                        <include name="extensions/net/2.0/**/*.dll" />
 699                        <!-- include MS.NET specific task assembly -->
 700                        <include name="NAnt.MSNetTasks.dll" />
 701                        <!-- include MS.NET specific test assembly -->
 702                        <include name="NAnt.MSNet.Tests.dll" />
 703                        <!-- include .NET 2.0 specific assemblies -->
 704                        <include name="extensions/common/2.0/**/*.dll" />
 705                    </task-assemblies>
 706                    <tool-paths>
 707                        <directory name="${path::combine(sdkInstallRoot, 'bin')}" />
 708                        <directory name="${path::combine(installRoot, 'v2.0.50727')}" />
 709                        <directory name="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight" />
 710                    </tool-paths>
 711                    <project>
 712                        <readregistry
 713                            property="installRoot"
 714                            key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
 715                            hive="LocalMachine" />
 716                        <readregistry
 717                            property="sdkInstallRoot"
 718                            key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
 719                            hive="LocalMachine"
 720                            failonerror="false" />
 721                    </project>
 722                    <tasks>
 723                        <task name="csc">
 724                            <attribute name="noconfig">true</attribute>
 725                            <attribute name="nostdlib">true</attribute>
 726                            <attribute name="supportsnowarnlist">true</attribute>
 727                            <attribute name="supportswarnaserrorlist">true</attribute>
 728                            <attribute name="supportskeycontainer">true</attribute>
 729                            <attribute name="supportskeyfile">true</attribute>
 730                            <attribute name="supportsdelaysign">true</attribute>
 731                            <attribute name="supportsplatform">true</attribute>
 732                            <attribute name="supportslangversion">true</attribute>
 733                        </task>
 734                        <task name="vbc">
 735                            <attribute name="nostdlib">true</attribute>
 736                            <attribute name="supportsdocgeneration">true</attribute>
 737                            <attribute name="supportsnostdlib">true</attribute>
 738                            <attribute name="supportsnowarnlist">true</attribute>
 739                            <attribute name="supportskeycontainer">true</attribute>
 740                            <attribute name="supportskeyfile">true</attribute>
 741                            <attribute name="supportsdelaysign">true</attribute>
 742                            <attribute name="supportsplatform">true</attribute>
 743                            <attribute name="supportswarnaserrorlist">true</attribute>
 744                        </task>
 745                        <task name="jsc">
 746                            <attribute name="supportsplatform">true</attribute>
 747                        </task>
 748                        <task name="vjc">
 749                            <attribute name="supportsnowarnlist">true</attribute>
 750                            <attribute name="supportskeycontainer">true</attribute>
 751                            <attribute name="supportskeyfile">true</attribute>
 752                            <attribute name="supportsdelaysign">true</attribute>
 753                        </task>
 754                        <task name="resgen">
 755                            <attribute name="supportsassemblyreferences">true</attribute>
 756                            <attribute name="supportsexternalfilereferences">true</attribute>
 757                        </task>
 758                        <task name="delay-sign">
 759                            <attribute name="exename">sn</attribute>
 760                        </task>
 761                        <task name="license">
 762                            <attribute name="exename">lc</attribute>
 763                            <attribute name="supportsassemblyreferences">true</attribute>
 764                        </task>
 765                    </tasks>
 766                </framework>
 767                <framework
 768                    name="mono-1.0"
 769                    family="mono"
 770                    version="1.0"
 771                    description="Mono 1.0 Profile"
 772                    sdkdirectory="${toolDirectory}"
 773                    frameworkdirectory="${toolDirectory}"
 774                    frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}"
 775                    clrversion="1.1.4322"
 776                    >
 777                    <runtime>
 778                        <probing-paths>
 779                            <directory name="lib/mono/1.0" />
 780                            <directory name="lib/mono/neutral" />
 781                            <directory name="lib/common/1.1" />
 782                            <directory name="lib/common/neutral" />
 783                        </probing-paths>
 784                        <modes>
 785                            <auto>
 786                                <engine program="${runtimeEngine}" />
 787                                <environment>
 788                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
 789                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
 790                                </environment>
 791                            </auto>
 792                            <strict>
 793                                <engine program="${runtimeEngine}">
 794                                    <arg value="--runtime=v1.1.4322" />
 795                                </engine>
 796                                <environment>
 797                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
 798                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
 799                                </environment>
 800                            </strict>
 801                        </modes>
 802                    </runtime>
 803                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}">
 804                        <include name="*.dll" />
 805                    </reference-assemblies>
 806                    <task-assemblies>
 807                        <!-- include Mono version-neutral assemblies -->
 808                        <include name="extensions/mono/neutral/**/*.dll" />
 809                        <!-- include Mono 1.0 specific assemblies -->
 810                        <include name="extensions/mono/1.0/**/*.dll" />
 811                        <!-- include .NET 1.1 specific assemblies -->
 812                        <include name="extensions/common/1.1/**/*.dll" />
 813                    </task-assemblies>
 814                    <tool-paths>
 815                        <directory name="${toolDirectory}" />
 816                    </tool-paths>
 817                    <project>
 818                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
 819                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
 820                        <if test="${pkgconfig.available}">
 821                            <if test="${pkg-config::exists('mono')}">
 822                                <call target="configure-from-pkg-config" />
 823                            </if>
 824                            <if test="${not pkg-config::exists('mono')}">
 825                                <call target="configure-from-registry" />
 826                            </if>
 827                        </if>
 828                        <if test="${not pkgconfig.available}">
 829                            <call target="configure-from-registry" />
 830                        </if>
 831
 832                        <!-- determine if we're dealing with a Mono 1.0.x release -->
 833                        <if test="${version::parse(mono.version) &lt; version::parse('1.1')}">
 834                            <!-- 
 835                                in Mono 1.0.x, the framework tools are located 
 836                                in the <install root>\lib directory
 837                            -->
 838                            <property name="toolDirectory" value="${frameworkAssemblyDirectory}" />
 839                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
 840                            <property name="resgen.tool" value="monoresgen" />
 841                            <!-- in Mono 1.0.x, only mcs and mbas are located in <install root>\lib\mono\<profile> -->
 842                            <property name="csc.tool" value="${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mcs.exe')}" />
 843                            <property name="mbas.tool" value="${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mbas.exe')}" />
 844                            <!-- /doc is not supported in Mono 1.0.x -->
 845                            <property name="csc.supportsdocgeneration" value="false" />
 846
 847                            <!-- 
 848                                Mono 1.0.1 installer incorrectly adds '\mono' to 
 849                                "MonoConfigDir" registry value
 850                            -->
 851                            <if test="${string::ends-with(configDir, 'etc\mono')}">
 852                                <property name="configDir" value="${string::replace(configDir, 'etc\mono', 'etc')}" />
 853                            </if>
 854                        </if>
 855
 856                        <!-- determine if we're dealing with a Mono 1.1.x release or higher -->
 857                        <if test="${version::parse(mono.version) >= version::parse('1.1')}">
 858                            <!-- 
 859                                in Mono 1.1.x (and higher ?), the framework tools 
 860                                are located in the <install root>\lib\mono\<profile>
 861                                directory
 862                            -->
 863                            <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
 864                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
 865                            <!-- starting from Mono 1.1.9.2, mono.exe is located in the bin directory -->
 866                            <if test="${not file::exists(runtimeEngine)}">
 867                                <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
 868                            </if>
 869                            <property name="resgen.tool" value="resgen" />
 870                            <property name="csc.tool" value="mcs" />
 871                            <property name="csc.supportsdocgeneration" value="true" />
 872                            <property name="mbas.tool" value="mbas" />
 873                        </if>
 874
 875                        <target name="configure-from-pkg-config">
 876                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
 877                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
 878                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
 879                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
 880                        </target>
 881
 882                        <target name="configure-from-registry">
 883                            <!-- 
 884                                first try using the DefaultCLR in HKLM\Novell\Mono, 
 885                                this is used by the Mono 1.0.1 installer (and later?)
 886                            -->
 887                            <readregistry
 888                                property="mono.version"
 889                                key="SOFTWARE\Novell\Mono\DefaultCLR"
 890                                hive="LocalMachine" 
 891                                failonerror="false" 
 892                            />
 893                        
 894                            <if test="${property::exists('mono.version')}">
 895                                <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
 896                            </if>
 897                        
 898                            <!-- 
 899                                if the DefaultCLR registry value does not exist in 
 900                                HKLM\Novell\Mono, then try the HKML\Mono registry 
 901                                key as this was used for the Mono 1.0 installer
 902                            -->
 903                            <if test="${not property::exists('mono.version')}">
 904                                <readregistry
 905                                    property="mono.version"
 906                                    key="SOFTWARE\Mono\DefaultCLR"
 907                                    hive="LocalMachine" 
 908                                />
 909                                <property name="monokey" value="SOFTWARE\Mono\${mono.version}" />
 910                            </if>
 911
 912                            <readregistry
 913                                property="sdkInstallRoot"
 914                                key="${monokey}\SdkInstallRoot"
 915                                hive="LocalMachine" />
 916                            <readregistry
 917                                property="frameworkAssemblyDirectory"
 918                                key="${monokey}\FrameworkAssemblyDirectory"
 919                                hive="LocalMachine" />
 920                            <readregistry
 921                                property="configDir"
 922                                key="${monokey}\MonoConfigDir"
 923                                hive="LocalMachine" />
 924                        </target>
 925                    </project>
 926                    <properties>
 927                    </properties>
 928                    <tasks>
 929                        <task name="al">
 930                            <attribute name="managed">true</attribute>
 931                        </task>
 932                        <task name="csc">
 933                            <attribute name="exename">${csc.tool}</attribute>
 934                            <attribute name="managed">true</attribute>
 935                            <attribute name="supportspackagereferences">true</attribute>
 936                            <attribute name="supportsnowarnlist">true</attribute>
 937                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
 938                            <attribute name="supportskeycontainer">true</attribute>
 939                            <attribute name="supportskeyfile">true</attribute>
 940                            <attribute name="supportsdelaysign">true</attribute>
 941                            <attribute name="supportslangversion">true</attribute>
 942                        </task>
 943                        <task name="jsc">
 944                            <attribute name="exename">mjs</attribute>
 945                            <attribute name="managed">true</attribute>
 946                        </task>
 947                        <task name="vbc">
 948                            <attribute name="exename">${mbas.tool}</attribute>
 949                            <attribute name="managed">true</attribute>
 950                        </task>
 951                        <task name="resgen">
 952                            <attribute name="exename">${resgen.tool}</attribute>
 953                            <attribute name="managed">true</attribute>
 954                        </task>
 955                        <task name="delay-sign">
 956                            <attribute name="exename">sn</attribute>
 957                            <attribute name="managed">true</attribute>
 958                        </task>
 959                        <task name="license">
 960                            <attribute name="hascommandlinecompiler">false</attribute>
 961                        </task>
 962                        <task name="ilasm">
 963                            <attribute name="managed">true</attribute>
 964                        </task>
 965                    </tasks>
 966                </framework>
 967                <framework 
 968                    name="mono-2.0"
 969                    family="mono"
 970                    version="2.0"
 971                    description="Mono 2.0 Profile"
 972                    sdkdirectory="${toolDirectory}"
 973                    frameworkdirectory="${toolDirectory}"
 974                    frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}"
 975                    clrversion="2.0.50727"
 976                    >
 977                    <runtime>
 978                        <probing-paths>
 979                            <directory name="lib/mono/2.0" />
 980                            <directory name="lib/mono/neutral" />
 981                            <directory name="lib/common/2.0" />
 982                            <directory name="lib/common/neutral" />
 983                        </probing-paths>
 984                        <modes>
 985                            <auto>
 986                                <engine program="${runtimeEngine}" />
 987                                <environment>
 988                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
 989                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
 990                                </environment>
 991                            </auto>
 992                            <strict>
 993                                <engine program="${runtimeEngine}">
 994                                    <arg value="--runtime=v2.0.50727" />
 995                                </engine>
 996                                <environment>
 997                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
 998                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
 999                                </environment>
1000                            </strict>
1001                        </modes>
1002                    </runtime>
1003                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}">
1004                        <include name="*.dll" />
1005                    </reference-assemblies>
1006                    <task-assemblies>
1007                        <!-- include Mono version-neutral assemblies -->
1008                        <include name="extensions/mono/neutral/**/*.dll" />
1009                        <!-- include Mono 2.0 specific assemblies -->
1010                        <include name="extensions/mono/2.0/**/*.dll" />
1011                        <!-- include .NET 2.0 specific assemblies -->
1012                        <include name="extensions/common/2.0/**/*.dll" />
1013                    </task-assemblies>
1014                    <tool-paths>
1015                        <directory name="${toolDirectory}" />
1016                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
1017                        <!-- for compatibility with Mono 1.0.x -->
1018                        <directory name="${frameworkAssemblyDirectory}" />
1019                    </tool-paths>
1020                    <project>
1021                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
1022                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
1023                        <if test="${pkgconfig.available}">
1024                            <if test="${pkg-config::exists('mono')}">
1025                                <call target="configure-from-pkg-config" />
1026                            </if>
1027                            <if test="${not pkg-config::exists('mono')}">
1028                                <call target="configure-from-registry" />
1029                            </if>
1030                        </if>
1031                        <if test="${not pkgconfig.available}">
1032                            <call target="configure-from-registry" />
1033                        </if>
1034
1035                        <property name="resgen.supportsexternalfilereferences" value="false" />
1036
1037                        <!-- determine if we're dealing with a Mono 1.0.x release -->
1038                        <if test="${version::parse(mono.version) &lt; version::parse('1.1')}">
1039                            <!-- 
1040                                in Mono 1.0.x, the framework tools are located 
1041                                in the <install root>\lib directory, except for
1042                                mbas and mcs
1043                            -->
1044                            <property name="toolDirectory" value="${frameworkAssemblyDirectory}" />
1045                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
1046                            <property name="resgen.tool" value="monoresgen" />
1047                            <property name="csc.supportsdocgeneration" value="false" />
1048
1049                            <!-- 
1050                                Mono 1.0.1 installer incorrectly adds '\mono' to 
1051                                "MonoConfigDir" registry value
1052                            -->
1053                            <if test="${string::ends-with(configDir, 'etc\mono')}">
1054                                <property name="configDir" value="${string::replace(configDir, 'etc\mono', 'etc')}" />
1055                            </if>
1056                        </if>
1057
1058                        <!-- determine if we're dealing with a Mono 1.1.x release or higher -->
1059                        <if test="${version::parse(mono.version) >= version::parse('1.1')}">
1060                            <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
1061                            <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
1062                            <!-- starting from Mono 1.1.9.2, mono.exe is located in the bin directory -->
1063                            <if test="${not file::exists(runtimeEngine)}">
1064                                <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
1065                            </if>
1066                            <property name="csc.supportsdocgeneration" value="true" />
1067                        </if>
1068                        <!-- as from Mono 1.2.3.50, resgen supports the /usesourcepath option -->
1069                        <if test="${version::parse(mono.version) >= version::parse('1.2.3.50')}">
1070                            <property name="resgen.supportsexternalfilereferences" value="true" />
1071                        </if>
1072
1073                        <target name="configure-from-pkg-config">
1074                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
1075                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
1076                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
1077                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
1078                        </target>
1079
1080                        <target name="configure-from-registry">
1081                            <readregistry
1082                                property="mono.version"
1083                                key="SOFTWARE\Novell\Mono\DefaultCLR"
1084                                hive="LocalMachine" 
1085                            />
1086                            <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
1087
1088                            <readregistry
1089                                property="sdkInstallRoot"
1090                                key="${monokey}\SdkInstallRoot"
1091                                hive="LocalMachine" />
1092                            <readregistry
1093                                property="frameworkAssemblyDirectory"
1094                                key="${monokey}\FrameworkAssemblyDirectory"
1095                                hive="LocalMachine" />
1096                            <readregistry
1097                                property="configDir"
1098                                key="${monokey}\MonoConfigDir"
1099                                hive="LocalMachine" />
1100                        </target>
1101                    </project>
1102                    <properties>
1103                    </properties>
1104                    <tasks>
1105                        <task name="al">
1106                            <attribute name="managed">true</attribute>
1107                        </task>
1108                        <task name="csc">
1109                            <attribute name="exename">gmcs</attribute>
1110                            <attribute name="managed">true</attribute>
1111                            <attribute name="supportspackagereferences">true</attribute>
1112                            <attribute name="supportsnowarnlist">true</attribute>
1113                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
1114                            <attribute name="supportskeycontainer">true</attribute>
1115                            <attribute name="supportskeyfile">true</attribute>
1116                            <attribute name="supportsdelaysign">true</attribute>
1117                            <attribute name="supportslangversion">true</attribute>
1118                        </task>
1119                        <task name="jsc">
1120                            <attribute name="exename">mjs</attribute>
1121                            <attribute name="managed">strict</attribute>
1122                        </task>
1123                        <task name="vbc">
1124                            <attribute name="exename">vbnc}</attribute>
1125                            <attribute name="managed">true</attribute>
1126                        </task>
1127                        <task name="resgen">
1128                            <attribute name="exename">${resgen.tool}</attribute>
1129                            <attribute name="managed">true</attribute>
1130                            <attribute name="supportsexternalfilereferences">${resgen.supportsexternalfilereferences}</attribute>
1131                        </task>
1132                        <task name="delay-sign">
1133                            <attribute name="exename">sn</attribute>
1134                            <attribute name="managed">true</attribute>
1135                        </task>
1136                        <task name="license">
1137                            <attribute name="hascommandlinecompiler">false</attribute>
1138                        </task>
1139                        <task name="ilasm">
1140                            <attribute name="managed">true</attribute>
1141                        </task>
1142                    </tasks>
1143                </framework>
1144                <framework
1145                    name="mono-3.5"
1146                    family="mono"
1147                    version="3.5"
1148                    description="Mono 3.5 Profile"
1149                    sdkdirectory="${toolDirectory}"
1150                    frameworkdirectory="${toolDirectory}"
1151                    frameworkassemblydirectory="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}"
1152                    clrversion="2.0.50727"
1153                    >
1154                    <runtime>
1155                        <probing-paths>
1156                            <directory name="lib/mono/2.0" />
1157                            <directory name="lib/mono/neutral" />
1158                            <directory name="lib/common/2.0" />
1159                            <directory name="lib/common/neutral" />
1160                        </probing-paths>
1161                        <modes>
1162                            <auto>
1163                                <engine program="${runtimeEngine}" />
1164                                <environment>
1165                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
1166                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
1167                                </environment>
1168                            </auto>
1169                            <strict>
1170                                <engine program="${runtimeEngine}">
1171                                    <arg value="--runtime=v2.0.50727" />
1172                                </engine>
1173                                <environment>
1174                                    <variable name="PATH" path="${path::combine(sdkInstallRoot, 'bin')};%PATH%" />
1175                                    <variable name="MONO_CFG_DIR" path="${configDir};%MONO_CFG_DIR%" />
1176                                </environment>
1177                            </strict>
1178                        </modes>
1179                    </runtime>
1180                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}">
1181                        <include name="*.dll" />
1182                    </reference-assemblies>
1183                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/3.0')}">
1184                        <include name="*.dll" />
1185                    </reference-assemblies>
1186                    <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}">
1187                        <include name="*.dll" />
1188                    </reference-assemblies>
1189                    <task-assemblies>
1190                        <!-- include Mono version-neutral assemblies -->
1191                        <include name="extensions/mono/neutral/**/*.dll" />
1192                        <!-- include Mono 2.0 specific assemblies -->
1193                        <include name="extensions/mono/2.0/**/*.dll" />
1194                        <!-- include .NET 2.0 specific assemblies -->
1195                        <include name="extensions/common/2.0/**/*.dll" />
1196                    </task-assemblies>
1197                    <tool-paths>
1198                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
1199                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
1200                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
1201                    </tool-paths>
1202                    <project>
1203                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
1204                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
1205                        <if test="${pkgconfig.available}">
1206                            <if test="${pkg-config::exists('mono')}">
1207                                <call target="configure-from-pkg-config" />
1208                            </if>
1209                            <if test="${not pkg-config::exists('mono')}">
1210                                <call target="configure-from-registry" />
1211                            </if>
1212                        </if>
1213                        <if test="${not pkgconfig.available}">
1214                            <call target="configure-from-registry" />
1215                        </if>
1216
1217                        <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
1218                        <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
1219
1220                        <target name="configure-from-pkg-config">
1221                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
1222                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
1223                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
1224                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
1225                        </target>
1226
1227                        <target name="configure-from-registry">
1228                            <readregistry
1229                                property="mono.version"
1230                                key="SOFTWARE\Novell\Mono\DefaultCLR"
1231                                hive="LocalMachine" 
1232                            />
1233                            <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
1234                           
1235                            <readregistry
1236                                property="sdkInstallRoot"
1237                                key="${monokey}\SdkInstallRoot"
1238                                hive="LocalMachine" />
1239                            <readregistry
1240                                property="frameworkAssemblyDirectory"
1241                                key="${monokey}\FrameworkAssemblyDirectory"
1242                                hive="LocalMachine" />
1243                            <readregistry
1244                                property="configDir"
1245                                key="${monokey}\MonoConfigDir"
1246                                hive="LocalMachine" />
1247                        </target>
1248                    </project>
1249                    <properties>
1250                    </properties>
1251                    <tasks>
1252                        <task name="al">
1253                            <attribute name="managed">true</attribute>
1254                        </task>
1255                        <task name="csc">
1256                            <attribute name="exename">gmcs</attribute>
1257                            <attribute name="managed">true</attribute>
1258                            <attribute name="langversion">linq</attribute>
1259                            <attribute name="supportspackagereferences">true</attribute>
1260                            <attribute name="supportsnowarnlist">true</attribute>
1261                            <attribute name="supportsdocgeneration">true</attribute>
1262                            <attribute name="supportskeycontainer">true</attribute>
1263                            <attribute name="supportskeyfile">true</attribute>
1264                            <attribute name="supportsdelaysign">true</attribute>
1265                            <attribute name="supportslangversion">true</attribute>
1266                        </task>
1267                        <task name="jsc">
1268                            <attribute name="exename">mjs</attribute>
1269                            <attribute name="managed">strict</attribute>
1270                        </task>
1271                        <task name="vbc">
1272                            <attribute name="exename">vbnc</attribute>
1273                            <attribute name="managed">true</attribute>
1274                        </task>
1275                        <task name="resgen">
1276                            <attribute name="managed">true</attribute>
1277                            <attribute name="supportsexternalfilereferences">true</attribute>
1278                        </task>
1279                        <task name="delay-sign">
1280                            <attribute name="exename">sn</attribute>
1281                            <attribute name="managed">true</attribute>
1282                        </task>
1283                        <task name="license">
1284                            <attribute name="hascommandlinecompiler">false</attribute>
1285                        </task>
1286                        <task name="ilasm">
1287                            <attribute name="managed">true</attribute>
1288                        </task>
1289                    </tasks>
1290                </framework>
1291                <framework
1292                    name="moonlight-2.0" 
1293                    family="moonlight" 
1294                    version="2.0"
1295                    description="Moonlight 2.0"
1296                    sdkdirectory="${toolDirectory}"
1297                    frameworkdirectory="${toolDirectory}"
1298                    frameworkassemblydirectory="${toolDirectory}"
1299                    clrversion="2.0.50727"
1300                    >
1301                    <runtime>
1302                        <modes>
1303                            <auto>
1304                                <engine program="${runtimeEngine}">
1305                                    <arg value="--runtime=moonlight" />
1306                                    <arg value="--security=temporary-smcs-hack" />
1307                                </engine>
1308                            </auto>
1309                        </modes>
1310                    </runtime>
1311                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.1')}">
1312                        <include name="agclr.dll" />
1313                        <include name="Microsoft.VisualBasic.dll" />
1314                        <include name="mscorlib.dll" />
1315                        <include name="System.Core.dll" />
1316                        <include name="System.dll" />
1317                        <include name="System.Silverlight.dll" />
1318                        <include name="System.Xml.Core.dll" />
1319                    </reference-assemblies>
1320                    <task-assemblies>
1321                        <!-- include MS.NET version-neutral assemblies -->
1322                        <include name="extensions/net/neutral/**/*.dll" />
1323                        <!-- include MS.NET 2.0 specific assemblies -->
1324                        <include name="extensions/net/2.0/**/*.dll" />
1325                        <!-- include MS.NET specific task assembly -->
1326                        <include name="NAnt.MSNetTasks.dll" />
1327                        <!-- include MS.NET specific test assembly -->
1328                        <include name="NAnt.MSNet.Tests.dll" />
1329                        <!-- include .NET 2.0 specific assemblies -->
1330                        <include name="extensions/common/2.0/**/*.dll" />
1331                    </task-assemblies>
1332                    <tool-paths>
1333                        <directory name="${toolDirectory}" />
1334                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
1335                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
1336                    </tool-paths>
1337                    <project>
1338                        <!-- quick and dirty check to see if pkg-config is available (and configured) -->
1339                        <property name="pkgconfig.available" value="${environment::variable-exists('PKG_CONFIG_PATH')}" />
1340                        <if test="${pkgconfig.available}">
1341                            <if test="${pkg-config::exists('mono')}">
1342                                <call target="configure-from-pkg-config" />
1343                            </if>
1344                            <if test="${not pkg-config::exists('mono')}">
1345                                <call target="configure-from-registry" />
1346                            </if>
1347                        </if>
1348                        <if test="${not pkgconfig.available}">
1349                            <call target="configure-from-registry" />
1350                        </if>
1351
1352                        <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.1')}" />
1353                        <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
1354
1355                        <target name="configure-from-pkg-config">
1356                            <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
1357                            <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
1358                            <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
1359                            <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
1360                        </target>
1361
1362                        <target name="configure-from-registry">
1363                            <readregistry
1364                                property="mono.version"
1365                                key="SOFTWARE\Novell\Mono\DefaultCLR"
1366                                hive="LocalMachine" 
1367                            />
1368                            <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
1369                           
1370                            <readregistry
1371                                property="sdkInstallRoot"
1372                                key="${monokey}\SdkInstallRoot"
1373                                hive="LocalMachine" />
1374                            <readregistry
1375                                property="frameworkAssemblyDirectory"
1376                                key="${monokey}\FrameworkAssemblyDirectory"
1377                                hive="LocalMachine" />
1378                            <readregistry
1379                                property="configDir"
1380                                key="${monokey}\MonoConfigDir"
1381                                hive="LocalMachine" />
1382                        </target>
1383                    </project>
1384                    <tasks>
1385                        <task name="csc">
1386                            <attribute name="exename">smcs</attribute>
1387                            <attribute name="managed">true</attribute>
1388                            <attribute name="supportspackagereferences">true</attribute>
1389                            <attribute name="supportsnowarnlist">true</attribute>
1390                            <attribute name="supportsdocgeneration">true</attribute>
1391                            <attribute name="supportskeycontainer">true</attribute>
1392                            <attribute name="supportskeyfile">true</attribute>
1393                            <attribute name="supportsdelaysign">true</attribute>
1394                            <attribute name="supportslangversion">true</attribute>
1395                        </task>
1396                        <task name="resgen">
1397                            <attribute name="supportsassemblyreferences">true</attribute>
1398                            <attribute name="supportsexternalfilereferences">true</attribute>
1399                        </task>
1400                        <task name="delay-sign">
1401                            <attribute name="exename">sn</attribute>
1402                        </task>
1403                        <task name="license">
1404                            <attribute name="hascommandlinecompiler">false</attribute>
1405                        </task>
1406                    </tasks>
1407                </framework>
1408                <framework 
1409                    name="sscli-1.0"
1410                    family="sscli"
1411                    version="1.0"
1412                    description="Microsoft Shared Source CLI 1.0"
1413                    sdkdirectory="C:\sscli\build\v1.x86fstchk.rotor\sdk\bin"
1414                    frameworkdirectory="C:\sscli\build\v1.x86fstchk.rotor"
1415                    frameworkassemblydirectory="C:\sscli\build\v1.x86fstchk.rotor"
1416                    clrversion="1.0.3"
1417                    >
1418                    <runtime>
1419                        <modes>
1420                            <auto>
1421                                <engine program="C:\sscli\build\v1.x86fstchk.rotor\clix.exe" />
1422                            </auto>
1423                        </modes>
1424                    </runtime>
1425                    <reference-assemblies basedir="C:\sscli\build\v1.x86fstchk.rotor">
1426                        <include name="*.dll" />
1427                    </reference-assemblies>
1428                    <task-assemblies>
1429                        <!-- this is not a supported runtime framework -->
1430                    </task-assemblies>
1431                    <tool-paths>
1432                        <directory name="C:\sscli\build\v1.x86fstchk.rotor\sdk\bin" />
1433                        <directory name="C:\sscli\build\v1.x86fstchk.rotor" />
1434                    </tool-paths>
1435                    <project />
1436                    <tasks>
1437                        <task name="csc">
1438                            <attribute name="supportsnowarnlist">true</attribute>
1439                        </task>
1440                        <task name="jsc">
1441                            <attribute name="managed">true</attribute>
1442                        </task>
1443                        <task name="delay-sign">
1444                            <attribute name="exename">sn</attribute>
1445                        </task>
1446                        <task name="license">
1447                            <attribute name="hascommandlinecompiler">false</attribute>
1448                        </task>
1449                        <task name="ilasm">
1450                            <attribute name="managed">true</attribute>
1451                        </task>
1452                        <task name="ildasm">
1453                            <attribute name="managed">true</attribute>
1454                        </task>
1455                    </tasks>
1456                </framework>
1457            </platform>
1458            <platform name="unix" default="auto">
1459                <task-assemblies>
1460                        <!-- include NAnt task assemblies -->
1461                        <include name="*Tasks.dll" />
1462                        <!-- include NAnt test assemblies -->
1463                        <include name="*Tests.dll" />
1464                        <!-- include framework-neutral assemblies -->
1465                        <include name="extensions/common/neutral/**/*.dll" />
1466                        <!-- exclude Microsoft.NET specific task assembly -->
1467                        <exclude name="NAnt.MSNetTasks.dll" />
1468                        <!-- exclude Microsoft.NET specific test assembly -->
1469                        <exclude name="NAnt.MSNet.Tests.dll" />
1470                        <!-- exclude win32 specific task assembly -->
1471                        <exclude name="NAnt.Win32Tasks.dll" />
1472                        <!-- exclude win32 specific test assembly -->
1473                        <exclude name="NAnt.Win32.Tests.dll" />
1474                </task-assemblies>
1475                <framework 
1476                    name="mono-1.0"
1477                    family="mono"
1478                    version="1.0"
1479                    description="Mono 1.0 Profile"
1480                    sdkdirectory="${toolDirectory}"
1481                    frameworkdirectory="${toolDirectory}"
1482                    frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/1.0')}"
1483                    clrversion="1.1.4322"
1484                    >
1485                    <runtime>
1486                        <probing-paths>
1487                            <directory name="lib/mono/1.0" />
1488                            <directory name="lib/mono/neutral" />
1489                            <directory name="lib/common/1.1" />
1490                            <directory name="lib/common/neutral" />
1491                        </probing-paths>
1492                        <modes>
1493                            <auto>
1494                                <engine program="${path::combine(prefix, 'bin/mono')}" />
1495                            </auto>
1496                            <strict>
1497                                <engine program="${path::combine(prefix, 'bin/mono')}">
1498                                    <arg value="--runtime=v1.1.4322" />
1499                                </engine>
1500                            </strict>
1501                        </modes>
1502                    </runtime>
1503                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/1.0')}">
1504                        <include name="*.dll" />
1505                    </reference-assemblies>
1506                    <task-assemblies>
1507                        <!-- include Mono version-neutral assemblies -->
1508                        <include name="extensions/mono/neutral/**/*.dll" />
1509                        <!-- include Mono 1.0 specific assemblies -->
1510                        <include name="extensions/mono/1.0/**/*.dll" />
1511                        <!-- include .NET 1.1 specific assemblies -->
1512                        <include name="extensions/common/1.1/**/*.dll" />
1513                    </task-assemblies>
1514                    <tool-paths>
1515                        <directory name="${toolDirectory}" />
1516                    </tool-paths>
1517                    <project>
1518                        <if test="${not pkg-config::exists('mono')}">
1519                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
1520                        </if>
1521                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
1522                        <if test="${not(pkg-config::is-atleast-version('mono', '1.1'))}">
1523                            <property name="toolDirectory" value="${path::combine(prefix, 'bin')}" />
1524                            <property name="resgen.tool" value="monoresgen" />
1525                            <property name="csc.supportsdocgeneration" value="false" />
1526                        </if>
1527                        <if test="${pkg-config::is-atleast-version('mono', '1.1')}">
1528                            <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/1.0')}" />
1529                            <property name="resgen.tool" value="resgen" />
1530                            <property name="csc.supportsdocgeneration" value="true" />
1531                        </if>
1532                    </project>
1533                    <tasks>
1534                        <task name="al">
1535                            <attribute name="managed">true</attribute>
1536                        </task>
1537                        <task name="csc">
1538                            <attribute name="exename">${path::combine(prefix, 'lib/mono/1.0/mcs.exe')}</attribute>
1539                            <attribute name="managed">true</attribute>
1540                            <attribute name="supportspackagereferences">true</attribute>
1541                            <attribute name="supportsnowarnlist">true</attribute>
1542                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
1543                            <attribute name="supportskeycontainer">true</attribute>
1544                            <attribute name="supportskeyfile">true</attribute>
1545                            <attribute name="supportsdelaysign">true</attribute>
1546                            <attribute name="supportslangversion">true</attribute>
1547                        </task>
1548                        <task name="jsc">
1549                            <attribute name="exename">mjs</attribute>
1550                            <attribute name="managed">true</attribute>
1551                        </task>
1552                        <task name="vbc">
1553                            <attribute name="exename">${path::combine(prefix, 'lib/mono/1.0/mbas.exe')}</attribute>
1554                            <attribute name="managed">true</attribute>
1555                        </task>
1556                        <task name="resgen">
1557                            <attribute name="exename">${resgen.tool}</attribute>
1558                            <attribute name="managed">true</attribute>
1559                        </task>
1560                        <task name="delay-sign">
1561                            <attribute name="exename">sn</attribute>
1562                            <attribute name="managed">true</attribute>
1563                        </task>
1564                        <task name="license">
1565                            <attribute name="hascommandlinecompiler">false</attribute>
1566                        </task>
1567                        <task name="ilasm">
1568                            <attribute name="managed">true</attribute>
1569                        </task>
1570                    </tasks>
1571                </framework>
1572                <framework
1573                    name="mono-2.0"
1574                    family="mono"
1575                    version="2.0"
1576                    description="Mono 2.0 Profile"
1577                    sdkdirectory="${toolDirectory}"
1578                    frameworkdirectory="${toolDirectory}"
1579                    frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/2.0')}"
1580                    clrversion="2.0.50727"
1581                    >
1582                    <runtime>
1583                        <probing-paths>
1584                            <directory name="lib/mono/2.0" />
1585                            <directory name="lib/mono/neutral" />
1586                            <directory name="lib/common/2.0" />
1587                            <directory name="lib/common/neutral" />
1588                        </probing-paths>
1589                        <modes>
1590                            <auto>
1591                                <engine program="${path::combine(prefix, 'bin/mono')}" />
1592                            </auto>
1593                            <strict>
1594                                <engine program="${path::combine(prefix, 'bin/mono')}">
1595                                    <arg value="--runtime=v2.0.50727" />
1596                                </engine>
1597                            </strict>
1598                        </modes>
1599                    </runtime>
1600                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.0')}">
1601                        <include name="*.dll" />
1602                    </reference-assemblies>
1603                    <task-assemblies>
1604                        <!-- include Mono version-neutral assemblies -->
1605                        <include name="extensions/mono/neutral/**/*.dll" />
1606                        <!-- include Mono 2.0 specific assemblies -->
1607                        <include name="extensions/mono/2.0/**/*.dll" />
1608                        <!-- include .NET 2.0 specific assemblies -->
1609                        <include name="extensions/common/2.0/**/*.dll" />
1610                    </task-assemblies>
1611                    <tool-paths>
1612                        <directory name="${toolDirectory}" />
1613                        <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
1614                    </tool-paths>
1615                    <project>
1616                        <if test="${not pkg-config::exists('mono')}">
1617                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
1618                        </if>
1619                        <property name="resgen.supportsexternalfilereferences" value="false" />
1620                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
1621                        <if test="${not(pkg-config::is-atleast-version('mono', '1.1'))}">
1622                            <property name="toolDirectory" value="${path::combine(prefix, 'bin')}" />
1623                            <property name="resgen.tool" value="monoresgen" />
1624                            <property name="csc.supportsdocgeneration" value="false" />
1625                        </if>
1626                        <if test="${pkg-config::is-atleast-version('mono', '1.1')}">
1627                            <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/2.0')}" />
1628                            <property name="resgen.tool" value="resgen" />
1629                            <property name="csc.supportsdocgeneration" value="true" />
1630                        </if>
1631                        <!-- as from Mono 1.2.3.50, resgen supports the /usesourcepath option -->
1632                        <if test="${pkg-config::is-atleast-version('mono', '1.2.3.50')}">
1633                            <property name="resgen.supportsexternalfilereferences" value="true" />
1634                        </if>
1635                    </project>
1636                    <tasks>
1637                        <task name="al">
1638                            <attribute name="managed">true</attribute>
1639                        </task>
1640                        <task name="csc">
1641                            <attribute name="exename">gmcs</attribute>
1642                            <attribute name="managed">true</attribute>
1643                            <attribute name="supportspackagereferences">true</attribute>
1644                            <attribute name="supportsnowarnlist">true</attribute>
1645                            <attribute name="supportsdocgeneration">${csc.supportsdocgeneration}</attribute>
1646                            <attribute name="supportskeycontainer">true</attribute>
1647                            <attribute name="supportskeyfile">true</attribute>
1648                            <attribute name="supportsdelaysign">true</attribute>
1649                            <attribute name="supportslangversion">true</attribute>
1650                        </task>
1651                        <task name="jsc">
1652                            <attribute name="exename">mjs</attribute>
1653                            <attribute name="managed">strict</attribute>
1654                        </task>
1655                        <task name="vbc">
1656                            <attribute name="exename">vbnc</attribute>
1657                            <attribute name="managed">true</attribute>
1658                        </task>
1659                        <task name="resgen">
1660                            <attribute name="exename">${resgen.tool}</attribute>
1661                            <attribute name="managed">true</attribute>
1662                            <attribute name="supportsexternalfilereferences">${resgen.supportsexternalfilereferences}</attribute>
1663                        </task>
1664                        <task name="delay-sign">
1665                            <attribute name="exename">sn</attribute>
1666                            <attribute name="managed">true</attribute>
1667                        </task>
1668                        <task name="license">
1669                            <attribute name="hascommandlinecompiler">false</attribute>
1670                        </task>
1671                        <task name="ilasm">
1672                            <attribute name="managed">true</attribute>
1673                        </task>
1674                    </tasks>
1675                </framework>
1676                <framework
1677                    name="mono-3.5"
1678                    family="mono"
1679                    version="3.5"
1680                    description="Mono 3.5 Profile"
1681                    sdkdirectory="${toolDirectory}"
1682                    frameworkdirectory="${toolDirectory}"
1683                    frameworkassemblydirectory="${path::combine(prefix, 'lib/mono/2.0')}"
1684                    clrversion="2.0.50727"
1685                    >
1686                    <runtime>
1687                        <probing-paths>
1688                            <directory name="lib/mono/2.0" />
1689                            <directory name="lib/mono/neutral" />
1690                            <directory name="lib/common/2.0" />
1691                            <directory name="lib/common/neutral" />
1692                        </probing-paths>
1693                        <modes>
1694                            <auto>
1695                                <engine program="${path::combine(prefix, 'bin/mono')}" />
1696                            </auto>
1697                            <strict>
1698                                <engine program="${path::combine(prefix, 'bin/mono')}">
1699                                    <arg value="--runtime=v2.0.50727" />
1700                                </engine>
1701                            </strict>
1702                        </modes>
1703                    </runtime>
1704                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/3.5')}">
1705                        <include name="*.dll" />
1706                    </reference-assemblies>
1707                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/3.0')}">
1708                        <include name="*.dll" />
1709                    </reference-assemblies>
1710                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.0')}">
1711                        <include name="*.dll" />
1712                    </reference-assemblies>
1713                    <task-assemblies>
1714                        <!-- include Mono version-neutral assemblies -->
1715                        <include name="extensions/mono/neutral/**/*.dll" />
1716                        <!-- include Mono 2.0 specific assemblies -->
1717                        <include name="extensions/mono/2.0/**/*.dll" />
1718                        <!-- include .NET 2.0 specific assemblies -->
1719                        <include name="extensions/common/2.0/**/*.dll" />
1720                    </task-assemblies>
1721                    <tool-paths>
1722                        <directory name="${toolDirectory}" />
1723                        <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
1724                        <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
1725                    </tool-paths>
1726                    <project>
1727                        <if test="${not pkg-config::exists('mono')}">
1728                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
1729                        </if>
1730                        <property name="resgen.supportsexternalfilereferences" value="false" />
1731                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
1732                        <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/3.5')}" />
1733                    </project>
1734                    <tasks>
1735                        <task name="al">
1736                            <attribute name="managed">true</attribute>
1737                        </task>
1738                        <task name="csc">
1739                            <attribute name="exename">gmcs</attribute>
1740                            <attribute name="managed">true</attribute>
1741                            <attribute name="langversion">linq</attribute>
1742                            <attribute name="supportspackagereferences">true</attribute>
1743                            <attribute name="supportsnowarnlist">true</attribute>
1744                            <attribute name="supportsdocgeneration">true</attribute>
1745                            <attribute name="supportskeycontainer">true</attribute>
1746                            <attribute name="supportskeyfile">true</attribute>
1747                            <attribute name="supportsdelaysign">true</attribute>
1748                            <attribute name="supportslangversion">true</attribute>
1749                        </task>
1750                        <task name="jsc">
1751                            <attribute name="exename">mjs</attribute>
1752                            <attribute name="managed">strict</attribute>
1753                        </task>
1754                        <task name="vbc">
1755                            <attribute name="exename">vbnc</attribute>
1756                            <attribute name="managed">true</attribute>
1757                        </task>
1758                        <task name="resgen">
1759                            <attribute name="managed">true</attribute>
1760                            <attribute name="supportsexternalfilereferences">true</attribute>
1761                        </task>
1762                        <task name="delay-sign">
1763                            <attribute name="exename">sn</attribute>
1764                            <attribute name="managed">true</attribute>
1765                        </task>
1766                        <task name="license">
1767                            <attribute name="hascommandlinecompiler">false</attribute>
1768                        </task>
1769                        <task name="ilasm">
1770                            <attribute name="managed">true</attribute>
1771                        </task>
1772                    </tasks>
1773                </framework>
1774                <framework
1775                    name="moonlight-2.0" 
1776                    family="moonlight" 
1777                    version="2.0"
1778                    description="Moonlight 2.0"
1779                    sdkdirectory="${toolDirectory}"
1780                    frameworkdirectory="${toolDirectory}"
1781                    frameworkassemblydirectory="${toolDirectory}"
1782                    clrversion="2.0.50727"
1783                    >
1784                    <runtime>
1785                        <modes>
1786                            <auto>
1787                                <engine program="${path::combine(prefix, 'bin/mono')}">
1788                                    <arg value="--runtime=moonlight" />
1789                                    <arg value="--security=temporary-smcs-hack" />
1790                                </engine>
1791                            </auto>
1792                        </modes>
1793                    </runtime>
1794                    <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.1')}">
1795                        <include name="agclr.dll" />
1796                        <include name="Microsoft.VisualBasic.dll" />
1797                        <include name="mscorlib.dll" />
1798                        <include name="System.Core.dll" />
1799                        <include name="System.dll" />
1800                        <include name="System.Silverlight.dll" />
1801                        <include name="System.Xml.Core.dll" />
1802                    </reference-assemblies>
1803                    <task-assemblies>
1804                        <!-- include MS.NET version-neutral assemblies -->
1805                        <include name="extensions/net/neutral/**/*.dll" />
1806                        <!-- include MS.NET 2.0 specific assemblies -->
1807                        <include name="extensions/net/2.0/**/*.dll" />
1808                        <!-- include MS.NET specific task assembly -->
1809                        <include name="NAnt.MSNetTasks.dll" />
1810                        <!-- include MS.NET specific test assembly -->
1811                        <include name="NAnt.MSNet.Tests.dll" />
1812                        <!-- include .NET 2.0 specific assemblies -->
1813                        <include name="extensions/common/2.0/**/*.dll" />
1814                    </task-assemblies>
1815                    <tool-paths>
1816                        <directory name="${toolDirectory}" />
1817                        <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
1818                        <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
1819                    </tool-paths>
1820                    <project>
1821                        <if test="${not pkg-config::exists('mono')}">
1822                            <fail>Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.</fail>
1823                        </if>
1824                        <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
1825                        <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/2.1')}" />
1826                    </project>
1827                    <tasks>
1828                        <task name="csc">
1829                            <attribute name="exename">smcs</attribute>
1830                            <attribute name="managed">true</attribute>
1831                            <attribute name="supportspackagereferences">true</attribute>
1832                            <attribute name="supportsnowarnlist">true</attribute>
1833                            <attribute name="supportsdocgeneration">true</attribute>
1834                            <attribute name="supportskeycontainer">true</attribute>
1835                            <attribute name="supportskeyfile">true</attribute>
1836                            <attribute name="supportsdelaysign">true</attribute>
1837                            <attribute name="supportslangversion">true</attribute>
1838                        </task>
1839                        <task name="resgen">
1840                            <attribute name="supportsassemblyreferences">true</attribute>
1841                            <attribute name="supportsexternalfilereferences">true</attribute>
1842                        </task>
1843                        <task name="delay-sign">
1844                            <attribute name="exename">sn</attribute>
1845                        </task>
1846                        <task name="license">
1847                            <attribute name="hascommandlinecompiler">false</attribute>
1848                        </task>
1849                    </tasks>
1850                </framework>
1851            </platform>
1852        </frameworks>
1853        <properties>
1854            <!-- properties defined here are accessible to all build files -->
1855            <!-- <property name="foo" value = "bar" readonly="false" /> -->
1856        </properties>
1857    </nant>
1858    <!--
1859        This section contains the log4net configuration settings.
1860
1861        By default, no messages will be logged to the log4net logging infrastructure.
1862
1863        To enable the internal logging, set the threshold attribute on the log4net element
1864        to "ALL".
1865
1866        When internal logging is enabled, internal messages will be written to the 
1867        console.
1868    -->
1869    <log4net threshold="OFF">
1870        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
1871            <layout type="log4net.Layout.PatternLayout">
1872                <param name="ConversionPattern" value="[%c{2}:%m  - [%x] &lt;%X{auth}&gt;]%n" />
1873            </layout>
1874        </appender>
1875        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
1876            <param name="File" value="${APPDATA}\\NAnt\\NAnt.log" />
1877            <param name="AppendToFile" value="true" />
1878            <param name="MaxSizeRollBackups" value="2" />
1879            <param name="MaximumFileSize" value="500KB" />
1880            <param name="RollingStyle" value="Size" />
1881            <param name="StaticLogFileName" value="true" />
1882            <layout type="log4net.Layout.PatternLayout">
1883                <param name="ConversionPattern" value="[%c{2}:%m  - [%x] &lt;%X{auth}&gt;]%n" />
1884            </layout>
1885        </appender>
1886        <!-- Setup the root category, add the appenders and set the default level -->
1887        <root>
1888            <!-- Only log messages with severity ERROR (or higher) -->
1889            <level value="ERROR" />
1890            <!-- Log messages to the console -->
1891            <appender-ref ref="ConsoleAppender" />
1892            <!-- Uncomment the next line to enable logging messages to the NAnt.log file -->
1893            <!-- <appender-ref ref="RollingLogFileAppender" /> -->
1894        </root>
1895        <!-- Specify the priority for some specific categories -->
1896        <!--
1897        <logger name="NAnt.Core.TaskBuilderCollection">
1898            <level value="DEBUG" />
1899        </logger>
1900        <logger name="NAnt">
1901            <level value="INFO" />
1902        </logger>
1903        -->
1904    </log4net>
1905    <runtime>
1906        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
1907            <probing privatePath="lib" />
1908        </assemblyBinding>
1909    </runtime>
1910    <startup>
1911        <!-- .NET Framework 2.0 -->
1912        <supportedRuntime version="v2.0.50727" />
1913        <!-- .NET Framework 1.1 -->
1914        <supportedRuntime version="v1.1.4322" />
1915        <!-- .NET Framework 1.0 -->
1916        <supportedRuntime version="v1.0.3705" />
1917    </startup>
1918</configuration>