Re: [nant-dev] MSBuild

2006-10-25 Thread Mike Roberts
On 25/10/06, Bevan Arps [EMAIL PROTECTED] wrote:

 Hi Eric.

  I don't see much use for NAnt except for legacy stuff.

 For what it's worth, I see a place for both tools.

 In a significant project I'm working on at the moment, we use MSBuild to
 do the actual builds ... But we control it by invoking it from within
 NAnt.

 Our NAnt scripts take care of a much wider range of activities that
 MSBuild doesn't seem to handle nearly as well.


I concur with this. NAnt isn't the best scripting tool on the planet,
but it does a better job at being one than MSBuild. I too wrap MSBuild
(as a compiler) with NAnt.

Mike

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Release 0.85 and beyond

2006-07-14 Thread Mike Roberts
+1 for setting a date (e.g. 1 month from now) for 1.0 final.

I agree with Martin somewhat in that making msbuild support easier is
a big deal, however I think running msbuild.exe is a perfectly decent
way of doing so for 95% of people - we just need to tidy that up a
bit. At the moment I just invoke msbuild.exe from an exec and use
the Xml Log Publisher that comes with CCNet - maybe that could in fact
be rolled into NAnt.

Mike

On 14/07/06, Martin Aliger [EMAIL PROTECTED] wrote:
 Hello,

 agreed - 1.0 soon is a good thing. I see only one big thing which we should
 addess in 1.0: VS2005 projects. Or MSBuild cooperation. The same thing.

 Since many developers are migrating (or already using) framework 2.0 in
 VS2005 and we (currently) do not provide direct tools for projects it uses,
 they could either: use plain msbuild (deserters!) or use core
 tasks-csc,regasm etc (and maintain both .csproj and .build) or (as most of
 them do today) exec msbuild.exe to their .csproj file (and give up project
 dependancy resolution and other solution features)

 As I see it, we could:
 1/ state, that new project files used on VS2005 are unsupported
 2/ write new task which handles it somehow (aka msbuild-solution or
 new-vs2005-solution)
 3/ merge required code into current solution task

 Since msbuild code need to run under 2.0 framework, and NAnt itself should
 run on 1.0/1.1 as well, integration (if 3 will be chosen) have to be done
 carefully. Or could we restrict NAnt to 2.0 framework? I don't thing so...
 Maybe 2 distributions: 1.0 compatible, and 2.0, compiled for 2.0 and with
 additional features?


 Martin Aliger


  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On
  Behalf Of Gary Feldman
  Sent: Friday, July 14, 2006 2:47 AM
  To: nant-developers@lists.sourceforge.net
  Subject: [nant-dev] Release 0.85 and beyond
 
  It's now been almost 6 weeks since rc4 came out.
 
  There are three open bugs filed since then, none of which are
  showstoppers in my opinion.  There are two others closed and
  one deleted.
 
  There are a couple of problems reporting in the mailing list
  since then, some of which seem significant to me.  However,
  basing release decisions on items discussed in the mailing
  lists and not entered into the tracker is a road to chaos.
  It's a hard line, but somebody has got to draw it :-)
 
  My conclusion is that rc4 should be retagged as 0.85 final
  and announced as such.  After that, I think two things need
  to be discussed:
 
 1.  What will constitute 1.0, and what is the roadmap to get to it?
 2.  Is a bug fix build needed before then?
 
  Personally, I think NAnt is in good enough shape to timebox
  requests for features and mandatory fixes in 1.0.  In other
  words, set a deadline of Aug 15 (for example - I don't mean
  to be declaring dates unilaterally) for requests to come in.
  Two weeks later, have a final set of bugs and features
  targeted for 1.0, and a target date for rc1. Obviously show
  stoppers found after the first date can be added to the list;
  that date just raises the bar for consideration.  Ideally,
  I'd like to see 1.0 final by the end of the year, better yet
  by October.
 
  My perspective on this is that releases and release numbers
  are largely a marketing decision, not engineering.  In this
  case, I think it's important to maintain momentum and
  credibility against msbuild.
  Otherwise, the community of users won't grow, and hence the
  community of contributors won't grow.
 
  Gary
 
 
 
 
 
  --
  ---
  Using Tomcat but need to do more? Need to support web
  services, security?
  Get stuff done quickly with pre-integrated technology to make
  your job easier Download IBM WebSphere Application Server
  v.1.0.1 based on Apache Geronimo
  http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057;
  dat=121642
  ___
  nant-developers mailing list
  nant-developers@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/nant-developers
 



 -
 Using Tomcat but need to do more? Need to support web services, security?
 Get stuff done quickly with pre-integrated technology to make your job easier
 Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
 http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
 ___
 nant-developers mailing list
 nant-developers@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/nant-developers



-- 
mike roberts | http://www.mikebroberts.com/


-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere

Re: [nant-dev] property file=filename / ?

2005-04-04 Thread Mike Roberts
On Apr 4, 2005 11:06 AM, Gert Driesen [EMAIL PROTECTED] wrote:

 Recent nightly builds (and the next RC) of NAnt now also support a response
 file (using the @response file command line option), thanks to Ian.

Aha. I think Owen Rogers has been looking at our I/O stuff so he'll
probably be looking at this.

 You can just use an include task for this purpose.  The included project
 (build file) can just contain a project element and a set of properties to
 set in the parent project.

Good idea. Better than the script workaround I was thinking of - thanks!

Mike


---
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://ads.osdn.com/?ad_id=6595alloc_id=14396op=click
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [Ccnet-user] RE: [nant-dev] SVN+latest NAnt in automated environment like CCNe t

2004-11-06 Thread Mike Roberts
It sounds like NAnt is now doing what VS does so that sounds like the
right thing to me.

Files that are *created* (and not editted) by a build process should
be marked as 'ignore', and I believe that should fix the problem
(certainly that works when using CVS). Furthermore, we're used to
automated builds having a 'clean' task - if necessary they could have
a 'teardown' task to remove any temporary artifacts, but I think a
combination of ignored files/directories and just a 'clean' build task
is fine.

Mike

On Fri, 5 Nov 2004 15:41:34 +0100, Nicklas Norling
[EMAIL PROTECTED] wrote:
 To me this is a bug in subversion. One of the most obvious use-cases aren't
 supported; automated builds.
 I'd love to see many of Subversions commands have a --force parameter so
 that
 I didn't have to work around it.
 
 I do howevery think that if a task is supposed to do what VS does, then it
 should
 do so. Otherwise one would have to invent different hacks for different
 compilers.
 Remember that users of VS automatically ends up with these bin and obj
 folders and
 have to deal with them as well.
 
 /Nicke
 
 -Original Message-
 From: Martin Aliger [mailto:[EMAIL PROTECTED]
 Sent: den 5 november 2004 10:40
 To: [EMAIL PROTECTED]; ! nant
 Subject: [nant-dev] SVN+latest NAnt in automated environment like CCNet
 
 Hi all,
 
 just FYI latest NAnt change behaviour of build process little and now
 solution task produce obj folder under project directory. This match
 VS.NET behaviour what is good. What is bad it could broke automated builds!
 
 I notice that when some user want to delete entire project under SVN. Since
 local repository is modified by NAnt build process (new subdir), svn is
 unable to delete project and fail with message
 
 exec program=c:\program files\subversion\bin\svn.exe commandline=update
 --non-interactive ${build.dir}/ External Program Failed: c:\program
 files\subversion\bin\svn.exe (return
 code was 1)
 svn: Won't delete locally modified directory c:/ccnet/foo'
 svn: Left locally modified or unversioned files
 
 Even Revert+Update do not help (revert do not touch unversioned files).
 Deleting all obj folders (what is only solution I see) could be quite
 performance hit for very large projects. And, of course, more work, more
 complex .build script etc. I'd say I liked old behaviour more...
 
 Martin
 
 ---
 This SF.Net email is sponsored by:
 Sybase ASE Linux Express Edition - download now for FREE
 LinuxWorld Reader's Choice Award Winner for best database on Linux.
 http://ads.osdn.com/?ad_id=5588alloc_id=12065op=click
 ___
 Ccnet-user mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/ccnet-user
 


-- 
mike roberts | http://mikeroberts.thoughtworks.net/ |
http://www.thoughtworks.com/


---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588alloc_id=12065op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] BUG: solution task with *.resx (PATCH attached)

2003-08-19 Thread Mike Roberts
I just got latest source from head, and this fails for me. If I comment 
out those two lines, everything works again.

Stuff that may be useful to debug my original failure as follows (Foo's 
replacing my client's name):

--
[solution] Building Foo.Server [debug]...
[copy] Copying 2 files to 
C:\tools\eclipse\workspace\psa\src\Common.Server\bin\Debug\.
[copy] Copying 15 files to 
C:\tools\eclipse\workspace\psa\src\Common.Server\bin\Debug\.
 [compile] error CS1566: Error reading resource file 
'c:\Documents and Settings\mroberts.THOUGHTWORKS\Local 
Settings\Temp\kyetias_\Foo.Server.BaseService.resources' -- 'The system 
cannot find the file specified. '

C:\Documents and Settings\mroberts.THOUGHTWORKS\Local 
Settings\Temp\kyetias_dir
Volume in drive C has no label.
Volume Serial Number is 3CBD-999B

Directory of C:\Documents and Settings\mroberts.THOUGHTWORKS\Local 
Settings\Temp\kyetias_

08/19/2003  05:38 PMDIR  .
08/19/2003  05:38 PMDIR  ..
08/19/2003  05:38 PM 1,454 compile-commands.txt
  1 File(s)  1,454 bytes
  2 Dir(s)  13,689,982,976 bytes free
C:\Documents and Settings\mroberts.THOUGHTWORKS\Local 
Settings\Temp\kyetias_type compile-commands.txt
/target:library
/nologo
/filealign:4096
/define:DEBUG;TRACE
/warn:4
/baseaddress:285212672
/optimize-
/debug+
/incremental-
/checked-
/unsafe-
/warnaserror-
/out:C:\tools\eclipse\workspace\psa\src\Common.Server\bin\Debug\Foo.Common.Server.dll
/r:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Web.dll
/r:C:\tools\eclipse\workspace\psa\src\Microsoft.ApplicationBlocks.Data\bin\Debug\Microsoft.ApplicationBlocks.Data.dll
/r:C:\tools\eclipse\workspace\psa\lib\FooDirAuthMgr.dll
/r:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll
/r:C:\tools\eclipse\workspace\psa\lib\Microsoft.EnterpriseInstrumentation.Schema.dll
/r:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Xml.dll
/r:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll
/r:C:\tools\eclipse\workspace\psa\lib\nunit.framework.dll
/r:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Web.Services.dll
/res:C:\DOCUME~1\MROBER~1.THO\LOCALS~1\Temp\kyetias_\Foo.Server.BaseService.resources
snip

C:\tools\eclipse\workspace\psatype src\Common.Server\Common.Server.csproj
VisualStudioProject
   CSHARP
   ProjectType = Local
   ProductVersion = 7.10.3077
   SchemaVersion = 2.0
   ProjectGuid = {286F8FB6-B313-4E7D-969C-2538496BFBCD}
   
   Build
   Settings
   ApplicationIcon = 
   AssemblyKeyContainerName = 
   AssemblyName = Foo.Common.Server
   AssemblyOriginatorKeyFile = 
   DefaultClientScript = JScript
   DefaultHTMLPageLayout = Grid
   DefaultTargetSchema = IE50
   DelaySign = false
   OutputType = Library
   PreBuildEvent = 
   PostBuildEvent = 
   RootNamespace = Foo.Common.Server
   RunPostBuildEvent = OnBuildSuccess
   StartupObject = 
   
   Config
   Name = Debug
   AllowUnsafeBlocks = false
   BaseAddress = 285212672
   CheckForOverflowUnderflow = false
   ConfigurationOverrideFile = 
   DefineConstants = DEBUG;TRACE
   DocumentationFile = 
   DebugSymbols = true
   FileAlignment = 4096
   IncrementalBuild = false
   NoStdLib = false
   NoWarn = 
   Optimize = false
   OutputPath = bin\Debug\
   RegisterForComInterop = false
   RemoveIntegerChecks = false
   TreatWarningsAsErrors = false
   WarningLevel = 4
   /
   Config
   Name = Release
   AllowUnsafeBlocks = false
   BaseAddress = 285212672
   CheckForOverflowUnderflow = false
   ConfigurationOverrideFile = 
   DefineConstants = TRACE
   DocumentationFile = 
   DebugSymbols = false
   FileAlignment = 4096
   IncrementalBuild = false
   NoStdLib = false
   NoWarn = 
   Optimize = true
   OutputPath = bin\Release\
   RegisterForComInterop = false
   RemoveIntegerChecks = false
   TreatWarningsAsErrors = false
   WarningLevel = 4
   /
   /Settings
   References
   Reference
   Name = System
   AssemblyName = System
   HintPath = 
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll
   /
   Reference
  

[nant-dev] Another solution request

2003-08-12 Thread Mike Roberts
Hi there,

I've hit a problem (bug?) using solution . If it can't find a 
reference, then NAnt throws an internal error, rather than this getting 
reported more nicely. This causes me a problem since Internal Errors 
don't get sent to the logger, and so I don't see the error appear in a 
CruiseControl.NET log (in CCNet we use the Logger to capture NAnt output.)

I think this would be fixed if solution used the csc task internally 
rather calling the csc.exe compiler directly, but that may be too much 
effort.

Cheers,

Mike

--
Mike Roberts
http://mikeroberts.thoughtworks.net/


---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Nightly builds

2003-07-04 Thread Mike Roberts
Clayton

If you want to be able to see the complete log file on the web page then
- make your log directory a sub-folder - the log file would then be at 
(e.g.) http://cc-net.sporadicism.com/log/log20030703154126.xml
- Add an extra page to the webapp that displays the unformatted log 
(I've added this as a CC feature request at 
http://jira.truemesh.com/secure/ViewIssue.jspa?key=CC-49)

Mike

Clayton Harbour wrote:

Hi Bernard,

I am a little new to cruise control so there may be a way to do this out
of the box (anyone have any suggestions?).  If not then I will look at
adding it.  

I hope to work through the following this weekend:

1) Test output displayed on web page
2) (**new**) Build output displayed on web page
3) CCNet running as a service
Until I can get the output from the build displayed however you will
have to build the project locally to see what is breaking.  

I did a build this morning and it seems that there are some xml comments
that are missing which may be the cause.  After that it looks like there
is a problem with the self-test (Object reference not set to an instance
of an object.).
 





---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Nightly builds

2003-06-30 Thread Mike Roberts
At ThoughtWorks we are looking into setting up a (publically viewable) 
server to run CruiseControl .NET instances for (at least) 
CruiseControl.NET itself and for Nunit. I'm hoping to get this up and 
running sometime over the next month, and if successful am happy to 
setup an instance for Nant / NantContrib as well.

Mike

Gert Driesen wrote:

If no one else volunteers, I'll look into it.

On Mon, 2003-06-30 at 21:07, Geurts, James wrote:
 

Hey everyone.  I'm sorry that I have not been able to get this working.  I have been too busy lately and do not see myself having the time to get it working properly any time soon.  If someone would like to take this task over, that would be appreciated.

Jim

---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
   



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0016ave/direct;at.asp_061203_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: [NAntC-Dev] NAntContrib update was ( Updating Nant-Contrib tolatest Nant)

2003-06-28 Thread Mike Roberts
Ian - you're a star - thanks! (and thanks for letting us know before I 
was going and do the same thing for some of the tasks. :) )

re: directory tree / namespaces. My own take is that tasks that have 
binary dependencies outside of NAnt at least at compile time (e.g. 
StarTeam with its interop requirement) should go into an optional 
directory, but that there's no harm in other tasks being merged into the 
main NAnt tree (e.g. I would make GacTask 'Nant.DotNet.Tasks.GacTask' in 
nant/src/NAnt.DotNet/Tasks and StarTeamTask 
'Nant.Optional.SourceControl.Tasks.StarTeamTask in (maybe) 
nant/src/NAnt.Optional/SourceControl/Tasks). If the task help index page 
starts getting cluttered, we can always make it categorized based on 
namespace, and then alphabetical.

In terms of how this is packaged into binaries, I think the main NAnt 
release could be everything apart from NAnt.Optional. The optional tasks 
could be a separate download and if required dropped into Nant/bin as 
normal (yes, its cluttered but will only be there if people need it, and 
it removes the need for sub-directories and multiple paths)

... but both of these things are minor - the fact that a lot of these 
tasks are going into NAnt at all is the main thing so thanks again!

Mike

Ian MacLean wrote:

OK I bit the bullet on this today and copied all the NAntContrib tasks 
to a new NAnt.Optional directory under my nant source tree.
I went thru and fixed all the issues Mike mentiond and then some. 
Nothing too difficult just lots of find and replace. It all compiles 
and the tasks load fine. I'm not going to commit this to the nant tree 
just yet because:

1) I don't think we are quite agreed that we should move all those 
tasks into NAnt ( although I'm starting to lean that way ) and
2) if we do move them I'll get the sf admins to import the .rcs files 
so that we can preserve the history.

what I'll do is post the updated source as a zip tomorrow so that 
people can try it out and test that their favourite nantcontrib tasks 
are still working.

NAnt.OptionalTasks.dll and dependencies weigh in at around 1mb which 
won't make the distribution too much larger. I'm going to propose that 
the optional stuff goes into a subdir of bin. so:
bin\optional

this way there is less clutter in the main bin directory and users 
will be able to  change a taskpath setting in the config file to 
prevent scanning of NAnt.OptionalTasks.dll for tasks if they don't 
want to use it.

so any feedback on the strategy to take - and stay posted for that .zip.

Ian

I am concerned about the friction NAnt users are experiencing trying to
contribute and in general use the NAntContrib tasks:
http://www.iunknown.com/000278.html
I would love to help clean up NAntContrib. I have some recent experience
from updating the StarTeam tasks. I will take a look at the items Mike
listed and see what I can do. If anyone can relay motes of wisdom please
jump in.
Kevin Miller
---
From: Mike Roberts [EMAIL PROTECTED] Updating Nant-Contrib to latest 
Nant   2003-06-25 14:56  I spent a couple of hours looking at 
updating Nant-Contrb last night to

compile against the latest NAnt, and realised its a lot more than 
just changing the namespace hierarchy from Sourceforge.Nant to 
Nant.Core. Other updates since Nant 0.8.2 that effect Nant-Contrib 
include:
- Logging has completely changed
- Log Listeners have disappeared, so FileLogListener and the RecordTask

need to change significantly
- Some classnames have changed (e.g. 'MsftFXSDKExternalProgramBase')
- Some stuff has moved to Nant.Core.Types
- OptionCollection stuff seems to have completely changed
- and more (I think)




In light of this, the fact that I don't know Nant-Contrib very well,
and also that there aren't a significant amount of tests, I'm now 
reluctant

to update the whole of Nant-Contrib. I'm only using the mkiisdir
task, so can just update that locally..
However, I'm going to bold now and give my opinion which the
project leads are more than free to completely disregard. :)
I don't really understand why Nant-Contrib and Nant are 2 separate 
projects. I can see the value in having separation to some extent (e.g.

downloadable binaries, so that users don't have to download a bunch 
of tasks that they don't want), but on the other hand complete 
separation leads to (a) confusion in the user community and (b) the 
kind of situation that currently exists where there are significant 
differences

between the 2 trees. I personally think it would be valuable,
therefore, if the following happened:
1 - As a goal, the Nant-Contrib project should be phased out
2 - All the work (that is going to continue to live on) from 
Nant-Contrib should be (task-by-task) brought into the Nant project, 
maybe under a separate directory called 'optional-tasks'[a]
3 - The Nant buildfile should compile both the NAnt Core, the 
existing extra tasks and the 'optional-tasks' so that the latter of 
these don't get out of sync with changes

[nant-dev] [PATCH] Extending if task with Operating System Version check

2003-06-04 Thread Mike Roberts
Hi,

Here's a patch for the if tasks that allows the conditional of whether 
a script is being run on a specific version of Windows. I haven't added 
tests since it calls straight into the .Net OperatingSystem class (which 
would have to be mocked). This functionality could probably be extended 
something along the lines of 'windowsVersionAtLeast' , checks for 
running on Mono, etc.

I needed to do this to do different things depending on whether I'm 
running on a machine with IIS 5 or 6 (so I needed to check for 'Windows 
Server 2003')

I use Nant every day so thanks to everyone who's contributed code.

Cheers,

Mike

--
Index: IfTask.cs
===
RCS file: /cvsroot/nant/nant/src/NAnt.Core/Tasks/IfTask.cs,v
retrieving revision 1.17
diff -u -r1.17 IfTask.cs
--- IfTask.cs25 May 2003 08:20:25 -1.17
+++ IfTask.cs3 Jun 2003 02:53:09 -
@@ -79,8 +79,29 @@
   ///   /if
   ///   ]]/code
   /// /example
-///
-///
+/// example
+///   paraCheck running on a specific version of Windows/para
+///   code
+///   ![CDATA[
+///   target name=myTarget/
+///   if windowsversion=Windows XP
+/// echo message=Running on Windows XP./
+///   /if
+///   ]]/code
+///   para
+///You can check for the following versions:
+///list type=bullet
+///itemWindows 95/item
+///itemWindows 98/item
+///itemWindows Me/item
+///itemWindows NT 3.51/item
+///itemWindows NT 4.0/item
+///itemWindows 2000 (any version)/item
+///itemWindows XP/item
+///itemWindows Server 2003/item
+////list
+///   /para
+/// /example
   /// para
   /// Note: For dates you probably want to use ifnot/.
   /// That way you can say, if these files aren't uptodate, then 
do this.
@@ -112,6 +133,7 @@
   private string _propNameTrue = null;
   private string _propNameExists = null;
   private string _targetName = null;
+private string _windowsVersion = null;
   private string _uptodateFile = null;
   private FileSet _compareFiles = null;

@@ -177,11 +199,21 @@
   set { _targetName = value; }
   }
-#endregion Public Instance Properties
+/// summary
+/// Used to test whether running on a specific version of windows.
+/// /summary
+[TaskAttribute(windowsversion)]
+public string WindowsVersion {
+get { return _windowsVersion; }
+set { _windowsVersion = value; }
+}
+
+#endregion Public Instance Properties
   #region Protected Instance Properties

-protected virtual bool ConditionsTrue {
+protected virtual bool ConditionsTrue
+{
   get {
   bool ret = true;
@@ -191,6 +223,12 @@
   if (!ret) return false;
   }
+//check Windows Version
+if(_windowsVersion != null)
+{
+return checkWindowsVersion();
+}
+
   //Check for Property existence
   if(_propNameExists != null) {
   ret = ret  (Properties[_propNameExists] != null);
@@ -231,9 +269,78 @@
   #endregion Protected Instance Properties

+private bool checkWindowsVersion()
+{
+// Largely Copied from MSDN Library - 
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/enu_kbvcsharpnetkb/vcsharpnetkb/304283.htm 

+// Get OperatingSystem information from the system namespace.
+System.OperatingSystem osInfo = System.Environment.OSVersion;
+ +// Determine the platform.
+switch(osInfo.Platform)
+{
+// Platform is Windows 95, Windows 98,
+// Windows 98 Second Edition, or Windows Me.
+case System.PlatformID.Win32Windows:
+ +switch (osInfo.Version.Minor)
+{
+case 0:
+if 
(_windowsVersion.Trim().ToLower().Equals(windows 95))
+return true;
+break;
+case 10:
+if 
(_windowsVersion.Trim().ToLower().Equals(windows 98))
+return true;
+break;
+case  90:
+if 
(_windowsVersion.Trim().ToLower().Equals(windows me))
+return true;
+break;
+}
+break;
+ +// Platform is Windows NT 3.51, Windows 
NT 4.0, Windows 2000,
+// or Windows XP.
+case System.PlatformID.Win32NT:
+
+switch(osInfo.Version.Major)
+{
+case 3:
+