Windows应用版本管理:变量位置、递增保障及格式正确性问询
问题解答
1. 变量appVersion的定义位置
这个变量可以定义在任何需要使用版本号的代码位置,只要当前上下文能访问Windows.ApplicationModel.Package.Current(仅支持UWP、WinUI 3等基于Windows应用模型的项目):
- 比如放在页面构造函数中,初始化界面时显示版本号:
public MainPage() { this.InitializeComponent(); string appVersion = string.Format("Version: {0}.{1}.{2}.{3}", Windows.ApplicationModel.Package.Current.Id.Version.Major, Windows.ApplicationModel.Package.Current.Id.Version.Minor, Windows.ApplicationModel.Package.Current.Id.Version.Build, Windows.ApplicationModel.Package.Current.Id.Version.Revision); VersionTextBlock.Text = appVersion; }
- 也可以定义为类的静态字段/属性,方便全局调用:
public static class AppInfo { public static string AppVersion => string.Format("Version: {0}.{1}.{2}.{3}", Windows.ApplicationModel.Package.Current.Id.Version.Major, Windows.ApplicationModel.Package.Current.Id.Version.Minor, Windows.ApplicationModel.Package.Current.Id.Version.Build, Windows.ApplicationModel.Package.Current.Id.Version.Revision); }
2. 确保发布时版本号自动递增
有两种常用实现方式:
手动配置(简单直接)
打开项目的Package.appxmanifest文件,切换到「打包」选项卡,手动修改「版本」字段的四个数字段(主版本、次版本、内部版本、修订版本),每次发布前更新对应数值。
自动递增(适配持续发布场景)
- 通过项目文件配置自动版本:编辑项目的
.csproj文件,添加或修改版本配置,使用通配符让内部版本号自动递增:
<PropertyGroup> <!-- 主版本.次版本.* 会让Build自动递增,Revision固定为0 --> <Version>1.0.*</Version> </PropertyGroup>
- CI/CD流程自动更新:在Azure DevOps、GitHub Actions等CI工具中,添加步骤读取当前包版本号,自动递增指定字段(比如Build或Revision),再将新版本号写入
Package.appxmanifest或项目文件,随后执行发布流程。
3. 当前版本获取格式是否正确
这个格式是完全正确的。Windows应用包的版本号本身由Major.Minor.Build.Revision四个数字段组成,你的代码准确读取了这四个字段并拼接成标准的版本字符串格式,输出结果符合Windows应用版本的通用展示习惯。
内容的提问来源于stack exchange,提问作者G.Medina
相关产品推荐
相关产品推荐

