I've been stepping through the <solution> task code and I found
something interesting.

The version of NAnt I'm using is:
NAnt 0.85 (Build 0.85.1653.0; net-1.0.win32; nightly; 7/11/2004)

On line 110 in Solution.cs a Regex is created for finding project
configurations in solution files. The particular bit of the regex that
determines the configuration looks like this:
@"\.(?<configuration>[a-zA-Z]+)\.Build\.0\s+\S+"

I noticed that the configuration can only have lower and upper case
letters... This is a problem in my solutions and projects because the
configurations contain white space. I think a better regex needs to be
chosen here. Perhaps something like:
@"\.(?<configuration>[\s\w]+)\.Build\.0\s+\S+"

But that could catch a "configuration" with only one white space
character. Perhaps this could be better:
@"\.(?<configuration>\w[\s\w]*)\.Build\.0\s+\S+"

I work with a large number of C++ projects that have "Unicode Debug" and
"Unicode Release" configurations. In most cases only the solutions have
"Debug" and "Release" configurations because the solution has a C#
project with those configurations. In these cases Visual Studio maps
solution "Debug" and "Release" configurations to project "Unicode Debug"
and "Unicode Release" configurations for the C++ projects. Likewise it
maps solution "Unicode Debug" and "Unicode Release" configurations to
project "Debug" and "Release" configurations in C# projects. One can
change these mappings using the Configuration Manager.

Here are a few example lines from one of our solutions:

{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Debug.ActiveCfg = Unicode
Debug|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Debug.Build.0 = Unicode
Debug|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Release.ActiveCfg = Unicode
Release|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Release.Build.0 = Unicode
Release|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Unicode Debug.ActiveCfg = Unicode
Debug|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Unicode Debug.Build.0 = Unicode
Debug|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Unicode Release.ActiveCfg =
Unicode Release|Win32
{054F86D7-BE0B-4319-9CA2-5AA2288B1D84}.Unicode Release.Build.0 = Unicode
Release|Win32
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Debug.ActiveCfg = Debug|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Debug.Build.0 = Debug|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Release.ActiveCfg = Release|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Release.Build.0 = Release|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Unicode Debug.ActiveCfg =
Debug|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Unicode Debug.Build.0 =
Debug|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Unicode Release.ActiveCfg =
Release|.NET
{C35F3CFE-F3BB-461E-BE6B-C7DB36660ED8}.Unicode Release.Build.0 =
Release|.NET

The lines ending with "Unicode Debug|Win32" or "Unicode Release|Win32"
are representative of our C++ projects. The lines ending with
"Debug|.NET" and "Release|.NET" are representative of our C# projects.

Perhaps the <solution> task should also record these mappings so that
the appropriate configurations are really built.

--
Edwin G. Castro
[EMAIL PROTECTED]
 



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to