为什么Visual Studio在项目文件中留下空的ItemGroup节点?

Mat*_*int 8 csproj visual-studio visual-studio-2013

  • 打开Visual Studio并创建任何类型的新C#项目.
  • 将新文件夹添加到项目并保存项目.
  • 检查项目文件(.csproj)并注意它创建了一个这样的节点:

    <ItemGroup>
      <Folder Include="NewFolder1\" />
    </ItemGroup>
    
    Run Code Online (Sandbox Code Playgroud)
  • 现在删除Visual Studio中的文件夹并保存项目.

  • 请注意,在项目文件中,有一个空节点,如下所示:

    <ItemGroup/>
    
    Run Code Online (Sandbox Code Playgroud)

删除空节点似乎没有任何区别,那么为什么VS留下这个呢?

我为什么在意?因为这样的提交令人困惑:

在此输入图像描述

Dre*_*kes 2

首先,空ItemGroup是良性的,就像空一样PropertyGroup。最坏的情况是项目文件中存在噪音。

从历史上看,项目文件并不是真正供人类使用的,只是在 VS 进行转换期间进行了临时努力以保持其整洁。

对于新的 SDK 风格的项目文件,其目的是 100% 使其可供人类阅读和编辑。如果您在使用新项目样式时在 VS 中看到空组,这绝对是团队想要了解的事情。在这种情况下,请报告问题并在正文中解释这是针对项目系统团队的。