0.90-rc1 - May 2, 2010
NAnt
Bug fixes
Core
<PathScanner>
- Catch UnauthorizedAccessException in PathScanner to prevent NAnt from crashing when using the Scan() function to search for file(s) in directory with special permissions.
0.90-beta1 - April 17, 2010
NAnt
Bug fixes
Tasks
<csc> / <jsc> / <vbc> / <vjc>
- When the "output" attribute specifies a non-existent path, the base directory(ies) will be created. (bug #2985057).
ExternalProgramBase
- For certain tasks (NDoc, Exec, MSBuild, etc) the console output is unorganized and difficult to read. (bug #2981604).
<script>
- Cleanup the output to show assembly information and functions only when "verbose" attribute is set to "true". (bug #2981386).
<zip>
- When the "zipfile" attribute specifies a non-existent path, the base directory(ies) will be created. (bug #2981389).
0.90-alpha1 - April 1, 2010
NAnt
Breaking changes
Core
Extensibility
- Deprecated NAnt.Core.Element.InitializeElement(XmlNode) and NAnt.Core.Task.InitializeTask(XmlNode) in favor of NAnt.Core.Element.Initialize(). This was done to discourage direct access to the XML node that was used to initialize the construct.
Tasks
<script>
As of this release, only the following namespaces are imported by default:
- System
- System.Collections
System.Collections.Specialized- System.IO
- System.Text
System.Text.RegularExpressions- NAnt.Core
- NAnt.Core.Attributes
Starting from this release, only NAnt.Core and mscorlib will be referenced by default.
In previous releases, all loaded assemblies would implicitly be referenced.
Bug fixes
Extensibility
DataTypeBaseBuilder / FilterBuilder / TaskBuilder
- Changes to constructors break backward compatibility (bug #2782705).
Expressions
Identifiers
- Identifiers containing a dot or backslash are falsely rejected.
Framework support
.NET Framework (All)
- The target framework cannot be initialized if the .NET Framework SDK is not installed (bug #1859708).
.NET Framework 1.1
Added the following assemblies to the list of reference assemblies:
- Microsoft.VisualBasic.Compatibility.dll
- Microsoft.VisualBasic.Compatibility.Data.dll
- System.Data.OracleClient.dll
Fixes bug #1848648.
.NET Framework 3.5
- Modified version (as returned by framework::get-version()) to "3.5".
- Added support for Windows SDK 6.1 (bug #1986551).
- Added support for Windows SDK 7.0.
Tasks
<echo>
- A newline is implicitly added when writing a message to a file (bug #2807728).
<echo>
- When "output" parameter is specified, standard output is redirected properly. (bug #1010223).
ExternalProgramBase
- The value of UseRuntimeEngine is not respected when overriden by derived classes (bug #1850383).
<move>
- When source file is newer than destination file, then an error is reported if "overwrite" is not set to true.
<solution>
- Solution Folders result in build failure (bug #1732361).
<xmlpeek>
- "verbose" feature is now worked as documented (bug #1911292).
<zip>
- Improved backward compatibility with older unzip implementations.
Types
<fileset>
- Files matching the **/vssver2.scc pattern are not excluded by default (bug #2515816).
Additions
Functions
environment::newline()
- Gets the newline string defined for this environment.
framework::get-description()
- Gets the description of the current target framework.
framework::get-clr-version()
- Gets the CLR version of the current target framework.
framework::get-frameworks(NAnt.Core.FrameworkTypes)
Gets a comma-separated list of frameworks filtered by the specified FrameworkTypes.
For example:
```xml <target name="build-all"> <foreach item="String" in="${framework::get-frameworks('installed compact')}" delim="," property="framework"> <property name="nant.settings.currentframework" value="${framework}" /> <call target="${framework}" /> </foreach> </target> <target name="build"> ... </target> ```
framework::get-version()
- Gets the version of the current target framework.
platform::is-windows()
- Return a value indicating whether NAnt is running on Windows.
Tasks
<untar>
- Extracts files from a tar archive.
Changes
Packaging
pkg-config
- When installing NAnt from source on Unix (using make install), a nant.pc is now installed in $prefix/lib/pkgconfig.
DESTDIR
To allow for staged installs, our makefile now also supports the DESTDIR variable:
$ make DESTDIR=/tmp/local install
Functions
platform::is-win32()
- This function is deprecated, use platform::is-windows() instead.
Tasks
<csc> / <jsc> / <vbc> / <vjc>
- Added "winres" attribute to specify a Win32 resource file.
<echo>
The "encoding" attribute can be used to specify the encoding when writing messages to a file.
<echo file="build.cmd" encoding="ascii"> ... </echo>
<link>
- Added "moduledefinition" parameter to allow the name of the module definition file to be set.
<nunit2>
Allow referenced assemblies to be specified using <references> element on <test>:
<nunit2> <test> <assemblies basedir="build/tests"> <include name="Cegeka.HealthCare.DocGen.Tests.dll" /> <include name="Cegeka.HealthCare.Util.Tests.dll" /> </assemblies> <references basedir="build/lib"> <include name="Cegeka.HealthCare.Common.dll" /> <include name="Cegeka.HealthCare.DocGen.dll" /> <include name="Cegeka.HealthCare.Util.dll" /> </assemblies> </test> </nunit2>
Previously, all referenced assemblies needed to be either in the GAC, or in the directory containing the test assembly.
<solution>
- Introduced support for targeting a specific platform, as defined in the solution or project.
<xmlpoke>
- Added "preserveWhitespace" parameter to retain the original format of the XML files.
<unzip>
- Added "overwrite" parameter to control whether to overwrite files even if they are newer than corresponding entries in the archive.
Third-Party
#ziplib
- Upgraded to v0.85.5.452.
Types
<fileset> / <patternset>
- For patterns specified using <includesfile> or <excludesfile>, lines that have a number sign (#) as the first non-blank character in a line are now ignored.