定义控制台应用程序版本,并从应用程序引用版本信息

时间:2021-06-15 15:09:04

标签: c# .net .net-5

我有一个 .NET 5.0 控制台应用程序。如何创建版本资源,然后在我的应用程序中显示该版本?

过去,我见过一个 AssemblyInfo.cs 文件。但我在我的新项目中没有看到类似的东西。

1 个答案:

答案 0 :(得分:1)

我最近不得不解决这个问题:你怎么知道部署了哪个版本的工具?以及如何自动化版本号,以免不小心使用旧版本?

过去,该信息作为属性存储在 AssemblyInfo.cs 中。在 .NET Core 中,这些属性现在由运行时的项目属性生成。

Andrew Lock 解释了 VersionVersionPrefixVersionSuffixAssemblyVersion FileVersionPackageVersion、{使用了 {1}}。

最重要的是InformationalVersionVersionVersionPrefix。这是因为 VersionSuffix 被用作其他的默认值。如果没有明确的值,Version 反过来可以计算为 Version

引用文章:

<块引用>

VersionPrefix-VersionSuffix 属性是构建 .NET Core 应用程序时最常设置的值。它控制构建输出中嵌入的所有版本号的默认值,例如 VersionPackageVersion,因此它通常用作应用/库版本的单一来源。

如果使用 System.CommandlineAssemblyVersion 显示的版本信息是 --version,其默认值来自 InformationalVersion

默认 VersionVersionPrefix,默认后缀为空,导致版本为 1.0.0

*公式

好处是属性可以有公式。只需将其添加到不包含其他版本信息的 1.0.0

中,我就能够自动生成与日期相关的版本号
csproj

现在我每次构建工具时都会得到类似 <VersionSuffix>$([System.DateTime]::UtcNow.ToString(`yyyyMMdd-HHmm`))</VersionSuffix>

的版本

覆盖属性

可以在构建期间覆盖项目值,通过指定显式版本后缀或为项目属性指定显式值,例如:

1.0.0-2021061501836

dotnet build --configuration Release --version-suffix preview2-final

这样,自动发布管道可以指定一个新版本来覆盖项目文件中设置的任何内容

相关问题