Внутри файла AssemblyInfo.cs есть эта строка: [assembly: AssemblyVersion("1.0.0.1")]
, и я пытаюсь извлечь в ней числа одно за другим, каждое из которых является переменной в следующей структуре.
static struct Version
{
public static int Major, Minor, Build, Revision;
}
Я использую этот шаблон, чтобы попытаться получить числа:
string VersionPattern = @"\[assembly\: AssemblyVersion\(""(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})""\)\]";
Однако, когда я использую этот код, результат не такой, как ожидалось, вместо этого он показывает полную строку, как если бы это было реальное совпадение, а не каждое число в группе.
Match match = new Regex(VersionPattern).Match(this.mContents);
if (match.Success)
{
bool success = int.TryParse(match.Groups[0].Value,Version.Major);
...
}
В этом случае this.mContents
— это весь текст, прочитанный из файла, а match.Groups[0].Value
должно быть «1» из AssemblyVersion.
Мой вопрос заключается в том, чтобы получить эти числа один за другим с помощью Regex.
Этот небольшой инструмент предназначен для увеличения версии приложения каждый раз, когда Visual Studio создает его, и я знаю, что для этого существует множество инструментов.