Hi all!

That's a very good idea, however just by looking at your patch I see few
problems:

1. When you have both VS.NET 2002 and VS.NET 2003 you actually have more
registry keys to consider:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\7.0\AssemblyFolders
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.0\AssemblyFolders
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\7.1\AssemblyFolders
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1\AssemblyFolders

where as a rule CURRENT_USER settings override the local machine. I think
that the registry paths should be stored a part of the framework
configuration in NAnt.exe.config. For mono on linux you would simply have no
paths to examine.

2. Looks like there's a mistake in your code:

+            FileSet af = _solutionTask.AssemblyFolders;
+            if(af.DirectoryNames.Count==0)
af=_solutionTask.DefaultAssemlyFolders;
+
+            foreach(string path in
_solutionTask.AssemblyFolders.DirectoryNames)
+            {
+                fiRef = new FileInfo(Path.Combine(path,justFilename));
+                if ( fiRef.Exists )
+                {
+                    _referenceFile = fiRef.FullName;
+                    _baseDirectory = fiRef.DirectoryName;
+                    return;
+                }
+            }

You initialize local variable "af"  to some fileset but iterate over
"_solutionTask.AssemblyFolders.DirectoryNames" so obviously "af" is not
used. I think it was meant to be "foreach(string path in af.DirectoryNames)"

3. I think there should be an option to include/exclude
"DefaultAssemblyFolders" from processing. In your patch there's a line:

+            if(af.DirectoryNames.Count==0)
af=_solutionTask.DefaultAssemlyFolders;

I think that the semantics should be: "process all directories specified in
the fileset PLUS any directories found via DefaultAssemblyFolders when the
user asks for it"

You would have a syntax like this.

<solution includevsfolders="true">
</solution>

I think that this new option should default to "false". Having it otherwise
would be dangerous as it would by default introduce a dependency of the
registry and might produce inconsistent results on different build machines.

Overall: the direction is good, but your patch still needs some work,
Martin. You're very close, though.

Jarek

----- Original Message ----- 
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Monday, September 01, 2003 5:04 PM
Subject: [nant-dev] solution task & assemblyfolders


> Hi all!
>
> I implement that <assemblyfolder> subtag for <solution> as we discused it
> here. I hope my coding convention is ok (try to be close to yours). I'm
also
> totally confused by security checks. Have you any experience with enabling
> read from registry? [it is ok for me without it, but...]
>
> There will be some other matters regarding project dependencies and paths
> but I need to explore it first.
>
> Regards,
> Martin
>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to