Solved

VB.NET, project build date and version

Posted on 2004-08-17
15
1,526 Views
Last Modified: 2008-01-09
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
0
Comment
Question by:MajinLoki
  • 8
  • 7
15 Comments
 
LVL 6

Expert Comment

by:pillbug22
Comment Utility
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
 
LVL 6

Expert Comment

by:pillbug22
Comment Utility
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
 
LVL 6

Expert Comment

by:pillbug22
Comment Utility
To print the version to the screen:

lblVersion.Text = "Version " & Application.ProductVersion
0
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
The version does not change with each build...so the version is always incorrect.
0
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
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
 
LVL 6

Accepted Solution

by:
pillbug22 earned 125 total points
Comment Utility
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
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 6

Expert Comment

by:pillbug22
Comment Utility
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
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
I tried to use the code you gave me and Application.ExecutablePath is giving me an error.

Name 'Application' is not declared.
0
 
LVL 6

Expert Comment

by:pillbug22
Comment Utility
0
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
*lol*  now this is funny...I'm getting a bogus time and date.

12/31/1600 6:00:00 PM
0
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
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
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
nope, I was wrong.  Still getting the bogus date.
0
 
LVL 4

Author Comment

by:MajinLoki
Comment Utility
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
 
LVL 6

Expert Comment

by:pillbug22
Comment Utility
Or add System.IO as an Imports at the top of your code file.

(as per origonal code suggestion  :-)   )
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
I think the Typed DataTable and Typed DataSet are very good options when working with data, but I don't like auto-generated code. First, I create an Abstract Class for my DataTables Common Code.  This class Inherits from DataTable. Also, it can …
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now