内容提要
本文介绍了如何在ASP.NET Core API项目中设置和读取语义版本号。通过在csproj文件中配置`InformationalVersion`,可以准确反映构建时的版本号,并在API的`/version`端点返回该版本号,从而确保持续交付管道中版本信息的正确性。
关键要点
-
本文介绍了如何在ASP.NET Core API项目中设置和读取语义版本号。
-
通过在csproj文件中配置InformationalVersion,可以准确反映构建时的版本号。
-
API的/version端点返回该版本号,确保持续交付管道中版本信息的正确性。
-
一个.NET程序集有多个版本号,包括AssemblyVersion、FileVersion、InformationalVersion和PackageVersion。
-
InformationalVersion是唯一一个在运行时可以精确读取的版本号。
-
在csproj文件的<PropertyGroup>元素中添加<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>。
-
使用dotnet build命令传递版本号。
-
在运行时读取InformationalVersion的代码示例。
-
在最小API中添加/version端点以返回版本号的JSON对象。
延伸解读
语义版本控制的重要性
在持续交付的过程中,确保API的版本信息准确无误至关重要。通过在ASP.NET Core项目中实现语义版本控制,开发者可以在构建时清晰地标记版本,避免因版本不一致导致的潜在问题。这种做法不仅提升了项目的可维护性,也为后续的版本管理提供了便利。
不同版本号的理解
ASP.NET Core程序集包含多个版本号,如AssemblyVersion、FileVersion和InformationalVersion。了解这些版本号的区别和用途,可以帮助开发者在调试和发布时做出更明智的选择。特别是InformationalVersion,它能准确反映构建时的版本信息,是运行时读取的最佳选择。
配置注意事项
在配置csproj文件时,确保正确设置<IncludeSourceRevisionInInformationalVersion>为false,以避免不必要的源修订信息干扰版本号的准确性。此外,使用dotnet build命令传递版本号时,需注意版本格式,以确保在运行时能够正确读取。
延伸问答
如何在ASP.NET Core项目中设置语义版本号?
在csproj文件的<PropertyGroup>元素中添加<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>,并通过dotnet build命令传递版本号。
ASP.NET Core API的/version端点有什么用?
它返回当前API的版本号,以确保持续交付管道中版本信息的正确性。
什么是InformationalVersion,它与其他版本号有什么不同?
InformationalVersion是唯一一个在运行时可以精确读取的版本号,其他版本号如AssemblyVersion和FileVersion在设置时会添加额外的部分。
如何在运行时读取InformationalVersion?
可以使用代码:string? version = Assembly.GetEntryAssembly()?.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
在构建时设置的语义版本号会如何影响AssemblyVersion和FileVersion?
如果设置的语义版本号只有三个部分,AssemblyVersion和FileVersion会自动在最后添加一个0。
如何在最小API中添加/version端点?
在Program.cs中添加处理程序,使用app.MapGet("/version", () => objVersion);来返回版本号的JSON对象。