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:
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