Re: [nant-dev] last suggestion - Solution task again

2003-09-01 Thread Martin Aliger
 Good find.  I like your assembly-folders idea.  Unfortunately, I'm quite
 busy at work and don't have any time for solution task development.
 It should be pretty straight-forward to implement if someone has an hour
 or so to space.

I could code it - no problem. Does others see any other ideas?

Also I'm not quite sure about naming. is assembly-folders proper name for
that tag? And how to internally implement it? As list of paths? Fileset is
not appropriate here. Maybe I could handle it simmilary as arg in csc?
(only list tag I'm aware of)

Martin


 Martin Aliger wrote:

 I did some exploration in this field and found this:
 
 Visual Studio use HintPath to find reference assemblies. If not found it
 uses all paths listed under registry key
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders
 
 Maybe we should implement similar mechanism? Use HintPath first and then
 some path list which could defaults to this regisry read. And be
overrided
 (extended?) by e.g.
  solution _verbose=true configuration=Release
 output=${build.dir}
 projects
includes name=**/*.csproj/
 /projects
 assembly-folders
 includes name=c:\temp\build\dll/
 /assembly-folders
  /solution
 
 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


Re: [nant-dev] last suggestion - Solution task again

2003-08-30 Thread Matthew Mastracci
The fileset would work fine.  It can handle directories as well as
individual files.  You'll just need to use the correct method when you
get the items from the FileSet.  As well, it can handle the nifty
wildcarding that gives NAnt its real power.  :)

On Sat, 2003-08-30 at 05:52, Martin Aliger wrote:
  Good find.  I like your assembly-folders idea.  Unfortunately, I'm quite
  busy at work and don't have any time for solution task development.
  It should be pretty straight-forward to implement if someone has an hour
  or so to space.
 
 I could code it - no problem. Does others see any other ideas?
 
 Also I'm not quite sure about naming. is assembly-folders proper name for
 that tag? And how to internally implement it? As list of paths? Fileset is
 not appropriate here. Maybe I could handle it simmilary as arg in csc?
 (only list tag I'm aware of)
 
 Martin
 
 
  Martin Aliger wrote:
 
  I did some exploration in this field and found this:
  
  Visual Studio use HintPath to find reference assemblies. If not found it
  uses all paths listed under registry key
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders
  
  Maybe we should implement similar mechanism? Use HintPath first and then
  some path list which could defaults to this regisry read. And be
 overrided
  (extended?) by e.g.
   solution _verbose=true configuration=Release
  output=${build.dir}
  projects
 includes name=**/*.csproj/
  /projects
  assembly-folders
  includes name=c:\temp\build\dll/
  /assembly-folders
   /solution
  
  Martin
-- 
Matthew Mastracci [EMAIL PROTECTED]



---
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


Re: [nant-dev] last suggestion - Solution task again

2003-08-29 Thread Martin Aliger
I did some exploration in this field and found this:

Visual Studio use HintPath to find reference assemblies. If not found it
uses all paths listed under registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders

Maybe we should implement similar mechanism? Use HintPath first and then
some path list which could defaults to this regisry read. And be overrided
(extended?) by e.g.
 solution _verbose=true configuration=Release
output=${build.dir}
projects
   includes name=**/*.csproj/
/projects
assembly-folders
includes name=c:\temp\build\dll/
/assembly-folders
 /solution

Martin


 I think I understand.  Each developer has a bunch of reference
 directories that are set up in VS.NET, right?  You're right - we would
 likely need to add a references tag to the solution task to handle
 this situation.

 Matt.

 Martin Aliger wrote:

 Odd...  We simply check in .csproj files and leave .csproj.user files on
 each machine individually.  We haven't had any issues with this.
 
 Are you perhaps talking about 3rd party references?  Or GAC references?
 
 
 
 no - normal references to assemblies. Unfortunattely we do not use CVS or
 similar system and every developer has another directory tree. A lot of
us
 do not have sources from all assemblies and references pre-built .dlls.
This
 result is scheme, where one developer writes assembly Gordic.General
and
 another one Gordic.Win32 which is dependant on General
 Reference
 Name = Gordic.General
 AssemblyName = Gordic.General
 HintPath = ..\dll\Gordic.General.dll
 /
 
 But on build server no path ..\dll exists and nant failed with
BUILD FAILED
Couldn't find referenced assembly
 'C:\temp\src\dll\Gordic.General.dll'.
 
 This is logical but imposible to solve right now. Maybe solution is to
 create some attribute to Solution task to override references path? (like
 outputdir)
 
 What is your ideas?
 
 Thanks,
 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
 
 
 








---
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


Re: [nant-dev] last suggestion - Solution task again

2003-08-29 Thread Matthew Mastracci
Good find.  I like your assembly-folders idea.  Unfortunately, I'm quite 
busy at work and don't have any time for solution task development.  
It should be pretty straight-forward to implement if someone has an hour 
or so to space.

Martin Aliger wrote:

I did some exploration in this field and found this:

Visual Studio use HintPath to find reference assemblies. If not found it
uses all paths listed under registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders
Maybe we should implement similar mechanism? Use HintPath first and then
some path list which could defaults to this regisry read. And be overrided
(extended?) by e.g.
solution _verbose=true configuration=Release
output=${build.dir}
   projects
  includes name=**/*.csproj/
   /projects
   assembly-folders
   includes name=c:\temp\build\dll/
   /assembly-folders
/solution
Martin

 

I think I understand.  Each developer has a bunch of reference
directories that are set up in VS.NET, right?  You're right - we would
likely need to add a references tag to the solution task to handle
this situation.
Matt.

Martin Aliger wrote:

   

Odd...  We simply check in .csproj files and leave .csproj.user files on
each machine individually.  We haven't had any issues with this.
Are you perhaps talking about 3rd party references?  Or GAC references?

   

no - normal references to assemblies. Unfortunattely we do not use CVS or
similar system and every developer has another directory tree. A lot of
 

us
 

do not have sources from all assemblies and references pre-built .dlls.
 

This
 

result is scheme, where one developer writes assembly Gordic.General
 

and
 

another one Gordic.Win32 which is dependant on General
  Reference
  Name = Gordic.General
  AssemblyName = Gordic.General
  HintPath = ..\dll\Gordic.General.dll
  /
But on build server no path ..\dll exists and nant failed with
 BUILD FAILED
 Couldn't find referenced assembly
'C:\temp\src\dll\Gordic.General.dll'.
This is logical but imposible to solve right now. Maybe solution is to
create some attribute to Solution task to override references path? (like
outputdir)
What is your ideas?

Thanks,
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


 



   





---
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
 





---
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


Re: [nant-dev] last suggestion - Solution task again

2003-08-27 Thread Martin Aliger
 Odd...  We simply check in .csproj files and leave .csproj.user files on
 each machine individually.  We haven't had any issues with this.

 Are you perhaps talking about 3rd party references?  Or GAC references?

no - normal references to assemblies. Unfortunattely we do not use CVS or
similar system and every developer has another directory tree. A lot of us
do not have sources from all assemblies and references pre-built .dlls. This
result is scheme, where one developer writes assembly Gordic.General and
another one Gordic.Win32 which is dependant on General
Reference
Name = Gordic.General
AssemblyName = Gordic.General
HintPath = ..\dll\Gordic.General.dll
/

But on build server no path ..\dll exists and nant failed with
   BUILD FAILED
   Couldn't find referenced assembly
'C:\temp\src\dll\Gordic.General.dll'.

This is logical but imposible to solve right now. Maybe solution is to
create some attribute to Solution task to override references path? (like
outputdir)

What is your ideas?

Thanks,
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


Re: [nant-dev] last suggestion - Solution task again

2003-08-27 Thread Matthew Mastracci
I think I understand.  Each developer has a bunch of reference 
directories that are set up in VS.NET, right?  You're right - we would 
likely need to add a references tag to the solution task to handle 
this situation. 

Matt.

Martin Aliger wrote:

Odd...  We simply check in .csproj files and leave .csproj.user files on
each machine individually.  We haven't had any issues with this.
Are you perhaps talking about 3rd party references?  Or GAC references?
   

no - normal references to assemblies. Unfortunattely we do not use CVS or
similar system and every developer has another directory tree. A lot of us
do not have sources from all assemblies and references pre-built .dlls. This
result is scheme, where one developer writes assembly Gordic.General and
another one Gordic.Win32 which is dependant on General
   Reference
   Name = Gordic.General
   AssemblyName = Gordic.General
   HintPath = ..\dll\Gordic.General.dll
   /
But on build server no path ..\dll exists and nant failed with
  BUILD FAILED
  Couldn't find referenced assembly
'C:\temp\src\dll\Gordic.General.dll'.
This is logical but imposible to solve right now. Maybe solution is to
create some attribute to Solution task to override references path? (like
outputdir)
What is your ideas?

Thanks,
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
 





---
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


Re: [nant-dev] last suggestion - Solution task again

2003-08-26 Thread Martin Aliger
 I'd recommend against comparing only filenames.  This will likely end up
 causing trouble down the line.  VS.NET is certainly a mess when it comes
 to hint paths, but I've found that they are generally accurate.  I don't
 even think it uses them half of the time.  :)

 Can you describe your situation with more detail (perhaps some examples)
 so I can see what is happening?.

Sure. This is case, when more developers make some projects and upload them
into build server. Than it should compile all that projects from several
developers. Of course, every developer have another path in their .csproj
files and that do not exists on server.

Similar think could happen when you copy project around machines or even
move to another disk. I think this is important to solve maybe with help of
some attributes. There must be some way from this mess :-)

Thanks!
Martin


 Last one - and I'm not sure there.
 
 There are problems with references between projects when projects have
different output paths. Project references are ok, but external refenreces
sometimes brokes. Currently nant compares files as full pathnames using path
from HintPath attribute. I suggest to compare filenames as names only
without path. Could this be a problem? It works for me, but... Btw: Visual
studio is real mess in this. Hope nant could be better! :)
 
 I send patch I made, but consider this as suggestion, not real patch
 




---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] last suggestion - Solution task again

2003-08-26 Thread Brant Carter
We solved this problem by creating a tool to update the .user files for 
each developer.  It scans the directory tree and then creates a .user file 
for each .proj file with the correct reference path for that workstation.

brant
...


From: Martin Aliger [EMAIL PROTECTED]
To: Matthew Mastracci [EMAIL PROTECTED]
CC: ! nant [EMAIL PROTECTED]
Subject: Re: [nant-dev] last suggestion - Solution task again
Date: Mon, 25 Aug 2003 10:52:59 +0200
 I'd recommend against comparing only filenames.  This will likely end up
 causing trouble down the line.  VS.NET is certainly a mess when it comes
 to hint paths, but I've found that they are generally accurate.  I don't
 even think it uses them half of the time.  :)

 Can you describe your situation with more detail (perhaps some examples)
 so I can see what is happening?.
Sure. This is case, when more developers make some projects and upload them
into build server. Than it should compile all that projects from several
developers. Of course, every developer have another path in their .csproj
files and that do not exists on server.
Similar think could happen when you copy project around machines or even
move to another disk. I think this is important to solve maybe with help of
some attributes. There must be some way from this mess :-)
Thanks!
Martin
 Last one - and I'm not sure there.
 
 There are problems with references between projects when projects have
different output paths. Project references are ok, but external refenreces
sometimes brokes. Currently nant compares files as full pathnames using 
path
from HintPath attribute. I suggest to compare filenames as names only
without path. Could this be a problem? It works for me, but... Btw: Visual
studio is real mess in this. Hope nant could be better! :)
 
 I send patch I made, but consider this as suggestion, not real patch
 



---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click 
here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
_
Protect your PC - get McAfee.com VirusScan Online  
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963



---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] last suggestion - Solution task again

2003-08-26 Thread Matthew Mastracci
Odd...  We simply check in .csproj files and leave .csproj.user files on
each machine individually.  We haven't had any issues with this.

Are you perhaps talking about 3rd party references?  Or GAC references?

I believe that even MSFT recommends copying files to a directory
statically-relative to your project directory.  So far we haven't found
any 3rd-party library that can't handle having its files checked into
CVS.  We always reference the 3rd party components from that CVS
directory and they work.  Some of them require themselves to be
installed on the machine as well (for license keys, etc.), but they can
still be referenced from the CVS directories.

On Mon, 2003-08-25 at 19:36, Brant Carter wrote:
 We solved this problem by creating a tool to update the .user files for 
 each developer.  It scans the directory tree and then creates a .user file 
 for each .proj file with the correct reference path for that workstation.
 
 brant
 ...
 
 
 
 From: Martin Aliger [EMAIL PROTECTED]
 To: Matthew Mastracci [EMAIL PROTECTED]
 CC: ! nant [EMAIL PROTECTED]
 Subject: Re: [nant-dev] last suggestion - Solution task again
 Date: Mon, 25 Aug 2003 10:52:59 +0200
 
   I'd recommend against comparing only filenames.  This will likely end up
   causing trouble down the line.  VS.NET is certainly a mess when it comes
   to hint paths, but I've found that they are generally accurate.  I don't
   even think it uses them half of the time.  :)
  
   Can you describe your situation with more detail (perhaps some examples)
   so I can see what is happening?.
 
 Sure. This is case, when more developers make some projects and upload them
 into build server. Than it should compile all that projects from several
 developers. Of course, every developer have another path in their .csproj
 files and that do not exists on server.
 
 Similar think could happen when you copy project around machines or even
 move to another disk. I think this is important to solve maybe with help of
 some attributes. There must be some way from this mess :-)
 
 Thanks!
 Martin
 
 
   Last one - and I'm not sure there.
   
   There are problems with references between projects when projects have
 different output paths. Project references are ok, but external refenreces
 sometimes brokes. Currently nant compares files as full pathnames using 
 path
 from HintPath attribute. I suggest to compare filenames as names only
 without path. Could this be a problem? It works for me, but... Btw: Visual
 studio is real mess in this. Hope nant could be better! :)
   
   I send patch I made, but consider this as suggestion, not real patch
   
 
 
 
 
 ---
 This SF.net email is sponsored by: VM Ware
 With VMware you can run multiple operating systems on a single machine.
 WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
 at the same time. Free trial click 
 here:http://www.vmware.com/wl/offer/358/0
 ___
 nant-developers mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/nant-developers
 
 _
 Protect your PC - get McAfee.com VirusScan Online  
 http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
-- 
Matthew Mastracci [EMAIL PROTECTED]



---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] last suggestion - Solution task again

2003-08-22 Thread Matthew Mastracci
I'd recommend against comparing only filenames.  This will likely end up 
causing trouble down the line.  VS.NET is certainly a mess when it comes 
to hint paths, but I've found that they are generally accurate.  I don't 
even think it uses them half of the time.  :) 

Can you describe your situation with more detail (perhaps some examples) 
so I can see what is happening?. 

Martin Aliger wrote:

Last one - and I'm not sure there.

There are problems with references between projects when projects have different output paths. Project references are ok, but external refenreces sometimes brokes. Currently nant compares files as full pathnames using path from HintPath attribute. I suggest to compare filenames as names only without path. Could this be a problem? It works for me, but... Btw: Visual studio is real mess in this. Hope nant could be better! :)

I send patch I made, but consider this as suggestion, not real patch

Thanks!
Martin
-- Created by Email.cz  http://www.email.cz -- Get Your Free Email  



-- Created by Email.cz  http://www.email.cz -- Get Your Free Email  

 



--- E:\src\nant\distrib\NAnt.VSNet\Solution.cs  Fri Jul 25 10:07:28 2003
+++ E:\src\nant\src\NAnt.VSNet\Solution.cs  Tue Aug 19 18:41:12 2003
@@ -181,11 +180,11 @@
foreach ( DictionaryEntry de in _htProjects ) {
string strGUID = ( string )de.Key;
Project p = ( Project )de.Value;
-
+/* ??without path??
foreach ( string strConfiguration in p.Configurations ) {
-//Console.WriteLine( {0} [{1}] - {2}, p.Name, 
strConfiguration, p.GetConfigurationSettings( strConfiguration ).FullOutputFile.ToLower() );
-_htOutputFiles[ p.GetConfigurationSettings( strConfiguration 
).FullOutputFile.ToLower() ] = strGUID;
-}
+_htOutputFiles[ GetConfigurationSettings( strConfiguration 
).FullOutputFile .ToLower() ] = strGUID;
+} */
+_htOutputFiles[ p.ProjectSettings.OutputFile.ToLower() ] = 
strGUID;
}
// Then build the dependency list
@@ -196,8 +195,12 @@
foreach ( Reference r in p.References ) {
if ( r.IsProjectReference )
AddProjectDependency( strGUID, r.ProjectReferenceGUID );
-else if ( _htOutputFiles.Contains( r.Filename.ToLower() ) )
-AddProjectDependency( strGUID, ( string )_htOutputFiles[ 
r.Filename.ToLower() ] );
+else
+   {
+   string refName = Path.GetFileName(r.Filename).ToLower(); 
/* ??without path?? r.Filename.ToLower()*/
+   if ( _htOutputFiles.Contains( refName ) )
+   AddProjectDependency( strGUID, ( string )_htOutputFiles[ 
refName ] );
+   }
}
}
}
@@ -231,24 +234,29 @@
if ( !bFailed ) {
// Fixup references
-//Console.WriteLine( Fixing up references... );
+//_nanttask.Log(Level.Info, _nanttask.LogPrefix + Fixing up references... );
foreach ( Reference r in p.References ) {
-//Console.WriteLine( Original: {0}, r.Filename );
if ( r.IsProjectReference ) {
+   // Console.WriteLine( Original: project {0} {1}, r.Filename,r.ProjectReferenceGUID );
Project pRef = ( Project )_htProjects[ r.ProjectReferenceGUID ];
if ( pRef == null )
throw new Exception( Unable to locate referenced project while loading  + p.Name );
if ( pRef.GetConfigurationSettings( strConfiguration ) == null )
-throw new Exception( Unable to find appropriate configuration for project reference );
+throw new Exception( String.Format( Unable to find appropriate configuration ({0}) for project reference {1}, strConfiguration,  GetProjectFileFromGUID(pRef.GUID) ));
if ( pRef != null )
r.Filename = pRef.GetConfigurationSettings( strConfiguration ).FullOutputFile.ToLower();
} 
-else if ( _htOutputFiles.Contains( r.Filename.ToLower() ) ) {
-Project pRef = ( Project )_htProjects[ ( string )_htOutputFiles[ r.Filename.ToLower() ] ];
-if ( pRef != null  pRef.GetConfigurationSettings( strConfiguration ) != null )
-r.Filename =