gpt4 book ai didi

gitversion - 在 GitVersion.yml 中应该将 assembly-informational-format 设置为什么

转载 作者:行者123 更新时间:2023-12-04 10:41:17 24 4
gpt4 key购买 nike

here 获取全局配置后,我的 GitVersion.yml 如下所示

但问题是,当我运行 gitversion 时会抛出异常

无法格式化 AssemblyInformationalVersion。检查您的格式字符串:“InformationalVersion”不是“GitVersion.SemanticVersionFormatValues”类型的成员(参数“propertyOrFieldName”)

我不得不删除第 5 行

程序集信息格式:'{信息版本}'

使异常消失。

我尝试了以下但没有奏效。

assembly-informational-format: {InformationalVersion} # 删除了引号。

我错过了什么。

next-version: 0.1.0
mode: mainline
assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatchTag
assembly-informational-format: '{InformationalVersion}'
increment: Inherit
continuous-delivery-fallback-tag: ci
tag-prefix: '[vV]'
major-version-bump-message: '\+semver:\s?(breaking|major)'
minor-version-bump-message: '\+semver:\s?(feature|minor)'
patch-version-bump-message: '\+semver:\s?(fix|patch)'
no-bump-message: '\+semver:\s?(none|skip)'
legacy-semver-padding: 4
build-metadata-padding: 4
commits-since-version-source-padding: 4
commit-message-incrementing: Enabled
commit-date-format: 'yyyy-MM-dd'
branches:
master:
mode: ContinuousDelivery
tag: ''
increment: Patch
prevent-increment-of-merged-branch-version: true
track-merge-target: false
regex: ^master
tracks-release-branches: false
is-release-branch: false
release:
mode: ContinuousDelivery
tag: beta
increment: Patch
prevent-increment-of-merged-branch-version: true
track-merge-target: false
regex: ^releases?[/-]
tracks-release-branches: false
is-release-branch: true
pre-release-weight: 1000
feature:
mode: ContinuousDeployment
tag: useBranchName
increment: Inherit
prevent-increment-of-merged-branch-version: false
track-merge-target: false
regex: ^features?[/-]
tracks-release-branches: false
is-release-branch: false
pull-request:
mode: ContinuousDelivery
tag: PullRequest
increment: Inherit
prevent-increment-of-merged-branch-version: false
tag-number-pattern: '[/-](?<number>\d+)[-/]'
track-merge-target: false
regex: ^(pull|pull\-requests|pr)[/-]
tracks-release-branches: false
is-release-branch: false
hotfix:
mode: ContinuousDelivery
tag: beta
increment: Patch
prevent-increment-of-merged-branch-version: false
track-merge-target: false
regex: ^hotfix(es)?[/-]
tracks-release-branches: false
is-release-branch: false
support:
mode: ContinuousDelivery
tag: ''
increment: Patch
prevent-increment-of-merged-branch-version: true
track-merge-target: false
regex: ^support[/-]
tracks-release-branches: false
is-release-branch: false
develop:
mode: ContinuousDeployment
tag: unstable
increment: Minor
prevent-increment-of-merged-branch-version: false
track-merge-target: true
regex: ^dev(elop)?(ment)?$
tracks-release-branches: true
is-release-branch: false
ignore:
sha: []
merge-message-formats: {}

最佳答案

所以,InformationalVersion按照assembly-informational-format指定的格式设置.所以这很可能是导致错误的原因。

例如,我所做的是这样的:

assembly-informational-format: '{MajorMinorPatch}{PreReleaseTagWithDash}+{ShortSha}'

然后,当我运行 GitVersion 时,我返回:
"InformationalVersion":"2.0.0-convert-to-netcore.9+abc123"

同样,文档并不清楚哪些变量可以用作字符串插值的一部分,哪些变量是由各种格式字段设置的。

更新
我注意到我的回答似乎与 GitVersion 的文档相矛盾。但是,我的经验向我证明了设置 assembly-informational-format影响 InformationalVersion 的值,即使 InformationalVersion被认为是一个变量,可以用于插值。我认为这可能是 GitVersion 文档中的一个错误。或者充其量,那个 InformationalVersion可以用作其他格式的变量,但因为 assembly-informational-format决定了 InformationalVersion 的最终值的因素,此变量不能用于 assembly-informational-format配置值。

另一个更新
好吧,我意识到,虽然文档可能会更好,但我一直在对 GitVersion 实际在做什么/提供什么的误解下进行操作。这不是魔术(嗯,它有点像 ;) ),它确实需要您的工作。

GitVersion 只是计算 SemVer 的一些版本字段,并在您运行 GitVersion.exe 时将这些计算结果输出到 JSON 对象中。 (使用可执行文件时)。 GitVersion 还提供了这些字段的一些常见“混搭”,例如 MajorMinor , MajorMinorPatch等。它还提供了一些格式化完整版本号的方法,例如 assembly-file-versioning-formatassembly-informational-format .但最终,所有这些的结果都输出到一个 JSON 对象中。

您有责任从这个 JSON 对象中挑选和选择如何构建您的版本号。所以,如果你想使用来自 InformationalVersion 的字符串作为您的 NuGet 包版本(用于 v3 包源),它基于 assembly-informational-format 中指定的格式,那是你的选择。

GitVersion 提供了有关如何将此 JSON 对象“转换”为构建变量或可从构建过程访问的环境变量的说明。您需要确保将构建配置为使用这些值来实现所需的版本控制方案。但是 GitVersion 只计算主要/次要/补丁版本号,并尝试帮助您格式化预发布和构建元数据标签。

这一启示无疑帮助我更好地理解了如何配置 GitVersion 并在我的构建过程中使用它。

关于gitversion - 在 GitVersion.yml 中应该将 assembly-informational-format 设置为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59919614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com