0.85 - October 14, 2006
NAnt
Bug fixes
Framework support
.NET Compact Framework 2.0
- Embedded resource files cannot be compiled when targeting .NET Compact Framework 2.0 (bug #1533924).
Functions
file::is-assembly
- Function call fails when a file name that does not correspond with an assembly is specified as argument.
Tasks
<aximp>
- The value of the "rcw" attribute should be ignored when targeting .NET 1.0.
<csc>
- Output is always rebuilt when "keyfile" attribute is set (bug #1550736).
<regen>
- Assembly reference are not taken into account to determine if the maximum length of the command line is exceeded (bug #1415272).
<solution>
- Runtime callable wrapper is not used when generating Windows Forms control for ActiveX component that has no Primary Interop Assembly.
- When importing a type library, [out, retval] parameters of methods on dispatch-only interfaces (dispinterfaces) are not transformed into return values (bug #1527210).
- Dependencies are not handled properly for Enterprise Template projects in Visual Studio .NET 2003 solutions (bug #1534864).
<unzip>
- Zip file containing zero-length files fails to extract (bug #1503678).
Changes
Tasks
<tlbimp>
- Added "transform" attribute which sets the name of transform to use for transforming the metadata. [.NET 1.1 or higher]
<vbc>
- Added "nostdlib" attribute which can be used to instruct the compiler not to reference standard libraries (system.dll and VBC.RSP). [.NET 2.0 or higher]
NAntContrib
Changes
Tasks
<sql>
- Introduced "encoding" attribute to allow the encoding of files containing SQL statements to be specified. The default is the the system's current ANSI code page.
0.85-rc4 - June 2, 2006
NAnt
Framework support
- Added support for .NET Framework 2.0 (except for <solution> task).
Breaking changes
Tasks
<delete>
- Attempting to delete a file or directory that does not exist, no longer results in a build failure.
Bug fixes
Core
XmlLogger
- XmlLogger produced invalid XML for elements that are not closed (bug #1220439).
Filters
<replacetokens>
- Empty value is not supported for token (bug #1192677).
Tasks
<cl>
- Logic for determining whether compilation is necessary is not correct when PCH file is specified (bug #1191185).
- All sources are compiled if any of the specified sources is not up-to-date (bug #1191285).
- Macro definitions specified using the <defines> collection are passed to the compiler, regardless of the value of the "if" and "unless" attributes (bug #1221945).
<rc>
<script>
- Defining custom extensions (eg. tasks) using multiple <script> instances results in an INTERNAL ERROR (bug #1187957).
<solution>
- Compilation of embedded resources is slow.
- Assembly signing fails for web projects.
- Build fails if XML Documentation File does not exist (bug #1188394).
- Satellite assemblies of reference projects are not copied to the output directory of referencing projects (bug #1212909).
- Changes in project file are not detected (bug #1209741).
- Error message that is output when a project does not exist, is misleading (bug #1396124).
- Large number of localized resources causes build failure (bug #1425251).
- Registering a project for COM interop fails for projects which reference other local assembly or projects (bug #1477827).
- Unused assembly reference that cannot be resolved or does not exist results in build failure (bug #1186176).
- Visual C++
- File-level option to enable Managed Extensions is ignored (bug #1190966).
- Linking fails if object file name is explictly set for a specific source file (bug #1205728).
- Delay loaded DLLs option is ignored.
- Output files of dependent or referenced projects are not included when linking (bug #1186838 and #1124296).
- References to COM components are now supported (bug #1437970).
Additions
Tasks
<regasm>
- Registers an assembly, or set of assemblies for use from COM clients.
Changes
Core
log4net
- Upgraded to log4net 1.2.9.
MailLogger
- Added "MailLogger.success.attachments" and "MailLogger.failure.attachments" properties to allow a set of files to be attached to the message that is sent.
Define types in task containers
- Global types can now be (re)defined in task containers (such a <if> , <foreach>).
For example:
<project name="container-type" default="build"> <if test="${platform::is-win32()}"> <fileset id="sources"> <include name="**/*.cs" /> <!-- exclude Unix-specific classes --> <exclude name="**/Unix/*.cs" /> </fileset> </if> <if test="${platform::is-unix()}"> <fileset id="sources"> <include name="**/*.cs" /> <!-- exclude Win32-specific classes --> <exclude name="**/Win32/*.cs" /> </fileset> </if> <target name="build"> <csc output="IvsController.dll"> <sources refid="sources" /> <references> <include name="System.dll" /> <include name="System.Data.dll" /> <include name="System.Xml.dll" /> </references> </csc> </target> </project>
Up until now, only tasks could be executed in these containers.
Tasks
<csc>
- The /langversion and /platform commandline options of the C# compiler are now exposed as attributes.
- Added support for /keycontainer and /keyfile commandline options [Mono / .NET 2.0 or higher].
<jsc>
- The /platform commandline option of the JScript.NET compiler is now exposed using the "platform" attribute.
<link>
- Introduced support for delay loaded DLLs.
<nunit2>
- Upgraded to NUnit 2.2.8.
<unzip>
- The character encoding that has been used for file names inside the zip file can now be set using the "encoding" parameter.
<vbc>
- The /platform commandline option of the VB.NET compiler is now exposed using the "platform" attribute. [.NET 2.0 or higher]
- Added support for /keycontainer and /keyfile commandline options. [.NET 2.0 or higher]
<vjc>
- Added support for /keycontainer and /keyfile commandline options.
<zip>
- Added "duplicate" parameter to allow build authors to control how duplicate file entries are to be processed.
- Introduced "encoding" parameter for setting the encoding to be used for file names.
Types
<arg>
- Added "dir" attribute for directory-based command-line arguments. (feature request #1193982).
NAntContrib
Bug fixes
Tasks
<msi> / <msm>
- Defining "failonerror" attribute results in validation error. (bug #1227294).
<vb6>
- Type library and component references are not parsed correctly (bug #1184630).
<vssdelete>
- A file or project was destroyed if "destroy" was false, and deleted if "destroy" was true.
<vssget>
- Setting the "removedeleted" attribute for a "path" that refers to a file results in a COMException (This command only works on projects).
Changes
Tasks
<fxcop>
- Added failOnAnalysisError attribute - Fail the task if analysis errors are generated by FxCop.
<regasm>
- Moved to NAnt project.
Additions
Tasks
<btsdeploy>
- Deploys an assembly to a given BizTalk configuration database.
<btsexport>
- Exports bindings for a BizTalk assembly to an assembly binding information file.
<btshost>
- Allows BizTalk (in-process) host instances to be controlled.
<btsimport>
- Imports bindings from a given assembly binding information file into the specified BizTalk configuration database.
<btsorchestration>
- Performs a set of actions on a given orchestration.
<btsreset>
- Allows stopping, starting and resetting of BizTalk in-process host instances on the specified server.
<btssendport>
- Allows BizTalk send ports to be controlled.
<btsunbind>
- Removes all bindings for a given assembly from a BizTalk configuration database.
<btsundeploy>
- Removes a given assembly from a BizTalk configuration database.
<cccatcs>
- Displays a ClearCase config spec.
<cccheckin>
- Checks files into a ClearCase VOB.
<cccheckout>
- Checks files out of a ClearCase VOB.
<cclock>
- Locks ClearCase elements.
<ccmkelem>
- Creates elements in a ClearCase VOB.
<ccmklabel>
- Applies a ClearCase label.
<ccmklbtype>
- Creates a label object in a ClearCase VOB.
<ccrmtype>
- Removes elements from a ClearCase VOB.
<ccuncheckout>
- Uncheckout ClearCase elements.
<ccunlock>
- Unlocks ClearCase elements.
<ccupdate>
- Updates a ClearCase view.
<cd>
- Changes the current working directory.
<choose>
- Executes an alternate set of tasks depending on conditions that are individually set on each group of tasks.
<iisapppool>
- Allows an IIS application pool to be controlled.
<msbuild>
- Builds the specified targets in the project file using MSBuild.
<vssdelete>
- Used to delete or Destroy files or projects in Visual Source Safe. Submitted by Richard Adleta.
Functions
fileset functions
- Provides methods for interrogating filesets.
service functions
- Allow information on a Windows service to be retrieved.
0.85-rc3 - April 16, 2005
NAnt
Breaking changes
Tasks
<nant>
- References are no longer copied to the new projects by default. This is now controlled using the "inheritrefs" attribute.
Bug fixes
Core
XML Schema
- "if" and "unless" attributes of <target> element are not documented (bug #1168170).
Tasks
<copy> / <move>
- If "flatten" is set to true and multiple source files are selected to be copied / moved to the same destination file, only the source file that was last written to should actually be copied / moved (bug #1165252).
<link>
- Additional include directory containing spaces leads to build failures (bug #1117794). This bug also affects the <solution> task.
<nant>
<ndoc>
- When executing the <ndoc> task multiple times, the properties are not expanded again after the first execution (bug #1124113).
- Additional directories specified (using the <referencepaths> element) to search for assembly references were not correctly consumed.
<resgen>
- The "dynamicprefix" attribute is not honored when determining the name of the compiled resource file (bug #1150186).
<script>
- Now supports any CodeDom provider, not just the built in languages (C#, VB, etc).
- Allow lower case values ( c# and vb ) for the Language attribute.
<servicecontroller>
- Resources are leaked (bug #1163461).
<call>
- Added a "cascade" attribute to allow calling a single task without cascading all the dependencies. (bug #1077323).
<solution>
- A relative path specified in the AssemblyKeyFile attribute must be resolved using either the solution directory or the intermediate output directory.
- Configurations containing dashes are skipped (bug #1184173).
- Check for existance of specified solution file is performed even if task is not to be executed (bug #1178810).
- Project configurations with names that do not match the solution configuration are skipped (bug #947214).
- Projects are not always properly excluded (bug #1143845 and #1182510).
- Stack overflow in case of circular project references (bug #1145670).
- BaseAddress not correctly passed to compilers (bug #1164709).
- Project dependencies that are no longer included in the solution file result in a circular dependency error.
- VB.NET
- Referencing the same assembly multiple times results in an ambiguous reference (bug #1178862).
- Visual C++
- Changes to source files or headers do not trigger a recompile (bug #1155919).
- Additional dependencies and library directory are ignored for static libraries (bug #1173529).
- IDL files without a type library are not supported (bug #1160647).
- Target macros are not correctly expanded if output file is not set (bug #1170100).
- References to Static Library projects are ignored when linking, and passed to the compiler as Forced Using assemblies.
- "Inherit project defaults" setting is ignored for Additional Dependencies of Linker (bug #1178007).
- Additional project-level include directories are not merged with file-level include directories (bug #1160043).
- Projects using precompiled header are always recompiled.
Types
<fileset>
- Patterns are read from file specified using <includesfile> element regardless of the value of conditional attributes ("if" and "unless").
Changes
Core
MailLogger
- Added "MailLogger.body.encoding" property to allow the encoding of the body of the message to be set.
Response File
- NAnt now supports the use of a response file. Passing @<file> on the command line will cause the contents of <file> to be read as part of the command line. Multiple @<file> arguments may be used.
XmlLogger
- Project, target and task timing information is now output in a <duration> element in milliseconds (patch #1122583)
Tasks
<csc> / <vbc> / <vjc>
- Changed "debug" attribute from boolean to DebugOutput enum to allow more control over the type of debugging information generated by the compiler.
<lib>
- Add "moduledefinition" attribute.
<midl>
- "tlb" attribute is no longer required.
Developer information
API
FileSetAttribute
- The NAnt.Core.Attributes.FileSetAttribute is obsolete. Task developers should use the NAnt.Core.Attributes.BuildElementAttribute instead.
For example:
[~~FileSet~~BuildElement("fileset")] public FileSet CopyFileSet { get { return _fileset; } set { _fileset = value; } }
NAntContrib
Bug fixes
Tasks
<msi> / <msm>
Changes
Tasks
<codestats>
- Added support for multiple line counters (patch #1108543).
<msi> / <msm>
- Added support for fileset references.
- Added <summaryinformation> element to specify information for the summary information stream (associated bug #1149861).
- FeatureComponents table is not removed from merge modules (even when empty)
- Added support for file, ini, and component searches. Depreciated the old syntax for registry searches. (associated bug #1149948).
0.85-rc2 - February 12, 2005
NAnt
General changes
Building NAnt
- The source distribution of NAnt no longer contains pre-built binaries to build a full version of NAnt. Instead, we now include GNU Make and NMake make files to build a bootstrap version of NAnt, which is then used to build the full version of NAnt.
License
- The special exception that is part of the NAnt license has been modified to avoid confusion.
Bug fixes
Core
XML Schema
- NAnt XML Schema definition for collection based elements was incorrect (bug #1076620).
Functions
target::get-current-target()
- Current target is incorrect after execution of target using <call> task (bug #1090260).
Tasks
<cl>
- <cl> does not recompile although headers have been updated (bug #1079377).
<mail>
- Names containing comma's are not supported (bug #961627).
<midl>
- <midl> fails on second run if "header" or "iid" attributes are not specified (bug #1078558).
<solution>
- Manifest resource names of resources in J# projects do not match those generated by Microsoft Visual Studio.NET.
- For embedded resources that are dependent on a source file, namespace prefixing is wrong when a namespace declaration is not present in the source file (bug #1077253).
- Users should be warned about possible issues with resx files when building a project for a down-level target framework (bug #1077254).
- "App.config" should not be considered an output file for Class Library projects.
- Win32 resources in Visual C++ projects are not compiled (bug #1077712).
- Improve error reporting when a referenced component cannot be resolved (bug #1079777).
- MFC and ATL shared linking is not supported for Visual C++ projects (bug #1078636).
- <solution> task doesn't support COM, OCX apps built in Visual C++ (bug #1078641).
- Support for some compile and link arguments is missing (bug #1080237).
- Project dependencies are not re-evaluated when assembly reference is converted to project reference (bug #1076015).
- Resolution of assembly references does not match Visual Studio .NET (bug #1077869).
<style>
- Relative URI specified as argument for document() function is not considered to be relative to the base URI of stylesheet containing the function call (bug #1078896).
<sysinfo>
- Document behavior when environment variable is defined with a name that is not a valid property name (bug #1082225).
Additions
Tasks
<gunzip>
- Expands a file packed using GZip compression.
<setenv>
- Sets environment variables.
Types
<categories>
- Controls the categories of tests to execute using the <nunit2> task.
Changes
Expressions
Data Type support
- Added support for "long" data type for both relational and mathematical expressions.
Tasks
<al>
- Added numerous attributes. Eg. "version", "evidence", ... .
<cl>
Added "pchthroughfile" and "pchmode" attributes to allow more control over precompiled header files.
Added "objectfile" and "pdbfile" attributes.
<csc>
- Added "baseaddress" and "filealign" attributes.
<lc>
- Deprecated "licensetarget" attribute in favor of "target" attribute.
<exec>
- Deprecated nested <option> element in favor of <variable> element for setting environment variables for the spawned process.
<link>
- Added "debug" and "pdbfile" attributes.
- Added <modules> child element to link modules in the assembly.
- Added <embeddedresources> child element to embed resources in the assembly.
<mail>
- "tolist" is no longer a required attribute.
- The "tolist", "cclist" and "bcclist" attributes are now semicolon-separated lists. The comma is no longer considered a separator character.
<ndoc>
- Upgraded to NDoc 1.3.1 Release.
<nunit2>
- Added support including or excluding specific categories of test cases or fixtures.
<resgen>
- Added "usesourcepath" attribute to allow the source file's directory to be used as current directory for resolving relative file paths. [.NET 2.0 or higher]
- Improved dependency scanning for resx files.
<solution>
- Improved support for precompiled header files.
- Added support for project-level build events.
<style>
- Added support for extension objects.
Types
<import>
- The "name" attribute of the <import> element has been deprecated, and replaced by a "namespace" attribute. This change affects the following tasks: <asminfo>, <script> and <vbc>.
NAntContrib
General changes
License
- The special exception that is part of the NAntContrib license has been modified to avoid confusion.
Build Script(s)
- Removed single quotes around path variable in NAnt install (bug #1153721).
Bug fixes
Tasks
<vb6>
- Fixed issue with scanning references to determine if a project needs compiling (bug #1082302).
<msi> / <msm>
<p4sync>
- Invalid command-line is generated when "force" is true (bug #1081430).
<sql>
- Avoid outputting separator line for empty rows.
<svn-checkout>
- Added '.' operator during checkout to fix issue with incorrect destination directory (bug #1078255).
<vsscheckout>
- Checking out single file causes error.
<vssget>
- Getting single file causes error (bug #1019972).
Additions
Tasks
<fxcop>
- Analyzes managed code assemblies and reports information about the assemblies, such as possible design, localization, performance, and security improvements.
<mkschanges>
- Generates an XML file containing the differences between the sandbox and the project in the MKS database.
<mkscheckpoint>
- Checkpoints a project in an MKS Source Integrity database.
<mksget>
- Retrieves an item or project from MKS Source Integrity.
<trycatch>
- Executes a set of tasks, and optionally catches a build exception to allow recovery or rollback steps to be taken, or to define some steps to be taken regardless if the tasks succeed or fail, or both.
<vsshistory>
- Generates an XML file showing all changes made to a Visual SourceSafe project/file between specified labels or dates (by a given user).
Changes
Tasks
<deliisdir>
- Added "website" attribute which allows for targeting a specific virtual site.
<iisdirinfo>
- Added "website" attribute which allows for targeting a specific virtual site.
<mkiisdir>
- Improved documentation.
- Added "uncusername" and "uncpassword" attributes.
- Added "website" attribute which allows for targeting a specific virtual site.
<version>
- Uses enums for the "buildtype" and "revisiontype" parameters.
- The calculated version number and its indivual components are now also exposed to build authors as properties.
<vssadd>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
<vsscheckin>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
- If "localpath" is not an absolute path, it will now be considered as a path relative to the project base directory.
<vsscheckout>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
- Added "filetimestamp" attribute that allows the behavior for timestamps of local files to be set.
- If "localpath" is not an absolute path, it will now be considered as a path relative to the project base directory.
<vssdiff>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
<vssget>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
- Added "filetimestamp" attribute that allows the behavior for timestamps of local files to be set.
- If "localpath" is not an absolute path, it will now be considered as a path relative to the project base directory.
<vsslabel>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
<vssundocheckout>
- The "user" attribute is deprecated, and has been superceded by a "username" attribute.
- The "user"/"username" attribute is no longer required. When no username is specified and "Use network name for automatic user log in" is enabled for the Visual SourceSafe database, then the current Windows username will be used to log in.
- If "localpath" is not an absolute path, it will now be considered as a path relative to the project base directory.
0.85-rc1 - November 28, 2004
NAnt
Framework support
- NAnt 0.85 adds support for the following frameworks (both as runtime and as target framework):
- Mono (both 1.0 and 2.0 profile)
- .NET 2.0 Beta 1
- By default, NAnt will now target the framework on which its running. For example, if NAnt is running on .NET 2.0, the assemblies built using the <csc> task will target .NET 2.0. Previous versions of NAnt would target .NET 1.0 by default.
- Information on how to override the target framework, can be found here.
Breaking changes
- In previous version of NAnt, the <arg> element (used by, for example, the <exec> task) would automatically add quotes for both "file" and "value" attributes in the command line generated by the task. That automatic quoting has been removed for "value" attributes (but not for "file" attributes). This change may break build files that assume that both arguments specified using the "file" and "value" attributes will automatically be quoted.
- Overwriting of read-only properties in tasks other than the <property> task will now result in a build failure. * Previous versions of NAnt would silently ignore an update of a read-only property.
- The <nunit2> task been updated to support NUnit 2.2. Assemblies built using previous versions of NUnit should either be rebuilt using NUnit 2.2 or a binding redirect should be configured in the application configuration file of the test assembly.
General changes
- Improved error reporting when invalid values are specified for attibutes representing files or directories.
- This release of NAnt introduces support for expressions. More information is available here.
- FilterChain support has been introduced to NAnt.
- Enums that are used in tasks or types now have their own doc pages.
- The default logger will now also output the number non-fatal errors and warnings.
- Output of the XmlLogger is now buffered until build has finished, and XmlLogger can now also be used as a listener.
- Added support for wild targets.
- Lots of built-in properties have been deprecated, and replaced by functions. More information is available here.
- NAnt will now report unknown attributes and child elements when initializing build elements.
Commandline changes
- Added "-e[macs]" option, which can be used to produce logging information without adornments.
- Added "-ext[ension]" option to allow loading of external assemblies. As a result, third party loggers or listeners no longer have to reside in the NAnt bin directory or the GAC in order to be used by NAnt.
- Deprecated -[defaultframewor]k option in favor of -t[argetframework].
New Tasks
<aximp>
- Generates a Windows Forms Control that wraps ActiveX Controls defined in an OCX.
<cvs-pass>
- Creates or updates an entry in the specified .cvspass file. This should be used instead of the password attribute.
<cvs-changelog>
- Produces an XML report that represents the cvs changes from the given start day, to a given end date.
<cvs-export>
- Exports a cvs module in preperation for a release.
<cvs-tag>
- Tags all local sources with the specified tag.
<ilasm>
- Compiles ILASM programs.
<ildasm>
- Disassembles any portable executable (PE) file that contains intermediate language (IL) code.
<loadfile>
- Loads a text file into a property.
<tar>
- Creates a tar file from the specified filesets.
Task changes
<asminfo>
- Use hash implementation to check whether AssemblyInfo needs to be rebuilt.
<attrib>
- Support setting attributes on directories.
<available>
- Deprecated in favor of expression support.
<cl>
- Added support for passing character set to compiler.
<csc>
- Added "rebuild" attribute, which instructs NAnt to recompile the output file regardless of the file timestamps. "nowarn" attribute has been deprecated in favor of the <nowarn> child element.
- Added support for suppressing/reporting specific warnings as errors using the <warnaserror> child element. [.NET 2.0 or higher]
- Added support for package references. [Mono]
- <lib> element is obsolete, in favor of <lib> child element on <references> and <modules> element.
- Added support for /baseaddress compiler option.
<copy>
- Added support for filterchains.
<cvs>
- Several bugs have been fixed in the <cvs> tasks.
- Documentation updates.
- Added "passfile" attribute.
<exec>
- Fixed internal error when "program" attribute was assigned invalid file name.
- Added "resultproperty" attribute, which can be set to a name of a property in which the exit code of the program can be stored.
- The <arg> element now supports line and PATH-like command-line arguments.
<get>
- Added support for client certificates (for HTTP requests) by means of the <certificates> elements.
<jsc>
- Added support for package references. [Mono]
- Added "rebuild" attribute, which instructs NAnt to recompile the output file regardless of the file timestamps.
<license>
- Uses the lc.exe commandline tool to compile license files whenever available.
<link>
- Allow <fileset> reference to be set for the <sources> element.
<move>
- Added support for filterchains.
<nant>
- Added <fileset> support for specifiying build files to execute.
<ndoc>
- Upgraded to NDoc 1.3 Release Candidate 1.
- Added support for reference paths.
<nunit>
- The <nunit> task has been deprecated, and will be moved to NAntContrib in a future release. NUnit 1.0 test assemblies will remain supported through NAntContrib, but we strongly advise you to upgrade to NUnit 2.x.
<nunit2>
- Upgraded to support NUnit 2.2.
- If no explicit application configuration file is specified, a configuration file matching the name of the test assembly with extension ".config" will be used for the test domain.
- Minor bug fixes.
<regex>
- Added "options" attribute that takes a comma-separated list of options to pass to the regex engine.
<resgen>
- Added support for assembly references, in order to be abel to compile .resx file that reference assemblies that are not located in the GAC.
<script>
- Simplified definition of custom functions with the <script> task.
- Added support for Visual J# (where available), and third party CodeDOM providers.
- <script> task is now supported on Mono.
- Assemblies emitted by the <script> task will now also be scanned for functions and filters.
<solution>
- Added support for Visual J# projects.
- WebMaps are now case-insensitive (and added attribute to enable case-sensitivity).
- Added "enablewebdav" attribute to allow WebDAV access for web projects.
- Added a few unit tests to reduce the likelyhood of regressions.
- Fixed some minor issues with regards to Visual C++ support.
- General performance has been improved, except for project with loads of resources.
- Added support for exclusion of source files for Visual C++ projects.
- No longer stop loading projects, when the first excluded project is encountered (bug #982685).
- No longer automatically use Primary Interop Assemblies for references to type libraries, but output warning instead.
- Added support for satellite assemblies.
- Respect project build order set in VS.NET.
- VB.NET specific settings are now processed.
- Improved support for precompiled headers, better grouping of files that should be compiled in one go.
- Added support for empty projects.
- No longer attempt to build ignored projects.
- Match behaviour of VS.NET when resolving assembly references.
- Fixed lookup of type libraries in the registry.
- Expansion of macros is now case-insensitive.
- Zero-byte resx files are now skipped to match VS.NET.
- Introduced support for nmake projects.
- Added support for web projects nested in Enterprise * Template Projects.
- Compiled resource file are now stored in the obj<configuration> directory relative to project directory. The compiled resource files will not be removed when the task finishes, by doing this resource files will now only be recompiled if the compiled resource file in the object directory is no longer up-to-date. This matches the behaviour of VS.NET.
- Added support for deploying App.config to output directory.
<sysinfo>
- If "failonerror" is false, the <sysinfo> task will output a warning message in the build log when a certain environment variable cannot be exposed as a property (because of, for example, more strict naming rules for properties) and continue processing other environment variables. In previous versions of NAnt, execution of the <sysinfo> task would halt on the first error.
<vbc>
- Added support for suppressing specific warnings using the <nowarn> child element. [.NET 2.0 or higher]
- Added support for suppressing/reporting specific warnings as errors using the <warnaserror> child element. [.NET 2.0 or higher]
- Added support for generating XML documentation files, using "doc" attribute. [.NET 2.0 or higher]
- Added support for package references. [Mono]
- Added "rebuild" attribute, which instructs NAnt to recompile the output file regardless of the file timestamps.
- Added <imports> child element, and deprecated "imports" attribute.
- <lib> element is obsolete, in favor of <lib> child element on <references> and <modules> element.
<vjc>
- Added support for suppressing specific warnings using the <nowarn> child element. [.NET 2.0 or higher]
- <lib> element is obsolete, in favor of <lib> child element on <references> and <modules> element.
- Added "rebuild" attribute, which instructs NAnt to recompile the output file regardless of the file timestamps.
- Added support for /baseaddress compiler option.
<xmlpeek> / <xmlpoke>
- Added support for XPath expressions with namespace prefixes.
<zip> / <unzip>
- Added support for multiple filesets.
- A top level directory prefix can be set on individual filesets.
- Upgraded #ziplib to v0.83.
New types
<assemblyfileset>
- Specialized <fileset> for managing assembly files.
<warnaserror>
- Controls the behaviour of a compiler with regards to the reporting of warnings.
Type changes
<fileset>
- Deprecated <includes> and <excludes> elements in favor of <include> and <exclude> elements.
- Deprecated <includesList> element in favor of <includesfile>.
- Added <excludesfile> element.
Developer information
- The Task.LogPrefix property has been deprecated. Messages that are written to build log by a given task, will now automatically get prefixed with the task name. This behaviour can be disabled by the new -e[macs] commandline option.
NAntContrib
New tasks
<depends>
- Guarantees that listed dependencies are resolved before continuing.
<grep>
- Searches files for a regular-expression and produces an XML report of the matches.
<PVCS>
- Support for PVCS has been added.
<Surround SCM>
- Support for Surround SCM has been added.
<Subversion>
- Support for Subversion has been introduced.
**<Perforce>
- Support for Perforce SCM has been added.
Task changes
<aximp>
- Moved to NAnt project.
<comregister>
- Minor fix to prevent file locking.
- Added support for unregistering type libraries.
- Prevented failure message boxes from being displayed when (un)registering a DLL server.
- Improved reporting of error conditions.
<gac>
- Documentation has been improved.
- Several issues have been fixed.
<mkiisdir>
- The hostname specified in the "iisserver" attribute is now taken into account when determining which site to target.
- Only those IIS-properties explicitly specified will be set.
- Added "appcreate" attribute to contol the creation of applications.
- The root directory of a site is now configurable.
<msi> / <msm>
- Added automatic parsing of subdirectories of components.
- Added support for registry components.
- Documentation has been improved.
- Added support for configurable merge modules.
- Several issues have been fixed.
- Added support for installing assemblies to the GAC.
<sql>
- Added "append" attribute that indicates whether to overwrite output file.
- Added "showheaders" attribute that specifies whether or not to display schema information.
- Column separator is changed from " " (two spaces) to ", ".
- Added "quotechar" attribute which specified the character(s) to place arround column values to prevent collisions with for instance the comma character.
<vb6>
- Several issues have been fixed.
<vssadd>
- Added support for recursive add.
<xsd>
- Documentation has been improved.
- Several issues have been fixed.