2017-05-08 19 views
40

在「老派」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#。

回答

40

我有它在我的​​風格的項目之一,使用類似於下面的內容工作:

<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:那個鏈接被破壞了,但我想我知道你的意思 - 而且它不起作用。 –

1

如果使用相同的前綴,它將自動嵌套文件。

例子:

AsemblyInfo.cs 
AsemblyInfo.local.cs 
+1

在一個netstandard項目中,沒有任何工作 –

相關問題