c# - WPF 项目中的语义版本控制

标签 c# wpf semantic-versioning

我们开始对我们的一些项目使用语义版本控制,并正在努力将其合并到 .NET 世界中。语义版本控制似乎使用 3 位数字,即主要次要补丁。 .NET 中的 WPF 项目使用 4 位数字。

当使用Assembly.GetExecutingAssembly().GetName().Version属性打印版本时,程序显然会返回4位数字,而我们只需要3位。有什么方法可以实现这一点吗?我们希望在我们的项目中支持语义版本控制。我尝试只删除程序集信息中的第四位数字,尽管它确实允许我删除它,但Version属性将始终打印该第四位数字。我能做什么?

最佳答案

我在我的 WPF 应用程序中使用此方法(尽管它用于文件版本而不是程序集版本 - 我在我的小项目中始终使用这些相同的方法):

public static string ReturnApplicationVersion()
{
    System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
    FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
    string versionMajor = fvi.ProductMajorPart.ToString();
    string versionMinor = fvi.ProductMinorPart.ToString();
    string versionBuild = fvi.ProductBuildPart.ToString();
    string versionPrivate = fvi.ProductPrivatePart.ToString();

    string fVersion = fvi.FileVersion;
    return versionMajor + "." + versionMinor + "." + versionBuild + "." + versionPrivate;
}

您可以轻松修改它以仅返回 3 个数字。如果您绝对需要程序集版本而不是文件版本,那么也许其他人可以提供帮助。

关于c# - WPF 项目中的语义版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40913188/

相关文章:

c# - 枚举多次的 .Net 方法应该接受哪种类型的集合作为参数?

WPF MVVM 数据绑定(bind)

node.js - package.json 中的波浪号(~)和插入符号(^)有什么区别?

c# - 如何从后台代码动态生成 ListView 和 DataPager?

c# - 如何在多个子类上返回不同的类型?

c# - 在远程 powershell session 期间复制文件 c# runspace

wpf - 为什么我的 StackPanel 的背景颜色没有拉伸(stretch)以填充整个宽度?

wpf - 中继命令未在菜单项单击时触发

node.js - package.json 中的波浪号 (~) 和插入符号 (^) 有什么区别?

semantic-versioning - 对于非 API 软件,是否有与语义版本控制等效的方案?