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

移植后.NET Standard 2.0项目无Compile Include元素是否正常?

这种情况完全正常,是两种项目格式的设计差异导致的

别担心,你遇到的这个现象是SDK风格项目和传统.NET Framework项目格式之间的核心区别之一,完全符合预期:

  • 项目格式本质不同
    .NET Standard 2.0项目默认采用的是SDK风格项目格式(项目文件开头是<Project Sdk="Microsoft.NET.Sdk">),这种格式的核心优化之一就是自动文件包含机制。它会默认递归包含项目根目录及所有子目录下的代码文件(比如.cs、.vb),所以不需要在项目文件里写一堆<Compile Include="..."条目,只需要用<Compile Remove="..."来排除那些你不想编译的文件就够了。

  • 解决方案资源管理器的显示逻辑适配
    对于SDK风格项目,解决方案资源管理器会直接读取项目目录下的文件结构来展示内容,而不是完全依赖项目文件里的Include条目。所以你添加文件到项目目录时,它会自动显示在资源管理器中,同时因为自动包含机制的存在,项目文件也不会新增Include元素——除非你手动排除这个文件,才会生成对应的Remove条目。

  • 传统.NET Framework项目的显式声明要求
    你手里的.NET Framework项目用的是旧的非SDK格式,这种格式没有自动包含的特性,必须显式在项目文件里用<Compile Include="..."声明每一个要编译的文件,所以每次添加新文件都会修改项目文件,这是旧格式的设计限制,不是异常情况。

如果以后你想让.NET Framework项目也用上这种更简洁的自动包含机制,也可以把它迁移为SDK风格项目(不过要注意一些旧项目特有的配置可能需要调整)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:22:31