Microsoft Build Version:将MajorRevision和MinorRevision合并为Revis

本文关键字:MinorRevision 合并 Revis MajorRevision Build Version Microsoft | 更新日期: 2023-09-27 18:15:46

我有一个5部分构建版本(ex 1.9.0.0.1),我想转换为4部分。我使用下面的代码来组合主要和次要的修订。

new Version(major, minor, build, majorRevision | (minorRevision << 16)

结果是1.9.0.65536,但是允许的最大值是65535。把大修和小修结合起来的正确公式是什么?

谢谢

Microsoft Build Version:将MajorRevision和MinorRevision合并为Revis

您不仅可以使用由三部分组成的版本号(因为它包含次要和主要版本号):

new Version(major, minor, build)

,但你也可以使用版本构造函数(String):

string version = major + "." + minor + "." + build + "." + (majorRevision | (minorRevision << 16));
var ver = new Version(version);

但是它不会删除错误,因为它会自动将拆分的字符串解析为整数。所以我建议使用三部分的版本…

您可以使用System.Reflection.Assembly.GetExecutingAssembly()访问您的版本并创建您自己的版本字符串:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
string myVersion = assembly.GetName().Version + ".";
int major = int.Parse(myVersion.Split('.')[0]); // Get the major version number
int minor = int.Parse(myVersion.Split('.')[1]); // Get the minor version number
myVersion += (major | (minor << 16)) + ""; // Append the rest

Version的文档中也有很好的例子。修改属性!他们甚至描述了你问题的答案:

Version interim = new Version(2, 4, 1128, (100 << 16) + 2);
// major.minor.build.majRev/minRev = 2.4.1128.100/2

但是仍然要考虑它是否真的适合你的用例!