【发布时间】:2021-05-12 18:42:48
【问题描述】:
我在一个 csproj 文件中看到了一些 code like this
$([System.DateTime]::UtcNow.ToString(mmff))
自动增加程序集版本:
<VersionSuffix>2.0.0.$([System.DateTime]::UtcNow.ToString(mmff))</VersionSuffix>
<AssemblyVersion Condition=" '$(VersionSuffix)' == '' ">0.0.0.1</AssemblyVersion>
那是什么样的语言/脚本?如何使用它来获取两个日期之间的差异?
我试图做这样的事情:
<VersionMajor>2</VersionMajor>
<VersionMinor>1</VersionMinor>
<DaysFromLastRelease>$(([System.DateTime]::UtcNow - new [System.DateTime](2021,1,1))::TotalDays)</DaysFromLastRelease>
但它不起作用:)
【问题讨论】:
-
它不是一种语言。文件是只读的,是 XML 格式的。
-
OP 说的是像
[System.DateTime]::UtcNow.ToString(mmff)这样的嵌入式表达式。 -
看起来有点像PowerShell
-
我不建议使用时间来生成版本号。它可以打破 MSBuild 的增量构建模型并产生更长的构建时间。
-
看到这个example 关于语义版本控制。它使用 git 的提交信息而不是时间
标签: c# .net visual-studio msbuild csproj