В проектах MSBuild «старой школы», которые до сих пор используются Windows Forms в VS2017, например, файлы могут быть «вложены» через DependentUpon
элемент в файле csproj.
Я использовал это для группировки модульных тестов в Noda Time, например
<Compile Include="LocalDateTest.PeriodArithmetic.cs">
<DependentUpon>LocalDateTest.cs</DependentUpon>
</Compile>
Это привело к легко управляемым тестам:
Я сознательно «потерял» эту функцию при переходе project.json
на .NET Core, но надеялся, что она вернется при преобразовании в MSBuild. Однако похоже, что проекты MSBuild, основанные на .NET Core SDK (корневой элемент <Project Sdk="Microsoft.NET.Sdk">
), не получают такой же обработки в Visual Studio 2017, даже если они ItemGroup
добавляются вручную с теми же элементами, что и проект «старой школы».
Проекты ASP.NET Core получают автоматическое вложение для миниатюрных CSS и Javascript, но неясно, как применить это к C # в проектах библиотеки .NET Core.