Re: [nant-dev] MSBuild
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
+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 / ?
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
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)
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
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
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
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)
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
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: +