我正在使用在我的应用程序部署中使用每个发布自动增加修订
与AssemblyInfo.cs
结合使用:
[assembly: AssemblyVersion( "2.0.0.*" )]
[assembly: AssemblyFileVersion( "2.0.0.0" )]
我希望使用以下方式向用户显示当前版本的软件:
protected void InitializeVersionInfo()
{
Assembly a = Assembly.GetExecutingAssembly();
Version v = System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed
? System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion
: Assembly.GetExecutingAssembly().GetName().Version;
string version = String.Format( System.Globalization.CultureInfo.InvariantCulture,
@"Tool - Version {0}.{1}.{2} (r{3})", v.Major, v.Minor, v.Build, v.Revision );
VersionLabel.Text = version;
}
但是我得到了不同的版本号:
我做错了什么或我错过了什么?
如何让软件显示2.0.0.12
?
答案 0 :(得分:2)
在发布选项卡上指定的版本是“包版本”。此版本字符串将嵌入包清单文件中。
AssemblyInfo.cs中指定的版本是程序集版本。在打包程序集之前,此版本在编译时嵌入到程序集中。 “*”在每个构建版本上启用版本自动增量(甚至构建将永远不会发布)。此版本与包版本无关。
如果您需要软件包版本以匹配程序集版本,则必须手动同步它们(即在发布之前将特定的非通配符版本同时发布到Publish设置和AssemblyInfo.cs。)
此外,您只需在Assembly Version上显示Package Version:
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
VersionLabel.Text = System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
}
答案 1 :(得分:2)
您正在使用Automatically increment revision
功能。
[assembly: AssemblyVersion( "2.0.0.*" )]
每次随机构建应用程序时,注意*都会递增。
如果您需要特定版本,请不要使用自动增加功能。即手动更新
[assembly: AssemblyVersion( "2.0.0.12" )]
不要忘记关闭自动增加功能