WPF项目中的语义版本控制

时间:2016-12-01 14:29:15

标签: c# wpf semantic-versioning

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

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

2 个答案:

答案 0 :(得分:1)

我在我的WPF应用程序中使用此方法(虽然它用于fileversion而不是汇编版本 - 我的小项目中总是这些相同):

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个数字。如果您必须拥有汇编版本而不是fileversion,那么也许其他人可以提供帮助。

答案 1 :(得分:1)

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