0

我设法让GitVersion在我的 .net 项目上工作(它正确更新了我的 AssemblyInfo.cs)。

现在我想对我的AngularJs应用程序做同样的事情。我可以看到运行GitVersion显示正确的版本号,但我想更新我的 bower.json 文件。有谁知道我该怎么做?

4

1 回答 1

1

你用什么来执行 GitVersion?即你在使用脚本吗?

GitVersion 不会为您更新该文件,但 GitVersion 将声明当前版本号,然后您可以在脚本中使用其他内容来更新文件。

就个人而言,我在这方面所做的几乎所有事情都是使用Cake完成的,并且有一个名为MagicChunks的插件,这使得这非常容易。例如,这是我在我的一个项目中更新 package.json 文件的方式:

https://github.com/gep13/chocolatey-vscode/blob/develop/build.cake#L137-L139

    TransformConfig(projectToPackagePackageJson, projectToPackagePackageJson, new TransformationCollection {
        { "version", parameters.Version.SemVersion }
    });

但是你同样可以在 PowerShell、bash 或任何你用来运行构建的东西中做类似的事情。

更新:

要直接在 PowerShell 中执行类似的操作,您需要这样的操作(注意,这尚未经过测试):

$gitVersionExe = "./../<Path to where GitVersion.exe lives>";
$output = . $gitVersionExe
$joined = $output -join "`n"
$versionInfo = $joined | ConvertFrom-Json
$version = $versionInfo.LegacySemVer

(Get-Content .\bower.json).replace('1.0.0', $version) | Set-Content .\bower,json

注意:在这里,在替换语句中,我假设您要替换 bower.json 文件中组成的版本号 1.0.0 的所有实例。在实践中,您将需要微调此替换,以便您只替换/更改您想要更改的文本。

注意: 您可以使用 GitVersion 中的任何您想要的属性,我刚刚使用 LegacySemVer 作为示例

于 2019-02-14T17:35:49.740 回答