.NET 8.0为何在版本号后追加哈希?如何去除?
.NET 8发布后版本号追加哈希的原因及移除方法
哈希的来源
这个追加的哈希是.NET 8 SDK默认启用的源链接哈希(Source Link Hash)。它基于项目编译时的源代码仓库提交信息生成,作用是让可执行文件与对应的源代码版本建立关联,方便后续调试时精准定位到具体提交的代码片段。在Release编译模式下,.NET 8 SDK默认开启了Source Link相关的版本信息嵌入逻辑,因此会自动将该哈希追加到版本号的+后缀位置。
移除哈希的方法
方法1:发布命令中添加参数
在dotnet publish命令里直接指定禁用Source Link哈希嵌入的属性,修改后的命令如下:
dotnet publish ..\code\cbutils\cbutils.csproj -c Release -f net8.0 -r win-x64 -o D:\work\install\cbutils /property:Version=1.2.3.1096 /property:IncludeSourceLinkInInformationalVersion=false --self-contained
方法2:修改项目文件(csproj)
如果不想每次发布都手动加参数,可以在项目的.csproj文件中添加以下配置,全局禁用哈希追加:
<PropertyGroup> <!-- 仅关闭版本号中的哈希追加,保留其他Source Link功能 --> <IncludeSourceLinkInInformationalVersion>false</IncludeSourceLinkInInformationalVersion> </PropertyGroup>
方法3:完全关闭Source Link(不建议)
如果不需要Source Link的源代码关联功能,也可以直接关闭整个Source Link机制:
<PropertyGroup> <PublishRepositoryUrl>false</PublishRepositoryUrl> <IncludeSourceLink>false</IncludeSourceLink> </PropertyGroup>
注:更建议用方法1或方法2,既能保留Source Link的调试优势,又能得到干净的版本号。
内容的提问来源于stack exchange,提问作者Aaron Haspel
相关产品推荐
相关产品推荐

