string - 我需要使用 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
有人知道我如何实现吗?
解决方案
嗯...我会尝试...假设您已将源字符串保存到变量$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
推荐阅读
- spring-boot - 为 docker 容器使用的 GCE 服务帐户添加 Google Calendar API 范围的最佳方法是什么?
- c# - 找不到编译器可执行文件 csc.exe。使用 .net 4.7.2
- c++ - 如何移动刽子手箱线?
- emacs - 无法在 emacs 中安装一些 melpa 包
- php - 已解决 - .htaccess 在服务器上产生 404,但通过 htaccess 验证器
- r - 如何在 dplyr 过滤器中使用对象?
- android-studio - Android Studio Palette 激活但不工作
- package - MSIX 错误的 WPF 打包程序:RuntimeIdentifier 或 SelfContained
- java - Cucumber 为每个场景实例化每个 Java 类
- java - 为什么这不会在 java 中导致 IndexOutBoundsError