GitVersion.yml中的程序集信息格式应设置为什么

GitVersion.yml中的程序集信息格式应设置为什么,gitversion,Gitversion,在我从中获取全局配置后,我的GitVersion.yml如下所示 但问题是,当我运行gitversion时,这会引发异常 无法格式化AssemblyInformationalVersion。检查格式字符串:“InformationalVersion”不是“GitVersion.SemanticVersionFormatValues”(参数“propertyOrFieldName”)类型的成员。 我不得不把第五行移走 程序集信息格式:“{InformationalVersion}” 使例外消失 我

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

但问题是,当我运行gitversion时,这会引发异常

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

我不得不把第五行移走

程序集信息格式:“{InformationalVersion}”

使例外消失

我尝试了以下方法,但没有成功

程序集信息格式:{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: {}
下一版本:0.1.0
模式:主线
程序集版本控制方案:MajorminoPatch
程序集文件版本控制方案:MajorminoPatchTag
程序集信息格式:“{InformationalVersion}”
增量:继承
连续交付回退标记:ci
标记前缀:'[vV]'
主版本通气消息:'\+semver:\s?(断开主版本)'
次要版本通气消息:'\+semver:\s?(功能部件|次要)'
修补程序版本通气消息:'\+semver:\s?(修复修补程序)'
无通气消息:'\+semver:\s?(无|跳过)'
旧版semver填充:4
构建元数据填充:4
自版本源填充后提交:4
提交消息增量:已启用
提交日期格式:“yyyy-MM-dd”
分支机构:
大师:
方式:连续交付
标记:“”
增量:补丁
防止合并分支版本的增量:true
跟踪合并目标:false
正则表达式:^master
跟踪发布分支:false
发布分支:false
发布:
方式:连续交付
标签:beta
增量:补丁
防止合并分支版本的增量:true
跟踪合并目标:false
正则表达式:^releases?[/-]
跟踪发布分支:false
发布分支:正确吗
释放前重量:1000
特色:
模式:连续部署
标签:useBranchName
增量:继承
防止合并分支版本的增量:false
跟踪合并目标:false
正则表达式:^features?[/-]
跟踪发布分支:false
发布分支:false
拉取请求:
方式:连续交付
标签:PullRequest
增量:继承
防止合并分支版本的增量:false
标记编号模式:'[-](?\d+[-/]'
跟踪合并目标:false
正则表达式:^(pull | pull \-请求| pr)[/-]
跟踪发布分支:false
发布分支:false
修补程序:
方式:连续交付
标签:beta
增量:补丁
防止合并分支版本的增量:false
跟踪合并目标:false
正则表达式:^修补程序?[/-]
跟踪发布分支:false
发布分支:false
支持:
方式:连续交付
标记:“”
增量:补丁
防止合并分支版本的增量:true
跟踪合并目标:false
正则表达式:^支持[/-]
跟踪发布分支:false
发布分支:false
发展:
模式:连续部署
标签:不稳定
增量:小调
防止合并分支版本的增量:false
跟踪合并目标:true
正则表达式:^dev(elop)?(elop)$
跟踪发布分支:true
发布分支:false
忽略:
沙:[]
合并消息格式:{}

因此,
信息版本
是根据
组件信息格式
指定的格式设置的。所以这很可能是导致错误的原因

例如,我所做的是:

assembly-informational-format: '{MajorMinorPatch}{PreReleaseTagWithDash}+{ShortSha}'
然后,当我运行GitVersion时,我返回:

"InformationalVersion":"2.0.0-convert-to-netcore.9+abc123"
同样,文档也不清楚哪些变量可以用作字符串插值的一部分,而哪些变量是由各种格式字段设置的

更新
我注意到我的答案似乎与GitVersion的文档相矛盾。然而,我的经验向我证明,设置
程序集信息格式
会影响
信息版本
的值,即使
信息版本
被视为一个变量,可以在插值中使用。我认为这可能是GitVersion文档中的一个错误。或者充其量,
InformationalVersion
可以在其他格式中用作变量,但由于
程序集信息格式
决定了
InformationalVersion
的最终值,因此该变量不能在
程序集信息格式
配置值中使用

另一次更新
好的,我意识到,虽然文档可能会更好,但我一直在误解GitVersion实际上在做什么/提供什么。这不是魔法(嗯,有点;),它确实需要你的努力

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

您有责任从这个JSON对象中选择如何构造您的版本号。因此,如果您想使用
InformationalVersion
中的字符串作为基于
assembly informational format
中指定格式的NuGet软件包版本(对于v3软件包提要),这是您的选择

GitVersion提供了有关如何将此JSON对象“转换”为可从构建过程访问的构建变量或环境变量的说明。由您来确保您将构建配置为使用这些值来实现所需的版本控制方案。但是