2016-10-31 13 views
0

У меня есть версия с 5 частями (ex 1.9.0.0.1), которую я хочу преобразовать в 4 части. Я использую следующий код, чтобы объединить основные и незначительные изменения.Microsoft Build Version: Объединить MajorRevision и MinorRevision с редакцией

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

Это приводит к 1.9.0.65536, но максимальное допустимое значение для пересмотра 65535. Что такое правильные формулы, чтобы объединить основные и незначительные изменения?

Благодаря

+0

Почему бы не использовать 3-строчную версию сборки? Поскольку 'new Version (major, minor, build)' уже включает в себя как модификацию основной, так и незначительной версии. – TheRealVira

ответ

2

Не только вы могли бы просто использовать три части номер версии в (потому что она содержит как, незначительные и главный номер версии):

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 

Но все равно подумайте, действительно ли это подходит вашему прецеденту!