OK... so what am I doing wrong... I get the following error: C:\nant\qa.build(22,3): Function call failed. Expression: ${script::get-file-version('\\devevolution\C$\DailyBuild\bin\Geac.Fi nancials.Business.dll')} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ \\devevolution\C$\DailyBuild\bin\Geac.Financials.Business.dll
I tried it with an without escaping the back slashes. Here is the relevant portion from my build file: <property name="sys.version" value="${script::get-file-version('\\devevolution\C$\DailyBuild\bin\Geac .Financials.Business.dll')}" /> <!-- Get Version --> <script language="C#" prefix="script"> <code><![CDATA[ [Function("get-file-version")] public string GetFileVersion( string file ) { System.Diagnostics.FileVersionInfo myFileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(file); return myFileVersionInfo.FileVersion; } ]]></code> </script> -----Original Message----- From: Ian MacLean [mailto:[EMAIL PROTECTED] Sent: Friday, April 30, 2004 12:50 PM To: Ian MacLean Cc: Price, Henry; Bob Archer; [EMAIL PROTECTED] Subject: Re: [Nant-users] get version from dll? actually you can set the properties from the function as well. Like: <script language="C#" prefix="script" > <code><![CDATA[ [Function("get-file-version")] public string GetFileVersion( string file, bool setProperties ) { System.Diagnostics.FileVersionInfo myFileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(file); if ( setProperties ) { Project.Properties["dll.majorversion"] = myFileVersionInfo.FileMajorPart.ToString(); Project.Properties["dll.minorversion"] = myFileVersionInfo.FileMinorPart.ToString(); Project.Properties["dll.buildversion"] = myFileVersionInfo.FileBuildPart.ToString(); Project.Properties["dll.privateversion"] = myFileVersionInfo.FilePrivatePart.ToString(); } return myFileVersionInfo.FileVersion; } ]]></code> </script> the advantage of a custom function over a block of script in a target is that you only have to define it once and can then call it for each file you need version info for. Ian Ian MacLean wrote: > This is nice. Better than my assembly specific version. > > Note that if you are using a current nightly you can wrap your > diagnostics code in a custom function definition like: > > <code><![CDATA[ [Function("get-file-version")] > public string GetFileVersion( string file ) { > System.Diagnostics.FileVersionInfo > myFileVersionInfo = > System.Diagnostics.FileVersionInfo.GetVersionInfo(file); > return myFileVersionInfo.FileVersion; > } > ]]></code> > </script> > and then call it like: > > <property name="fileversion" > value="script::get-file-version('somefile.dll')" /> > > of course if you need to set properties to the individual version > components then a custom task is a better option. > > Bob, > You should be able to drop the above code into your build file if all > you need is the file version as a string. > > Ian > > > Price, Henry wrote: > >> How about something like this? (off the top of my head and without >> intellisense :) >> >> We've done something similar here - for checking which versions of >> files are >> installed etc - had to do it all in script - I've given up on writing >> custom >> tasks, they take too long to edit when you need to change stuff :) >> >> <script language="C#"> >> <code><![CDATA[ >> public static void ScriptMain(Project project) >> { >> System.Diagnostics.FileVersionInfo myFileVersionInfo = >> System.Diagnostics.FileVersionInfo.GetVersionInfo("path to your dll"); >> project.Properties["dll.majorversion"] = >> myFileVersionInfo.FileMajorPart; >> project.Properties["dll.minorversion"] = >> myFileVersionInfo.FileMinorPart; >> project.Properties["dll.buildversion"] = >> myFileVersionInfo.FileBuildPart; >> project.Properties["dll.privateversion"] = >> myFileVersionInfo.FilePrivatePart; >> ]]></code> >> </script> >> >> -----Original Message----- >> From: Bob Archer [mailto:[EMAIL PROTECTED] Sent: 30 April 2004 4:21P >> To: [EMAIL PROTECTED] >> Subject: [Nant-users] get version from dll? >> >> >> >> Hi All, >> >> >> >> I am creating a build script that deploys our last successful daily >> build to >> our QA machine. >> >> >> How could I get the version/build number from a dll? Any ideas? I >> could get >> the last build number from the build number file that my version task >> uses, >> however, if that build failed it will not be the one in the daily build >> area. >> >> >> >> Thanks, >> >> Bob >> >> >> >> >> >> "This communication is intended solely for the addressee and is >> confidential and not for third party unauthorised distribution." >> >> >> >> > > -- Ian MacLean, Developer, ActiveState, a division of Sophos http://www.ActiveState.com ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id149&alloc_id66&op=click _______________________________________________ Nant-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-users