可以在VS2017解决方案资源管理器中为.NET Core(non-ASP.NET Core)项目嵌套文件吗?

问题描述:

在“老派”MSBuild项目中 - 例如VS2017中的Windows Forms仍然使用 - 文件可以通过csproj文件中的DependentUpon项目“嵌套”。可以在VS2017解决方案资源管理器中为.NET Core(non-ASP.NET Core)项目嵌套文件吗?

我用它在Noda Time中将单元测试分组在一起,例如,

<Compile Include="LocalDateTest.PeriodArithmetic.cs"> 
    <DependentUpon>LocalDateTest.cs</DependentUpon> 
</Compile> 

这导致容易通航试验:

Nested tests

我故意转移到project.json用于.NET的核心时,“迷失”这个功能,但曾希望这将返回转换时的MSBuild 。但是,它看起来像基于.NET Core SDK的MSBuild项目(根元素<Project Sdk="Microsoft.NET.Sdk">)在Visual Studio 2017中没有得到相同的处理,即使手动添加了ItemGroup以与“旧学校”项目相同的元素。

ASP.NET核心项目接收自动嵌套的缩小的CSS和Javascript,但它不清楚如何将它应用于.NET核心库项目中的C#。

我有它在我的​​风格的项目之一,使用类似于下面的内容工作:

<ItemGroup> 
    <Compile Update="LocalDateTest.*.cs"> 
    <DependentUpon>LocalDateTest.cs</DependentUpon> 
    </Compile> 
</ItemGroup> 

这里的技巧是使用Update而不是Include。这是因为隐式项目来自主项目之前导入的道具文件。额外的Include不会影响已包含的文件,但可以使用Update修改它们。

+0

好吧,这是奇怪 - 我敢肯定,我试过了,这是行不通的。现在是。非常,非常奇怪。啊 - 这是“更新”而不是“包含”。 –

+0

Habe你试过[这个扩展](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileNesting)? –

+0

@AlexanderClare:那个链接被破坏了,但我想我知道你的意思 - 而且它不起作用。 –

如果使用相同的前缀,它将自动嵌套文件。

例子:

AsemblyInfo.cs 
AsemblyInfo.local.cs 
+1

在一个netstandard项目中,没有任何工作 –