Не только вы могли бы просто использовать три части номер версии в (потому что она содержит как, незначительные и главный номер версии):
new Version(major, minor, build)
но вы также можете использовать Version Constructor (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.Revision Property! Они даже описали ответ на ваш вопрос:
Version interim = new Version(2, 4, 1128, (100 << 16) + 2);
// major.minor.build.majRev/minRev = 2.4.1128.100/2
Но все равно подумайте, действительно ли это подходит вашему прецеденту!
Почему бы не использовать 3-строчную версию сборки? Поскольку 'new Version (major, minor, build)' уже включает в себя как модификацию основной, так и незначительной версии. – TheRealVira