Richter's "Applied Microsoft .NET Programming" has a good explanation of
these issues.

Version Shape:  Major.Minor.Build.Revision

An assembly has the following versions: (attribute name / C# compiler
switch)

1.  assembly:AssemblyInformationalVersion / PRODUCTVERSION
    - Also stored in version resource
    - CLR doesn't care about it
    - Should be tied to the version of the product the assembly belongs to
    - Major and Minor parts are set manually and the build and revision
      are set each time you "package" the application.
    - used to determine which product the assembly belongs to.

2.  assembly:AssemblyFileVersion / FILEVERSION
    - Stored in the version resource
    - CLR doesn't care about it
    - Visible via Explorer
    - Not incremented automatically by builds but should be
    - used to answer when this file was built

3.  assembly:AssemblyVersion / VERSION
    - stored in the assembly manifest
    - CLR cares about this version
    - used to uniquely identify assembly via string name
    - set major, minor build and revision manually and don't
      change them until you start developing the next
      "deployable: version.  Otherwise any other assembly binding
      to yours will fail when you rebuild.

The C# compiler and AL.exe increment #3 automatically but shouldn't.  You
MUST change the AssemblyVersion attribute in AssemblyInfo.cs from "1.0.*" to
something like "1.0.0.0" where all components of the version are specified.


Jim


> -----Original Message-----
> From: Blain Timberlake [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, April 24, 2002 8:30 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] Super stupid version question...
>
>
> Interesting.  Not sure that quite makes sense in my mind either.  I
> think I would consider that a bug as well.  What is the purpose behind
> provide a unique version # that is a function of time, if you aren't
> updating a project's version # at each build?
>
> =Blain
>
> -----Original Message-----
> From: dotnet discussion [mailto:[EMAIL PROTECTED]]
> On Behalf Of
> Don McNamara
> Sent: Wednesday, April 24, 2002 8:20 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] Super stupid version question...
>
> Rory,
>
> I was having the same problem.  I personally would consider it a bug,
> but I
> did find this...
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-
> us/dnbda/h
> tml/tdlg_ch5.asp
>
> If you read down a little, it says:
> For a Microsoft Visual BasicR .NET project with an AssemblyVersion set
> to "1.0.*", the assembly version is only updated the first time the
> project is
> rebuilt within the Visual Studio .NET integrated development
> environment
> (IDE). The version number remains constant for subsequent rebuilds
> within the
>  same instance of Visual Studio .NET. This does not represent
> a problem
> because the assembly version is for information only in
> assemblies that
> do not
>  have a strong name. For strong named assemblies, you should avoid the
> use of wild characters in the AssemblyVersion attribute, as
> explained in
> the
> following section.
> For C# projects with an AssemblyVersion set to "1.0.*", the assembly
> version is updated every time the project is rebuilt.
>
> Also, if you build from the command line, it updates the
> version number.
>
> Good luck.
>
>
>
>
>
> From: "Mackay, Scott" <[EMAIL PROTECTED]> on
> 04/24/2002 08:11 AM
>
> Please respond to dotnet discussion <[EMAIL PROTECTED]>
>
> To:   [EMAIL PROTECTED]
>
> cc:
>
>
> Subject:  Re: [DOTNET] Super stupid version question...
>
> If you are using Visual Studio.NET, under the project
> properties dialog
> there is an option (in 'Configuration Properties/Advanced') called
> Incremental build.
>
> Hope this helps.
>
> Scott.
>
>
> -----Original Message-----
> From: Rory Becker [mailto:[EMAIL PROTECTED]]
> Sent: 24 April 2002 12:39
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] Super stupid version question...
>
> AssemblyInfo.vb is definitely in the project. (I assume that this will
> be enough to get it compiled into the exe.
> And the following line is the last in AssemblyInfo.vb
>
> <Assembly: AssemblyVersion("1.0.*")>
>
> As a test, I created a new VB.Net Windows Application Project.
> I compiled this and checked the product file and Assembly Versions in
> Explorer. The value was 1.0.844.20393.
>
> Then I compiled it again ..... Same value
>
> Then I changed the code to add a button to the form and a
> messagebox("somethingOrOther").
>
> Then I compiled it again ..... Same value
>
> Something is definitely wrong. No?
>
> Rory
>
> >Only two ways I know of.
> >One is, the file with your assembly properties isn't being compiled
> into
> >your project (AssemblyInfo.cs or AssemblyInfo.vb, if you use the
> wizards).
> >The other is, if you don't have "a.b.*" in your AssemblyVersion
> property.
>
>
> >Brad
>
>
>
>
>
>
>
>
> You can read messages from the DOTNET archive, unsubscribe
> from DOTNET,
> or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>
> You can read messages from the DOTNET archive, unsubscribe
> from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to