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

C# .NET 6 WinForms应用出现MSB3174:AssemblyVersion值无效错误

解决.NET 6 WinForms项目卸载版本扩展后仍出现MSB3174(AssemblyVersion值无效)错误

问题分析

试用两款版本管理扩展后卸载,但项目仍报MSB3174错误,核心原因是扩展在项目文件中留下了残留配置,加上.NET Framework升级到.NET SDK项目后的版本配置冲突导致的。从你提供的csproj文件来看,有几个明显的问题点:

  1. Release配置中残留了扩展添加的版本管理属性
  2. GenerateAssemblyInfo开启的情况下,可能和旧的AssemblyInfo.cs文件冲突
  3. 空的<Version>标签可能干扰SDK的版本处理逻辑

具体解决步骤

1. 清理csproj中的扩展残留配置

找到Release|AnyCPU对应的PropertyGroup块,删除以下这些扩展添加的冗余属性:

<ShouldCreateLogs>True</ShouldCreateLogs>
<AdvancedSettingsExpanded>True</AdvancedSettingsExpanded>
<UpdateAssemblyVersion>False</UpdateAssemblyVersion>
<UpdateAssemblyFileVersion>False</UpdateAssemblyFileVersion>
<UpdateAssemblyInfoVersion>False</UpdateAssemblyInfoVersion>
<UpdatePackageVersion>False</UpdatePackageVersion>
<AssemblyInfoVersionType>SettingsVersion</AssemblyInfoVersionType>
<InheritWinAppVersionFrom>AssemblyVersion</InheritWinAppVersionFrom>
<PrimaryVersionType>AssemblyVersionAttribute</PrimaryVersionType>

2. 解决AssemblyInfo冲突问题

你的项目是从.NET Framework升级而来,大概率还保留着Properties/AssemblyInfo.cs文件,而当前csproj中设置了<GenerateAssemblyInfo>True</GenerateAssemblyInfo>——这会导致SDK自动生成版本信息,和手动编写的AssemblyInfo.cs产生冲突。

你可以二选一:

  • 把<GenerateAssemblyInfo>True</GenerateAssemblyInfo>改为False,保留AssemblyInfo.cs并确保其中的AssemblyVersion和FileVersion与csproj一致
  • 直接删除Properties/AssemblyInfo.cs文件,完全依赖csproj中的版本配置(更符合.NET SDK项目的最佳实践)

3. 补全空的Version属性

找到csproj中的空<Version>标签,把它改成和AssemblyVersion一致的值:

<Version>2024.1.3.3</Version>

空的Version属性会干扰SDK对版本信息的统一处理,补全后能避免构建时的异常逻辑。

4. 彻底清理并重建项目

完成以上修改后,执行以下操作确保缓存完全清除:

  • 右键项目 → 清理
  • 手动删除项目目录下的bin和obj文件夹
  • 重启Visual Studio
  • 重新生成项目

额外检查

如果以上操作后仍报错,检查你引用的其他项目(如LabBilling Core、WinFormsLibrary等)是否存在同样的版本配置问题——项目引用的版本冲突也可能触发MSB3174错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:52:33