新的Visual Studio 2017 csproj文件中的项目组可以合并吗?

时间:2019-12-11 11:59:43

标签: visual-studio-2017 csproj dotnet-sdk

例如,我有一个.csproj文件,其结构如下:

...
  <ItemGroup>
    <Compile Include="...">
      <Link>...</Link>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="..." Version="..." />
  </ItemGroup>

  ... there may even be some other tags in between ItemGroups ...

  <ItemGroup>
    <ProjectReference Include="..." />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="...">
      <HintPath>...</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <None Update="...">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
  ... There may be even more additional ItemGroups with other content ...
...

我可以将它们全部合并成一个这样的东西吗?

...
  <ItemGroup>
    <PackageReference Include="..." Version="..." />
    <ProjectReference Include="..." />
    <Compile Include="...">
      <Link>...</Link>
    </Compile>
    <Reference Include="...">
      <HintPath>...</HintPath>
    </Reference>
    <None Update="...">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
...

我已经做到了,从目前的观察来看,似乎没有问题,但是我不希望我或其他开发人员以后碰到它们,不知道它们可能与该动作有关。 / p>

1 个答案:

答案 0 :(得分:1)

合并它们没有问题,与MSBuild API等效。

但是,某些工具可能会查找仅包含特定内容的项目组(例如NuGet想要添加到已经包含包装参考的项目组中),但这意味着在最坏的情况下,工具可能会添加其他项目组。