我想增加版本的最后一个数字(例如: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];
}
}
答案 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)
您可以尝试Split
和Join
:
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()
,如果您需要它作为字符串