首页 > 解决方案 > 我需要使用 powershell 脚本的 AssemblyInfo.cs 的前 3 位版本号

问题描述

在我们的项目中,我们有 AssemblyInfo.cs

这是一些代码...

 [assembly: AssemblyVersion("1.5.26.0")]
 [assembly: AssemblyFileVersion("1.5.26.0")]

我想要的是版本的前三位数字。

我有一个 Powershell 脚本,它可以获取版本,但我只需要前三位

$assemblyInfoPath = "D:\PC- Downloads\AssemblyInfo.cs"

$regex = '^\[assembly: AssemblyVersion\("(.*?)"\)\]'
$assemblyInfo = Get-Content $assemblyInfoPath -Raw

  $version = [Regex]::Match(
    $assemblyInfo, 
    $regex,
    [System.Text.RegularExpressions.RegexOptions]::Multiline
).Groups[1].Value 

参考链接:Put Assembly Version from AssemblyInfo.cs in Web.config

有人知道我如何实现吗?

标签: stringpowershellvariables.net-assembly

解决方案


嗯...我会尝试...假设您已将源字符串保存到变量$sourceString

$sourceString = '[assembly: AssemblyVersion("1.5.26.0")]'

您可以剪切不需要的所有内容并将结果转换为适当的 dot Net 版本类型:

[VERSION]$VersionString = $sourceString -replace '^.+((\d+\.){3}\d+).+', '$1'

现在您可以按名称访问所有单个元素:

$VersionString.Major
$VersionString.Minor
$VersionString.Build
$VersionString.Revision

$VersionString

结果是这样的:

1
5
26
0

Major  Minor  Build  Revision
---- - ---- - ---- - --------
1      5      26     0

现在您可以根据需要重新加入他们

$DhartisNeed = '{0}.{1}.{2}' -f $VersionString.Major,$VersionString.Minor,$VersionString.Build
$DhartisNeed

结果是这样的:

1.5.26

推荐阅读