J
JP
Ok someone please explain to me why this works in VS 2003 and not VS 2005
I want the C#.NET version number of the DLL that was created for the
specific build of my application. I copied the code from an old C#.NET VS2003
application I wrote years ago.
Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
if (assembly != null)
{
FileVersionInfo verInfo =
FileVersionInfo.GetVersionInfo(assembly.Location);
double majorVersion = verInfo.ProductMajorPart;
double minorVersion = verInfo.ProductMinorPart; ;
int BuildVersion = verInfo.ProductBuildPart;
PageTitle.Text = verInfo.CompanyName + " " + verInfo.ProductName + " (" +
verInfo.ProductVersion.ToString() + ")";
}
In VS2003 this would give me the version number of the DLL in the /bin
folder based on how I had configured the AssemblyInfo.cs. Say for example
[assembly: AssemblyVersion("3.0.*")]
In addtion every build of the VS2003 project would report a new build number
(revision #).
However, in C# VS2005. The version number is always reported as 0.0.0.0. It
appears to be getting the version number from the ASP.NET Temporary cache
folder. I read this has to do with shadowing. All the version numbers for DLL
in the cache are indeed 0.0.0.0
I tried using the following line:
Assembly assembly = System.Reflection.ssembly.Load("App_Code")
And I get a version number, however the build number never changes with each
build. However if I comeback the next day and build again both the minor and
revision numbers do change. I thought these two numbers were based on the
timestamp of the build action. So why do they only change once a day?
I tried putting my AssemblyInfo.cs file in the root of the project but I
cannot do perform an Assembly.Load from the root.
Seems to me this all worked better in VS2003. How in the world do I get the
real version number for my project generated by the Build command in VS 2005.
I have seen some examples that manually alter the assemblyinfo.cs file. But
that seems over complex and unnecessary for info that should be easy to
retrieve
I want the C#.NET version number of the DLL that was created for the
specific build of my application. I copied the code from an old C#.NET VS2003
application I wrote years ago.
Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
if (assembly != null)
{
FileVersionInfo verInfo =
FileVersionInfo.GetVersionInfo(assembly.Location);
double majorVersion = verInfo.ProductMajorPart;
double minorVersion = verInfo.ProductMinorPart; ;
int BuildVersion = verInfo.ProductBuildPart;
PageTitle.Text = verInfo.CompanyName + " " + verInfo.ProductName + " (" +
verInfo.ProductVersion.ToString() + ")";
}
In VS2003 this would give me the version number of the DLL in the /bin
folder based on how I had configured the AssemblyInfo.cs. Say for example
[assembly: AssemblyVersion("3.0.*")]
In addtion every build of the VS2003 project would report a new build number
(revision #).
However, in C# VS2005. The version number is always reported as 0.0.0.0. It
appears to be getting the version number from the ASP.NET Temporary cache
folder. I read this has to do with shadowing. All the version numbers for DLL
in the cache are indeed 0.0.0.0
I tried using the following line:
Assembly assembly = System.Reflection.ssembly.Load("App_Code")
And I get a version number, however the build number never changes with each
build. However if I comeback the next day and build again both the minor and
revision numbers do change. I thought these two numbers were based on the
timestamp of the build action. So why do they only change once a day?
I tried putting my AssemblyInfo.cs file in the root of the project but I
cannot do perform an Assembly.Load from the root.
Seems to me this all worked better in VS2003. How in the world do I get the
real version number for my project generated by the Build command in VS 2005.
I have seen some examples that manually alter the assemblyinfo.cs file. But
that seems over complex and unnecessary for info that should be easy to
retrieve