Link to home
Start Free TrialLog in
Avatar of indy500fan
indy500fan

asked on

Setting Version and Date Information - Syntax help needed.

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
Avatar of Justin_W
Justin_W

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?
Avatar of indy500fan

ASKER

??? I can't tell you that, because this won't even compile as it is.  By the way, what is GAC?
Avatar of YZlat

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

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
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?
ASKER CERTIFIED SOLUTION
Avatar of Justin_W
Justin_W

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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'.
lblVersion.Text = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString()
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
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!
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
Dude,

You rock!

Thank you VERY MUCH!!!

Eric
You're welcome!