为何CommandLineParser的--version命令返回的版本号末尾带乱码?
CommandLineParser输出版本号带哈希串的根本原因
你使用CommandLineParser NuGet包时,执行命令得到如下输出:
D:\My Programs\2022\MSATools\MSATools\bin\Release\net8.0>msatools --version MSATools 2024.04.05+9a5b4ec4befbf650d71bc45a692f944dd1ec0f43
版本号后面的串不是乱码,是Git提交的SHA-1哈希值,根本原因如下:
- CommandLineParser内置的
--version开关,默认读取的是程序集的InformationalVersion元数据字段,而非你在项目Package设置里填写的版本号。 - .NET SDK在构建项目时,如果你的项目关联了Git仓库,会自动启用源代码控制集成:将当前Git提交的SHA-1哈希值追加到InformationalVersion中,最终格式变为
[设置的版本号]+[提交哈希]。 - 你在项目属性Package部分设置的是NuGet包的版本,这个配置和程序集元数据里的InformationalVersion是两个独立项,彼此不直接关联。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

