Solved

Setting Version and Date Information - Syntax help needed.

Posted on 2006-07-21
13
254 Views
Last Modified: 2012-06-27
Friends,

I have the following code:

Imports System.IO.FileInfo

Public Class VersionInformation
    Inherits System.Windows.Forms.Form


    Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click

    End Sub

    Private Sub VersionInformation_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim myAssemblyPath As String
        Dim a As Reflection.Assembly = _
        System.Reflection.Assembly.GetExecutingAssembly()
        myAssemblyPath = _
        a.Location.Substring(0, InStrRev(a.Location, "\"))

        Dim fileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location ) <--------- I'm getting an error, Assembly - Expression expected

        lblVersion.Text= System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location) <--------- I'm getting an error, Assembly - Expression expected
        lblDate.text = <---------- What does I need to put here to get the Date Modified?
    End Sub
End Class

This code was given to me by another poster, but I'm not sure how to tie it all together, and I'm in a hurry for a response.

Thanks in advance!
Best Regards,
Eric
0
Comment
Question by:indy500fan
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 5
  • 2
13 Comments
 
LVL 24

Expert Comment

by:Justin_W
ID: 17155735
Assembly.GetExecutingAssembly().Location can return different types of values depending on whether the assembly is in the GAC or not, etc.

What is the actual value returned by "Assembly.GetExecutingAssembly().Location" when the error occurs?
0
 

Author Comment

by:indy500fan
ID: 17155748
??? I can't tell you that, because this won't even compile as it is.  By the way, what is GAC?
0
 
LVL 35

Expert Comment

by:YZlat
ID: 17155758

GAC is Global Assembly Cache. If more than one application on your machine is using the same component, you can palce that component to GAC
0
Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

 
LVL 35

Expert Comment

by:YZlat
ID: 17155771

one of the benefits of doing that is that if you make a change to that component, you won't need to go into every application that uses the component and replace the local copy with an updated version. Using GAC saves you from "DLL Hell" we had in VB6
0
 

Author Comment

by:indy500fan
ID: 17155794
From what is described here: I don't think I have multiple apps using this component.  This all seems very complicated (compounded by my stupidity)

This form is a part of a simple exe.  Is there an easier way to find out the file version and date of the exe so that I can display them in an about form?
0
 
LVL 24

Accepted Solution

by:
Justin_W earned 500 total points
ID: 17155810
Oh, a compilation error, not a runtime error.

Use this:

Imports System.IO
Imports System
Imports System.Reflection

Public Class VersionInformation
    Inherits System.Windows.Forms.Form

    Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click

    End Sub

    Private Sub VersionInformation_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim myAssemblyPath As String
        Dim a As Reflection.Assembly = _
        System.Reflection.Assembly.GetExecutingAssembly()
        myAssemblyPath = _
        a.Location.Substring(0, InStrRev(a.Location, "\"))

        Dim fi As System.IO.FileInfo = New FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location)

        lblVersion.Text = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location)
        lblDate.text = fi.LastWriteTime.ToString()
    End Sub
End Class
0
 

Author Comment

by:indy500fan
ID: 17155848
Justin,

Yeah, sorry I didn't specify the type of error earlier.

It's now giving me another compliation error:

Value of type 'System.Diagnostics.FileVersionInfo' cannot be converted to 'String'.
0
 
LVL 24

Expert Comment

by:Justin_W
ID: 17155905
lblVersion.Text = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString()
0
 

Author Comment

by:indy500fan
ID: 17155934
Justin,

You have gotten me closer than anyone else today, but this code gives me The exact path to the exe, not the file version number?

Am I driving you nuts yet?

Thanks,
Eric
0
 

Author Comment

by:indy500fan
ID: 17155964
Ah, I just realized, it actually gave me all the information. I didn't have a lbl box that was "tall enough"

I'm going to ask in another question a way to limit it to just the version number.

Thanks for your help!
0
 
LVL 24

Expert Comment

by:Justin_W
ID: 17155971
Imports System.IO
Imports System
Imports System.Reflection

Public Class VersionInformation
    Inherits System.Windows.Forms.Form

    Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click

    End Sub

    Private Sub VersionInformation_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim myAssemblyPath As String
        Dim a As Reflection.Assembly = _
        System.Reflection.Assembly.GetExecutingAssembly()
        myAssemblyPath = _
        a.Location.Substring(0, InStrRev(a.Location, "\"))

        Dim fi As System.IO.FileInfo = New FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location)

        Dim loc As String = System.Reflection.Assembly.GetExecutingAssembly().Location
        lblVersion.Text = System.Diagnostics.FileVersionInfo.GetVersionInfo(loc).FileVersion
        lblDate.text = fi.LastWriteTime.ToString()
    End Sub
End Class
0
 

Author Comment

by:indy500fan
ID: 17155990
Dude,

You rock!

Thank you VERY MUCH!!!

Eric
0
 
LVL 24

Expert Comment

by:Justin_W
ID: 17155994
You're welcome!
0

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

691 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