>....in the form <major>.<minor>.<yyyy>.<mmdd>.  Today's build of my
product is "1.0.2005.125".

So it that 25th January or (will it be) 5th December? :-)

-----Original Message-----
From: Unmoderated discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Shawn A. Van
Ness
Sent: 25 January 2005 17:25
To: [email protected]
Subject: Re: [ADVANCED-DOTNET] Determing time when a assembly was built


> Don't you just love it when you get answers explaining exactly how to 
> do the two things you specifically said you didn't want to do?  :-)

D'oh!  Sorry, I missed that bullet item on the requirements list...

What I do, in reality, is some combination of my advice and Ian's: I
encode the build date into my version bits, but I don't use the "*"
syntax.  I have a little codegen tool which spits out human-readable
versions in the form <major>.<minor>.<yyyy>.<mmdd>.  Today's build of my
product is "1.0.2005.125".

I posted my My X-Code (think: early predecessor to CodeSmith) template
here...  scroll down past the rant about when/why/how version numbers
s/b incremented:
http://weblogs.asp.net/savanness/archive/2003/09/17/27906.aspx

If you want higher fidelity -- the time, not just the date, then I
recommend taking a look at the [AssemblyInformationalVersion]
attribute:

http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemReflection
AssemblyInformationalVersionAttributeClassTopic.asp

Unfortunately, I don't think this attribute shows up in the unmanaged
versioninfo resource (which the shell displays in its property-page). -S


On Tue, 25 Jan 2005 12:21:28 -0000, Ian Griffiths
<[EMAIL PROTECTED]> wrote:
> Don't you just love it when you get answers explaining exactly how to 
> do the two things you specifically said you didn't want to do?  :-)
> 
> Vladimir's solution works, and meets your requirements, but has the 
> unfortunate downside that you end up with a multi-module assembly, 
> which is less convenient than a normal one-file assembly.
> 
> What I'd do is add a pre-build step that generates a C# source file 
> containing the information you require.
> 
> Here's a particularly low-tech solution.  I added this as a prebuild
> event:
> 
> echo public class BuildTime { public const string Time = "%TIME%"; 
> public const string Date = "%DATE%"; } > $(ProjectDir)Timestamp.cs
> 
> I then added Timestamp.cs to my project.
> 
> This seems to work with one tiny problem - the date format will be 
> determined by the locale of the build machine.  Because my machine is 
> configured to know that it's in the UK, I get properly formatted 
> dates, where the day precedes the months.  (DD/MM/YYYY)  If however 
> you were to run it on an American machine, you would get the curious 
> and inexplicable MM/DD/YYYY format instead.  :-)
> 
> Depending on what you wanted to do with this information, that's 
> either not a problem, or a big problem...  If you need to control the 
> format independently of the build machine locale, then maybe writing a

> program to spit out the source code would be better than just using 
> ECHO...
> 
> --
> Ian Griffiths
> DevelopMentor
> 
> 
> > -----Original Message-----
> > From: Raj Malli
> >
> > Hi guys
> >
> > Is there a way by which I can programmatically determine the build
> time of
> > an assembly? I would like to show the following information in the
> "About"
> > box of my application: Application Name, Version and Build Time.
> >
> > I do not want to do the following:
> >   - Use the last two parts of the assembly version to encode the
time
> >   - Get the last modified time from the assembly file using (say)
the
> >     FileInfo class
> >
> > In C/C++, this is how I'd have done this:
> >   #define BUILD_TIME __TIME__
> >   void OnAbout() {
> >      ...
> >      MessageBox(BUILD_TIME);
> >      ...
> >   }
> > I know C# supports a preprocessor. Can I do something similar to the
> above
> > in C#? Otherwise what other options do I have?
> 
> ===================================
> This list is hosted by DevelopMentor(r)  http://www.develop.com
> 
> View archives and manage your subscription(s) at 
> http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor�  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to