RE: [Draconet-users] Question about NAnt integration and compiling C# code

2004-12-09 Thread David Reed
> -Original Message-

[snip]
> Anyone have any ideas on how to get around this.  When I build I need
to
> register and unregister on my development machine but it is not
absolutely
> necessary on the continious integration machine although .  It doesn't
> have
> a problem with the 'ProjectDir', 'OutDir' or 'TargetPath' macros.  I'm
not
> for sure how to approach this.  I can delete the pre and post build
event
> and just run the bat files manually but I really don't want to do that
> because I'm lazy. :)
[snip]

The SolutionTask is one of my hobby horses.  It's been broken since the
day before they invented it.  I don't use it; I won't use it.



In the unlikely event that me doing Monty Python doesn't cause you to
"Run away!  Run away!" from the SolutionTask, I'll tell you that I use
CscTask to compile all of our assemblies and maintain a very simple
inclusion list of source as part of each build script, etc.

Here's why: In a spurt of optimism about six months ago, I briefly
experimented with using xsl and simple string operations to manipulate
the sln and csproj files so that the wacky SolutionTask would work on
them as Local projects instead of Web projects, because SolutionTask was
horribly broken with respect to Web projects.  I then decided that it
was easier to just convert them all to Local projects instead of Web
projects 100% of the time instead...  Which is how we develop our web
apps now; much nicer than before, so some good did come of it.  But then
something else in SolutionTask broke for me which is too painful to
recall, and I gave up again on the SolutionTask...

[Don't even think about trying to use ExecTask to call devenv.exe
directly.  That's even worse than trying to use SolutionTask, if you can
believe it.]

The SolutionTask is the one reason that I'm looking forward to MSBuild.
Because SolutionTask offends me.  ;)  NAnt with CscTask does me just
fine right now, but I find the whole exercise of trying to reinvent
devenv.exe to be wasteful, counterproductive and well, nevermind - I'll
keep it professional.  :)  Of course, I'm emotionally preparing myself
to be woefully disappointed by MSBuild (as with any version 1 M$
product).

Here are some options.  You could:

1. Dive into the NAnt code and implement the unimplemented macro.
2. Strip the offending line(s) out at run time (what effect this will
have on build success, I don't know).
3. Switch to using csc to build your assemblies.
4. Ask the NAnt developers to hurry up already.  :P

In the event that this post wasn't helpful, at least you have my
sympathies.  And I feel better.  I may not even need that extra therapy
session this week.  Heh.


---
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] Question about NAnt integration and compiling C# code

2004-12-09 Thread John Sheppard
David,
  Thanks for the feedback.  I have settled on doing a sandbox build.  My 
confusion below came when I was trying to set nant.exe to debug mode (ie. 
when I supplied a path to it with the -debug+ on the end)  At first I was 
inserting the ':' symbol between the debug keyword and its value '-debug:+' 
which the path core runtime was puking on.  Then I realized the error of my 
ways and removed the ':' symbol.  Draco promptly told me that it couldn't 
find the path to nant.  Dang can't set nant to debug.
  Download the source change the argument builder to pass in a debug 
argument and compile it.  Unregister the release version of the service, 
register the debug version of the service, set log in user on the service 
and start it.  Attached VS.NET to it's process and set a break point.  
Manually run the project through the website controller and it promptly 
jumps to the set break point and I can debug.  Found out I was being really 
stupid and had the 'aha' slap my forehead method, fixed my problem (notice I 
am skirting around it here because I don't want to embarass myself. :) ).  
Stop and unregister debug version of the service, reregister and start 
release version.  All is hunky dory now, it's starts building.
   Find out I have somethings in the solution that nant is puking on, go 
back to debug version to get more verbose info about them in the log file.  
It seems that I had a resx file that was making it puke.  Deleted the resx, 
view the control in VS again, which recreated it, checked everything back 
in.  All is fine.
   The problem I am having now is for running pre and post event builds 
that are defined in on the project level.  I used the DevEnvDir macro and 
some relative paths tacked to it that point to the .NET framework tools 
directory so that I can run installutil to unregister and register a 
remoting service that nant is not liking.  It tells me the following:

NAnt.Core.BuildException: Unexpected error while compiling project 'Service' 
---> System.NotImplementedException: "DevEnvDir" macro is not yet 
implemented.

Anyone have any ideas on how to get around this.  When I build I need to 
register and unregister on my development machine but it is not absolutely 
necessary on the continious integration machine although .  It doesn't have 
a problem with the 'ProjectDir', 'OutDir' or 'TargetPath' macros.  I'm not 
for sure how to approach this.  I can delete the pre and post build event 
and just run the bat files manually but I really don't want to do that 
because I'm lazy. :)

Any (more) help would be appreciated,
John
From: "David Reed" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: RE: [Draconet-users] Question about NAnt integration and compiling 
C# code
Date: Thu, 9 Dec 2004 10:37:50 -0600

John,
You're bumping into the same confusion I did when I first got started.
As I've grokked the subject, you've got two options (which you've
already figured out):
1. Store the build files with the source and use relative paths in your
build file to reference resources; this allows you to use the "clean
room" checkout method that Draco already does for you to a virgin
location for every build.
+ This is good because it is what Draco expects you to do.
+ This is good if you like to have a 100% fresh build every time.
+ This is good for smoke tests.
- This is bad if you care about your debug symbols and the paths to
source contained therein.
2. Store the build file somewhere else and manage the checkout of source
yourself using NAnt tasks to a location that you know and love
(duplicative effort, because Draco's already checked it out for you to
an imaginary location with a really scary file path) and use fully
qualified paths for all your resources in the build file so that it
doesn't matter where the build file is run from.
+ This is good if you're a masochist.
+ This is good if you're paranoid and don't trust "developers" to
maintain the build script.
+ This is good if you care about your debug symbols and the paths to
source contained therein.
- This is bad if you have high concurrency, because many simultaneous
runs of the same builds will step on each other and ugly things happen.
(I don't know if Draco prevents simultaneous runs of the same build yet
or not.)
[The biggest concurrency problems that I had were the previous version
of NDoc -- which they fixed -- and database changes (such as new sprocs)
-- which is a logical flaw in the SQL scripts and has to be re-fixed
every time a "developer" writes an unrepeatable transaction or doesn't
pre-test changes carefully.]
** Having fought with both methods in the past 18 months, I feel your
pain.  :)  I'm using #1 for CI builds to the sandbox servers.  To solve
the debug symbols problem on the integration servers, there are
scheduled builds using well-known file locations where we check out
source to and issue the same build logic with different target servers.
What we've long been missing is a sn

RE: [Draconet-users] problems svn and Visual Studio

2004-12-09 Thread Arild Fines
[EMAIL PROTECTED] wrote:
> Hi,
> I might miss something but I didn't get Draco to run svn together
> with Visual Studio 2003.
> In the first place svn (is in the path and I can it execute from the
> command prompt) didn't get executed.
> The only error message I got in the log output that a file was not
> found.

svn.exe may be in the PATH for the interactive user(you), but that doesn't
necessarily mean it's in the path for Draco. The Draco service runs under
the LOCALSYSTEM account, which may or may not have the same environment as
you.

Ensure that svn.exe is in the System path, not just that of the current
user.


--
Arild

AnkhSVN, Subverting Visual Studio .NET: http://ankhsvn.tigris.org
Blog: http://ankhsvn.com/blog
IRC: irc://irc.freenode.net/ankhsvn

"Gentlemen, you can't fight in here! This is the war room!"



---
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] Question about NAnt integration and compiling C# code

2004-12-09 Thread David Reed
John,

You're bumping into the same confusion I did when I first got started.
As I've grokked the subject, you've got two options (which you've
already figured out):

1. Store the build files with the source and use relative paths in your
build file to reference resources; this allows you to use the "clean
room" checkout method that Draco already does for you to a virgin
location for every build.

+ This is good because it is what Draco expects you to do.
+ This is good if you like to have a 100% fresh build every time.
+ This is good for smoke tests.
- This is bad if you care about your debug symbols and the paths to
source contained therein.

2. Store the build file somewhere else and manage the checkout of source
yourself using NAnt tasks to a location that you know and love
(duplicative effort, because Draco's already checked it out for you to
an imaginary location with a really scary file path) and use fully
qualified paths for all your resources in the build file so that it
doesn't matter where the build file is run from.

+ This is good if you're a masochist.
+ This is good if you're paranoid and don't trust "developers" to
maintain the build script.
+ This is good if you care about your debug symbols and the paths to
source contained therein.
- This is bad if you have high concurrency, because many simultaneous
runs of the same builds will step on each other and ugly things happen.
(I don't know if Draco prevents simultaneous runs of the same build yet
or not.)

[The biggest concurrency problems that I had were the previous version
of NDoc -- which they fixed -- and database changes (such as new sprocs)
-- which is a logical flaw in the SQL scripts and has to be re-fixed
every time a "developer" writes an unrepeatable transaction or doesn't
pre-test changes carefully.]

** Having fought with both methods in the past 18 months, I feel your
pain.  :)  I'm using #1 for CI builds to the sandbox servers.  To solve
the debug symbols problem on the integration servers, there are
scheduled builds using well-known file locations where we check out
source to and issue the same build logic with different target servers.

What we've long been missing is a snifty HOWTO document with some CI
theory and examples to expand on what's in default build config file...
It's on my wish list to contribute, but I won't have time until mid-1Q05
to even breathe, let alone actually do something fun.  :)


> -Original Message-
> From: [EMAIL PROTECTED]
[mailto:draconet-users-
> [EMAIL PROTECTED] On Behalf Of John Sheppard
> Sent: Thursday, December 09, 2004 10:13 AM
> To: [EMAIL PROTECTED]
> Subject: [Draconet-users] Question about NAnt integration and
compiling C#
> code
> 
> Hi all,
>I am having a problem getting Draco to run my NAnt build file. The
> polling and checkout of source works as expected with one caveat.  I
have
> to
> designate an '$' character in front of my VSS path for it to poll and
> check
> my solution.  I thought I could do a '\x\y\z' type of path but instead
I
> have to do a '$\x\y\z' style path in order for it to work.
> 
> Here are the details (specifics changed to protect the innocent).
> 
> I have set NAnt to debug to try to get a better handle on the failure.
> Here
> are the details of my project config:
> 
>   Source
>   600
>   3600
>   60
>   mail.yourdomain.com
>   [EMAIL PROTECTED]
>   
> 
>   true
>   Tropicos2
>   600
>   600
>   600
>   
> 
>   d:\BuildTools\AutomatedBuilds\Tropicos
>   true
> 
>   
>   
> master.build
>   
>   
> $/MOBOT/Tropicos2/Tropicos
> username
> password
> \\UNCEncoded path\VSS
>   
> 
>   
> 
> Notice the path to the build file.  When I set this to an absolute
path
> where I was storing my master.build file Draco would do a cd /d into
that
> directory then run the nant.exe with the correct parameters passed.
NAnt
> would fail because it couldn't find my solution file in the directory
that
> draco had cd'd into.  So I changed my build file to be included in my
> solution files and when my project is checked out the build file is
> checked
> out into the base directory of my solution.  My solution is three
levels
> deep in my source safe structure so my project is checked out as
follows:
> 
> D:\BuildTools\Draco.NET Service\Source\ProjectName-TempID\Path to my
> source
> safe project (in this case '$\MOBOT\Tropicos2\Tropicos'.  This is
where
> the
> directory structure for the project is created with both the solution
file
> and build file at this level.  I am thinking all is as it should be.
VSS
> checks all the files out, builds the directory structure then NAnt is
> called
> and here is where it is throwing an error.  The error is: 'The given
> path's
> format is not supported.'.  I assumed that it would 'cd /d' into the
root
> directory for my solution and try to find the build file there and run
it.
> This evedently is not the 

[Draconet-users] Question about NAnt integration and compiling C# code

2004-12-09 Thread John Sheppard
Hi all,
  I am having a problem getting Draco to run my NAnt build file. The 
polling and checkout of source works as expected with one caveat.  I have to 
designate an '$' character in front of my VSS path for it to poll and check 
my solution.  I thought I could do a '\x\y\z' type of path but instead I 
have to do a '$\x\y\z' style path in order for it to work.

Here are the details (specifics changed to protect the innocent).
I have set NAnt to debug to try to get a better handle on the failure.  Here 
are the details of my project config:

 Source
 600
 3600
 60
 mail.yourdomain.com
 [EMAIL PROTECTED]
 
   
 true
 Tropicos2
 600
 600
 600
 
   
 d:\BuildTools\AutomatedBuilds\Tropicos
 true
   
 
 
   master.build
 
 
   $/MOBOT/Tropicos2/Tropicos
   username
   password
   \\UNCEncoded path\VSS
 
   
 
Notice the path to the build file.  When I set this to an absolute path 
where I was storing my master.build file Draco would do a cd /d into that 
directory then run the nant.exe with the correct parameters passed.  NAnt 
would fail because it couldn't find my solution file in the directory that 
draco had cd'd into.  So I changed my build file to be included in my 
solution files and when my project is checked out the build file is checked 
out into the base directory of my solution.  My solution is three levels 
deep in my source safe structure so my project is checked out as follows:

D:\BuildTools\Draco.NET Service\Source\ProjectName-TempID\Path to my source 
safe project (in this case '$\MOBOT\Tropicos2\Tropicos'.  This is where the 
directory structure for the project is created with both the solution file 
and build file at this level.  I am thinking all is as it should be.  VSS 
checks all the files out, builds the directory structure then NAnt is called 
and here is where it is throwing an error.  The error is: 'The given path's 
format is not supported.'.  I assumed that it would 'cd /d' into the root 
directory for my solution and try to find the build file there and run it.  
This evedently is not the case.  Any help that you may be able to give would 
be greatly appreciated.

Thanks,
John Sheppard
The specific error I get is:
ERROR Draco.Core.Runtime.BuildRunner - Failed to process build 'Tropicos2'.  
The following exception occurred:
System.NotSupportedException: The given path's format is not supported.
  at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, 
Boolean needFullPath)
  at System.Security.Util.StringExpressionSet.AddExpressions(String[] str, 
Boolean checkForDuplicates, Boolean needFullPath)
  at 
System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess 
access, String[] pathListOrig, Boolean checkForDuplicates, Boolean 
needFullPath, Boolean copyPathList)
  at 
System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess 
access, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath)
  at System.IO.Path.GetFullPath(String path)
  at Draco.Core.Tool.NAntBuildTool.Execute(String baseDirectory)
  at Draco.Core.Runtime.BuildRunner.BuildModule(BuildResult results)
  at Draco.Core.Runtime.BuildRunner.Start(BuildType buildType)
Exception: System.NotSupportedException
Message: The given path's format is not supported.
Source: mscorlib
  at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, 
Boolean needFullPath)
  at System.Security.Util.StringExpressionSet.AddExpressions(String[] str, 
Boolean checkForDuplicates, Boolean needFullPath)
  at 
System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess 
access, String[] pathListOrig, Boolean checkForDuplicates, Boolean 
needFullPath, Boolean copyPathList)
  at 
System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess 
access, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath)
  at System.IO.Path.GetFullPath(String path)
  at Draco.Core.Tool.NAntBuildTool.Execute(String baseDirectory)
  at Draco.Core.Runtime.BuildRunner.BuildModule(BuildResult results)
  at Draco.Core.Runtime.BuildRunner.Start(BuildType buildType)


---
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users