【问题标题】:Semantic versioning in WPF projectsWPF 项目中的语义版本控制
【发布时间】:2017-04-16 05:47:47
【问题描述】:

我们在这里的一些项目中开始使用语义版本控制,并且正在努力将其整合到 .NET 世界中。语义版本控制似乎使用 3 位数字,majorminorpatch。 .NET 中的 WPF 项目使用 4 位数字。

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

【问题讨论】:

    标签: c# wpf semantic-versioning


    【解决方案1】:

    我在我的 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 个数字。如果您绝对必须拥有程序集版本而不是文件版本,那么也许其他人可以提供帮助。

    【讨论】:

      【解决方案2】:

      根据MSDN,.NET 中版本控制的工作方式是Major.Minor.Build.Revision。您可以在不定义修订的情况下执行此操作,但请注意,在 C# 中,如果未定义修订,Version#Revision 将返回 -1。如果您使用的是 .NET Framework,则可能值得遵循其语义版本控制原则。

      【讨论】:

        猜你喜欢
        • 2014-01-14
        • 2018-08-08
        • 2012-08-30
        • 2021-03-25
        • 2015-03-10
        • 2020-03-27
        • 2015-10-28
        • 2020-02-17
        • 2010-09-06
        相关资源
        最近更新 更多