BUG: (NAnt version 0.8.3) In a solution task, having a configuration, where the value is not all lowercase can cause an INTERNAL ERROR.
This occurs when the solution file has two projects in it, where one project references another. EXAMPLE: This fails <target name="build"> <solution configuration="Release" solutionfile="TwoProjects.sln"/> </target> EXAMPLE: This works <target name="build"> <solution configuration="release" solutionfile="TwoProjects.sln"/> </target> TRACE: System.Exception: Unable to find appropriate configuration for project reference at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, ArrayList alCSCArguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands) in C:\DotNet\nant\src\NAnt.VSNet\Solution.cs:line 242 at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask() in C:\DotNet\nant\src\NAnt.VSNet\Tasks\SolutionTask.cs:line 112 at NAnt.Core.Task.Execute() in C:\DotNet\nant\src\NAnt.Core\Task.cs:line 142 at NAnt.Core.Target.Execute() in C:\DotNet\nant\src\NAnt.Core\Target.cs:line 137 at NAnt.Core.Target.Execute() in C:\DotNet\nant\src\NAnt.Core\Target.cs:line 124 at NAnt.Core.Target.Execute() in C:\DotNet\nant\src\NAnt.Core\Target.cs:line 124 at NAnt.Core.Project.Execute(String targetName) in C:\DotNet\nant\src\NAnt.Core\Project.cs:line 579 at NAnt.Core.Project.Execute() in C:\DotNet\nant\src\NAnt.Core\Project.cs:line 562 at NAnt.Core.Project.Run() in C:\DotNet\nant\src\NAnt.Core\Project.cs:line 603 The problem occur FIX: The error occurs when the Solution.Compile method is trying to get the referred-to Project's configuration settings Project.GetConfigurationSettings(strConfiguration) for the named configuration. The configuration name used is mixed cased, but the Project has stored the configurations with a lower case name. The fix was to change the Project.GetConfigurationSettings method to convert the configuration name to lower case. Here's the new method: public ConfigurationSettings GetConfigurationSettings( string strConfiguration ) { return ( ConfigurationSettings )_htConfigurations[ strConfiguration.ToLower() ]; } OTHER SOLUTIONS: I suggest that the hash tables be created to ignore case altogether. This can be done as follows: HashTable _ht = new HashTable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); David ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ _______________________________________________ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers