如何从 .net 项目文件中获取 gitlab-ci.yml 文件中的项目版本?

Posted

技术标签:

【中文标题】如何从 .net 项目文件中获取 gitlab-ci.yml 文件中的项目版本?【英文标题】:How to get project version in gitlab-ci.yml file from the .net project file? 【发布时间】:2021-07-25 16:20:13 【问题描述】:

我正在将我的项目从 Jenkins 转换为 GitLab CI。我正在从 .gitlab-ci.yml 文件中执行一个 .sh 文件,我正在使用以下语句从项目文件中提取版本:

VERSION=$(grep -oPm1 "(?

我正在获取项目版本,这工作正常。 如何在 .gitlab-ci.yml 文件中运行上述语句并将版本值分配给变量? 我尝试运行语句,但出现错误,例如无效选项“P”

【问题讨论】:

您的$( 似乎没有右括号。 【参考方案1】:

您需要在 script 块中执行命令,因此您的 gitlab-ci.yml 可能如下所示:

stages:
  - test

test:
  stage: test
  script:
    - VERSION=$(grep -oPm1 "(?<=)[^<]+" Service.csproj)
    - echo $VERSION

【讨论】:

【参考方案2】:

不知何故,上述 grep 对我不起作用。下面对我有用。

$VERSION=[regex]::match((Get-Content .\AssemblyFileVersion.cs), "AssemblyFileVersion\(`"(.*)`"\)").Groups[1].Value'

【讨论】:

以上是关于如何从 .net 项目文件中获取 gitlab-ci.yml 文件中的项目版本?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌驱动器重定向 URI 不匹配以及如何从 ASP.net 核心 2.0 中的谷歌驱动器获取文件列表

如何将文件夹、资源和 pom 文件从 maven 项目获取到另一个 maven 项目?

如何在 ASP.NET MVC 3 的一个解决方案中从另一个项目获取文件路径?

如何从 .NET 可执行文件中获取输出并传送到 MFC 应用程序?

如何从 .NET 应用程序中的 FTP 协议获取目录文件大小

如何从另一个 .NET 进程获取对象的句柄?