gpt4 book ai didi

c# - 在我的版本更新程序中更改次要值

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:48 24 4
gpt4 key购买 nike

我目前有这个小的 .exe 来增加我的程序的版本号。这个 .exe 在我的 .sln 构建之前在 Jenkins 中构建,然后更改 .sln 文件的 global.cs。我们对我们的程序进行了不兼容的 API 更改,现在希望次要值从 1.1.xxx 更改为 1.2.xxx。为了实现我的目标,我应该改变什么。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ApplicationName.VersionUpdater
{
class Program
{
static void Main(string[] args)
{
if (args.Length != 2) {
Console.WriteLine("Usage: ApplicationName.VersionUpdater PathToGlobal.cs RevisionNo");
return;
}

FileInfo file;
try
{
file = new FileInfo(args[0]);
}
catch (Exception ex)
{
Console.WriteLine("Invalid use: Global.cs pointer incorrect: {0}", ex.Message);
return;
}

if (!file.Exists) {
Console.WriteLine("Invalid use: Global.cs not found incorrect: {0}", file.FullName);
return;
}

int revno;
try
{
revno = int.Parse(args[1]);
}
catch (Exception ex)
{
Console.WriteLine("Invalid use: Revision number incorrect: {0}", ex.Message);
return;
}

try
{
string content = File.ReadAllText(file.FullName);
content = Regex.Replace(content, @"(?<=public const string ThisVersion = ""\d+\.\d+\.\d+\.)\d+", revno.ToString());
File.WriteAllText(file.FullName, content);
}
catch (Exception ex)
{
Console.WriteLine("Exception updating Global.cs! {0}", ex.Message);
return;
}

}
}
}

**我只需要一种方法来从文件中读取正则表达式代码,然后将其调整为我想要的。如何从此文件读取正则表达式代码以及如何手动更改它? **

最佳答案

代码中的 Regex.Replace(...) 行表示要查找以 public const string ThisVersion = " 开头的字符串,后跟三个数字点。例如 public const string ThisVersion = "12.34.56.。然后,该行再查找一个数字,并将其替换为作为命令行参数传入的数字。

因此使用(比如)ApplicationName.VersionUpdater TheGlobal.cs 42 调用该实用程序将导致此字符串

public const string ThisVersion = "12.34.56.78

替换为

public const string ThisVersion = "12.34.56.42

请注意,正则表达式不会查看或修改第四个数字之后的任何字符。

该实用程序支持的版本号与问题的1.1.xxx1.2.xxx不匹配。它们确实匹配 1.1.1.xxx1.1.2.xxx1.2.1.xxx 的形式。

您的解决方案有两个步骤。

  1. 手动编辑相关的 ...Global.cs 文件以将 1 更改为 2

  2. 如果需要将最后一个数字重新设置为 1(或其他一些值),则查找生成实用程序的 RevisionNo 参数的位置和方式,并将其更改为从 1 开始。

关于c# - 在我的版本更新程序中更改次要值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36997114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com