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

使用Release配置执行dotnet build时抛出MSB3474错误

解决.NET Core下Release构建时MSB3474错误

问题描述

执行默认Debug配置构建项目无错误,但运行命令 dotnet build .\src\Burriquin\Burriquin.csproj -c=Release 时触发如下错误:

C:\Program Files\dotnet\sdk\7.0.102\Microsoft.Common.CurrentVersion.targets(3822,5): error MSB3474: The task "SGen" is not supported on the .NET Core version of MSBuild. Use the Microsoft XML Serializer Generator package instead. [C:\Users\mynameUser\Documents\MyProject\src\Burriquin\Burriquin.DB.csproj]
0 Warning(s)
1 Error(s)

项目csproj文件未针对构建配置做特殊设置,相关片段如下:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'" />

补充说明:通过VS2022可正常构建两种配置。

解决方案

方案1:替换为官方XML序列化生成器包

安装Microsoft.XmlSerializer.Generator NuGet包,这是.NET Core/.NET 5+官方推荐的替代SGen的工具:

dotnet add .\src\Burriquin\Burriquin.DB.csproj package Microsoft.XmlSerializer.Generator

方案2:禁用SGen序列化任务

如果项目不需要XML序列化生成器,可直接在Release配置中关闭该任务,修改csproj文件:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
  <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>

原因说明

VS2022在构建时会自动处理SGen的兼容逻辑,而dotnet build严格遵循.NET Core MSBuild规范,不支持旧的SGen任务,因此需要显式替换或禁用该任务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:10:28