Em projetos MSBuild da "velha escola" - como ainda usado pelo Windows Forms no VS2017, por exemplo - os arquivos podem ser "aninhados" por meio de um DependentUpon
item no arquivo csproj.
Usei isso para agrupar testes de unidade no Horário de Noda, por exemplo
<Compile Include="LocalDateTest.PeriodArithmetic.cs">
<DependentUpon>LocalDateTest.cs</DependentUpon>
</Compile>
Isso levou a testes de fácil navegação:
Eu conscientemente "perdi" esse recurso ao mudar project.json
para o .NET Core, mas esperava que ele retornasse ao converter para o MSBuild. No entanto, parece que os projetos MSBuild baseados no .NET Core SDK (elemento raiz <Project Sdk="Microsoft.NET.Sdk">
) não recebem o mesmo tratamento no Visual Studio 2017, mesmo se umItemGroup
for adicionado manualmente com os mesmos elementos do projeto "old school".
Projetos ASP.NET Core recebem aninhamento automático para CSS e Javascript minimizados, mas não está claro como aplicar isso ao C # em projetos de biblioteca do .NET Core.