Для общего решения данных между двойными кавычками, другие ответы велики. Однако, если бы я разбирал AssemblyInfo.cs для строки версии, я был бы более явным.
$versionString = [regex]::match($s, 'AssemblyVersion.*([0-9].[0-9].[0-9].[0-9])').Groups[1].Value
$version = [version]$versionString
$ versionString
1.0.0.0
$ версия
Major Minor Build Revision
----- ----- ----- --------
1 0 0 0
Update/Edit:
относящегося к разбору версии (опять же, если это не общий вопрос о разборе текста между двойными кавычками) заключается в том, что я бы не стал у меня есть версия в формате M.m.b.r
в моем файле, потому что я всегда обнаружил, что Major.minor достаточно, и используя формат 1.2.*
дает вам дополнительную информацию без каких-либо усилий.
См. Compile date and time и Can I generate the compile date in my C# code to determine the expiry for a demo version?.
При использовании * для третьей и четвертой части версии сборки, то эти две части устанавливаются автоматически во время компиляции следующих значений:
третья часть является количество дней с момента 2000-01-01
четвертая часть является число секунд, прошедших с полуночи, разделенное на два (хотя некоторые страницы MSDN говорят, что это случайное число)
Кое-что, о чем я думаю, в большей картине версий, требующих 1.2. *, Допускающих 1.2 или 1.2.3 или принимающих только 1.2.3.4 и т. Д.
Вы также можете использовать '(\ d + \.?) +' [Demo здесь] (https://www.regex101.com/r/qI4wG6/3) если вы просто хотите версию нет. –