自动更新版本号
我想为每个构建增加应用程序的版本属性,但我不确定如何在Visual Studio(2005/2008)中启用此功能。 我试图将AssemblyVersion指定为1.0 *,但它并不能完全满足我的要求。
我也在使用一个设置文件,而在之前的尝试中,当程序集版本更改我的设置时,由于应用程序在另一个目录中查找设置文件而重置为默认设置。
我希望能够以1.1.38的形式显示版本号,因此当用户发现问题时,我可以记录他们正在使用的版本,并告诉他们如果他们有旧版本,就升级。
对版本工作如何的简短解释也将被赞赏。 构建版本和修订版本号什么时候增加?
使用“内置”的东西,你不能,因为使用1.0。*或1.0.0。*将取代修订和编号与日期/时间戳,这通常也是一个好方法。
有关更多信息,请参阅/ v标签中的汇编链接器文档。
至于自动递增数字,请使用AssemblyInfo任务:
AssemblyInfo任务
这可以配置为自动增加内部版本号。
有2个问题:
检索版本号非常简单:
Version v = Assembly.GetExecutingAssembly().GetName().Version;
string About = string.Format(CultureInfo.InvariantCulture, @"YourApp Version {0}.{1}.{2} (r{3})", v.Major, v.Minor, v.Build, v.Revision);
并澄清:在.net或至少在C#中,构建实际上是第三个数字,而不是第四个,因为有些人(例如习惯于Major.Minor.Release.Build的Delphi开发人员)可能会期望。
在.net中,它是Major.Minor.Build.Revision。
VS.NET默认Assembly版本为1.0。*,并在自动递增时使用以下逻辑:它将构建部分设置为自2000年1月1日以来的天数,并将修订部分设置为自午夜以来的秒数,当地时间除以2。 请参阅此MSDN文章。
程序集版本位于assemblyinfo.vb或assemblyinfo.cs文件中。 从文件中:
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
我发现只要在需要产品版本的地方显示上一次构建的日期,就可以使用以下方法:
System.IO.File.GetLastWriteTime(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString("yyyy.MM.dd.HH.mm.ss")
而不是尝试从以下类似的东西获取版本:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
object[] attributes = assembly.GetCustomAttributes(typeof(System.Reflection.AssemblyFileVersionAttribute), false);
object attribute = null;
if (attributes.Length > 0)
{
attribute = attributes[0] as System.Reflection.AssemblyFileVersionAttribute;
}
链接地址: http://www.djcxy.com/p/86109.html