VB.NET, project build date and version

I wrote a project in VS 2k2 and we have since upgraded to 2k3.  I opened the project in 2k3, converted it to 2k3, and have been working on it.  One theing that has never worked was the versioning of the software.

How do I get the version to change each time I build (and how do I build it the right waty to make it keep doing that).

As a fix, we added in a way to view the date of the build...but so far it is just printing out a static date that I have to hard code in.  How would I go about creating a few lines of code to get the build date of the project upon execution for display?  How would I do this with the version as well?

Also, in my setup project, I have detect newer instal to true and remove previous version true, but it does not do either of these.  How do I get this to work?

Thank you
Majin Loki
LVL 4
MajinLokiAsked:
Who is Participating?
 
pillbug22Commented:
SO right now, the version doesn't change, but you want it to?

then in the assembly.vb file, find the

<Assembly: AssemblyVersion...>

line and make sure there is an * in the place of the number you want to increment automatically. i.e.:

<Assembly: AssemblyVersion("1.0.0.*")>

will make the version always start with 1.0.0, then the last number will increment with each build.



For grabbing the current file and getting the lst time it was modified, you can do something like:
(Imports System.IO)

        ' Application.ExecutablePath points to the folder where the app was started from
        Dim fFile As New FileInfo(Application.ExecutablePath & "<your EXE name")
        Dim sTime As String = fFile.LastWriteTime.ToString
0
 
pillbug22Commented:
For the version, look in the AssemblyInfo.vb file. There will be a line with (default entry):

<Assembly: AssemblyVersion("1.0.0.*")>

Take off the * and replace with your numbers to control the version. So, if you wanted version 2.1, then you would have:

<Assembly: AssemblyVersion("2.1")>
0
 
pillbug22Commented:
Just thought about it - for detecting the build date, you can put a routine in your code that is based on System.IO - basically grab the current application file and check the .DateCreated or .DateModified property on the file.
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
pillbug22Commented:
To print the version to the screen:

lblVersion.Text = "Version " & Application.ProductVersion
0
 
MajinLokiAuthor Commented:
The version does not change with each build...so the version is always incorrect.
0
 
MajinLokiAuthor Commented:
How do I go about grabbing the current app file when it could be installed anywhere without prompting the user to pick the file?
0
 
MajinLokiAuthor Commented:
I have this line
<Assembly: AssemblyVersion("1.0.0.*")>

but it doesn't seem to update.  When I create a new install, it will not remove the previous version, even with that feature set to true.

basically what I want it to do is, for each install/build that we put out, the new one can just be run and will replace the old one.  I would like it to do this automatically.

the last time modified will be a great help.  Thank you.

Loki
0
 
pillbug22Commented:
I've never gotten the Remove Previous Version option to work with the install package. I've heard that all it does it flag the .msi file with those options, but must have a different installer package (like form InstallShield or Wise) to actually use those options.
0
 
MajinLokiAuthor Commented:
I tried to use the code you gave me and Application.ExecutablePath is giving me an error.

Name 'Application' is not declared.
0
 
MajinLokiAuthor Commented:
*lol*  now this is funny...I'm getting a bogus time and date.

12/31/1600 6:00:00 PM
0
 
MajinLokiAuthor Commented:
Oh, duh.  I think I have it figured out....I'm trying to test it in VS...but to correctly test it I will have to install the program on my machine.
0
 
MajinLokiAuthor Commented:
nope, I was wrong.  Still getting the bogus date.
0
 
MajinLokiAuthor Commented:
I got it.

Dim fFile As New FileInfo(Application.ExecutablePath & "<your EXE name")

needed to be

Dim fFile As New System.IO.FileInfo(System.Windows.Forms.Application.ExecutablePath)

Thanks!
0
 
pillbug22Commented:
Or add System.IO as an Imports at the top of your code file.

(as per origonal code suggestion  :-)   )
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.