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

.NET Framework迁移至.NET Core:DependentUpon配置等效写法及报错处理

解决.NET Core迁移中Designer文件依赖配置的重复项问题

你碰到的问题根源在于.NET Core SDK和旧.NET Framework项目的默认行为差异:.NET Core SDK会自动扫描并包含项目目录下的所有编译文件,所以你手动添加<Compile Include="..."就会和SDK默认包含的条目重复,触发那个重复项报错。

正确的做法不需要重新Include文件,只需要修改已被默认包含的文件的元数据,把它关联到主文件上。把你写的代码改成下面这样就行:

<ItemGroup>
  <Compile Update="ServiceHost.Designer.cs">
    <DependentUpon>ServiceHost.cs</DependentUpon>
  </Compile>
</ItemGroup>

用**<Compile Update>代替<Compile Include>**,意思是"更新这个已存在的编译条目,添加DependentUpon关联",这样既不会产生重复项,又能让ServiceHost.Designer.cs在解决方案资源管理器里正确嵌套在ServiceHost.cs下面,和你之前在.NET Framework里的效果完全一致。

如果你真的需要完全手动控制所有编译文件(不推荐,除非有特殊场景),也可以在项目文件里添加这个配置来关闭默认的自动包含:

<PropertyGroup>
  <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>

但这样你就得手动Include所有需要编译的文件,包括普通.cs、.Designer.cs等等,维护起来会麻烦很多,所以优先推荐用Update的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:17:39