C#“Version-Updater”

时间:2014-07-22 07:09:07

标签: c#

我想增加版本的最后一个数字(例如:1.0.0.0 - > 1.0.0.1)。 我更喜欢这个代码:)

实际代码如下:

private void UpdateApplicationVersion(string filepath)
    {
        string currentApplicationVersion = "1.2.3.4"
        string newApplicationVersionDigit = ((currentApplicationVersion.Split('.')[3]) + 1).ToString();


        string newApplicatonVersion = string.Empty;

        for (int i = 0; i <= currentApplicationVersion.Length; i++)
        {
            if (i == 7)
            {
                newApplicatonVersion += newApplicationVersionDigit ;
            }
            else
            {
                newApplicatonVersion += currentApplicationVersion.ToCharArray()[i];
            }

        }

4 个答案:

答案 0 :(得分:6)

行事简单,

    string v1 = "1.0.0.1";
    string v2 = "1.0.0.4";

    var version1 = new Version(v1);
    var version2 = new Version(v2);
    var result = version1.CompareTo(version2);
    if (result > 0)
        Console.WriteLine("version1 is greater");
    else if (result < 0)
        Console.WriteLine("version2 is greater");
    else
        Console.WriteLine("versions are equal");

答案 1 :(得分:1)

您可以尝试SplitJoin

string currentApplicationVersion = "1.2.3.4";

int[] data = currentApplicationVersion.Split('.')
  .Select(x => int.Parse(x, CultureInfo.InvariantCulture))
  .ToArray();

// The last version component is data[data.Length - 1]
// so you can, say, increment it, e.g.
data[data.Length - 1] += 1;

// "1.2.3.5"
String result = String.Join(".", data);

答案 2 :(得分:1)

我认为可以通过解析版本的所有组件,操纵最后一个组件并将它们再次放在一起来完成,如下所示。

string[] Components = currentApplicationVersion.Split('.');
int Maj = Convert.ToInt32(Components[0]);
int Min = Convert.ToInt32(Components[1]);
int Revision = Convert.ToInt32(Components[2]);
int Build = Convert.ToInt32(Components[3]);
Build++;
string newApplicationVersion 
  = string.Format("{0}.{1}.{2}.{3}", Maj, Min, Revision, Build);

答案 3 :(得分:1)

有一个用于处理版本号的类构建。它被称为Version,可以在System命名空间

中找到

您可以通过将表示版本的字符串传递给构造函数

来解析当前版本
var currentApplicationVersion = new Version(currentApplicationVersionString);

然后使用另一个构造函数

获取新的
var newApplicationVersion = new Version(
                                 currentApplicationVersion.Major,
                                 currentApplicationVersion.Minor,
                                 currentApplicationVersion.Build,
                                 currentApplicationVersion.Revision +1     
                            ); 

然后只需调用.ToString(),如果您需要它作为字符串