You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022 v17.8 DLL版本自动追加字符串问题求助

解决Visual Studio 17.8版本字符串自动追加哈希的问题

VS17.8升级后,MSBuild工具链默认开启了基于源代码哈希的版本后缀自动生成功能——哪怕你在项目里设置了<Version>1.0.0</Version>,编译后的DLL版本也会变成1.0.0+xxxxxx,这就是导致单元测试失败的原因。

要禁用这个功能,直接在项目的.csproj文件里添加以下配置即可:

全局禁用(所有目标框架生效)

将以下属性加入项目的<PropertyGroup>节点中:

<VersionSuffix></VersionSuffix>
<ContinuousIntegrationBuild>false</ContinuousIntegrationBuild>
<Deterministic>true</Deterministic>

如果项目已有<PropertyGroup>,直接把这三个属性追加进去就行。

针对特定框架配置(可选)

若只想给.NET Framework 4.8和.NET 6.0禁用该功能,可使用条件判断:

<PropertyGroup Condition=" '$(TargetFramework)' == 'net48' OR '$(TargetFramework)' == 'net6.0' ">
  <VersionSuffix></VersionSuffix>
  <ContinuousIntegrationBuild>false</ContinuousIntegrationBuild>
</PropertyGroup>

关键属性说明

  • VersionSuffix:设为空字符串,直接截断自动生成的哈希后缀
  • ContinuousIntegrationBuild:VS17.8默认会检测环境是否为CI,甚至本地编译也可能误触发该逻辑,设为false可彻底关闭
  • Deterministic:保证每次编译生成的版本信息稳定一致,避免哈希值无规律变化

验证生效情况

重新编译项目后,右键生成的DLL → 属性 → 详细信息,查看「产品版本」和「文件版本」,确认已显示为纯1.0.0、无后缀哈希即可。

内容的提问来源于stack exchange,提问作者Steven Volckaert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:55:04