Les fichiers peuvent-ils être nesteds dans VS2017 Solution Explorer pour les projets .NET Core (non-ASP.NET Core)?

Dans les projets MSBuild “old school” – comme cela est toujours utilisé par Windows Forms dans VS2017 par exemple – les fichiers peuvent être “nesteds” via un élément DependentUpon dans le fichier csproj.

Je l’ai utilisé pour regrouper les tests unitaires dans Noda Time, par exemple

  LocalDateTest.cs  

Cela a conduit à des tests facilement navigables:

Tests imbriqués

J’ai sciemment “perdu” cette fonctionnalité lors du passage à project.json pour .NET Core, mais j’avais espéré que cela reviendrait lors de la conversion à MSBuild. Cependant, il ressemble à des projets MSBuild basés sur le SDK .NET Core (l’élément racine ) ne reçoit pas le même traitement dans Visual Studio 2017, même si un ItemGroup est ajouté manuellement avec les mêmes éléments que le projet “old school”.

Les projets ASP.NET Core reçoivent une imbrication automatique pour les CSS et Javascript minifiés, mais il n’est pas clair comment l’appliquer à C # dans les projets de bibliothèque .NET Core.

Je l’ai dans l’un de mes projets de style Microsoft.NET.Sdk en utilisant quelque chose de similaire à ce qui suit:

   LocalDateTest.cs   

L’astuce consiste à utiliser Update au lieu de Include . Cela est dû au fait que les éléments implicites proviennent d’un fichier de propriétés importé avant le projet principal. Une inclusion supplémentaire n’affectera pas les fichiers déjà inclus, mais ils peuvent être modifiés à l’aide de la Update à Update .

Si vous utilisez le même préfixe, les fichiers seront automatiquement nesteds.

Exemple:

 AsemblyInfo.cs AsemblyInfo.local.cs 

Si vous utilisez .netstandardx.x, vous ne pouvez pas utiliser NestedIn . Ça ne fonctionne pas.

Vous pouvez le faire manuellement dans votre fichier .csproj

 ChildClass.cs