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 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: > > <rootsourcedir>Source</rootsourcedir> > <pollperiod>600</pollperiod> > <timeoutperiod>3600</timeoutperiod> > <quietperiod>60</quietperiod> > <mailserver>mail.yourdomain.com</mailserver> > <fromaddress>[EMAIL PROTECTED]</fromaddress> > <builds> > <build> > <alwaysbuild>true</alwaysbuild> > <name>Tropicos2</name> > <pollperiod>600</pollperiod> > <quietperiod>600</quietperiod> > <timeoutperiod>600</timeoutperiod> > <notification> > <file> > <dir>d:\BuildTools\AutomatedBuilds\Tropicos</dir> > <create>true</create> > </file> > </notification> > <nant program="D:\BuildTools\nant-0.85-rc1\bin\nant.exe -debug:+"> > <buildfile>master.build</buildfile> > </nant> > <vss> > <project>$/MOBOT/Tropicos2/Tropicos</project> > <username>username</username> > <password>password</password> > <ssdir>\\UNCEncoded path\VSS</ssdir> > </vss> > </build> > </builds> > > 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(FileIOPermissio nA > ccess > access, String[] pathListOrig, Boolean checkForDuplicates, Boolean > needFullPath, Boolean copyPathList) > at > System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAcces s > 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(FileIOPermissio nA > ccess > access, String[] pathListOrig, Boolean checkForDuplicates, Boolean > needFullPath, Boolean copyPathList) > at > System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAcces s > 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
------------------------------------------------------- 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
-------------------------------------------------------
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