2017-05-08 8 views
40

"पुराने स्कूल" एमएसबिल्ड परियोजनाओं में - जैसा कि अभी भी वीएस2017 में विंडोज फॉर्म द्वारा उपयोग किया जाता है - फ़ाइलों को csproj फ़ाइल में DependentUpon आइटम के माध्यम से "नेस्टेड" किया जा सकता है।फ़ाइलों को .NET कोर (गैर- एएसपी.नेट कोर) परियोजनाओं के लिए VS2017 समाधान एक्सप्लोरर में घोंसला किया जा सकता है?

मैंने इसे नोडा टाइम में समूह इकाई परीक्षणों के साथ उपयोग किया, उदाहरण के लिए

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

के लिए नेतृत्व किया है कि आसानी से नौगम्य परीक्षण:

Nested tests

मैं जानबूझकर इस सुविधा "खो" जब नेट कोर के लिए project.json में जाने, लेकिन आशा व्यक्त की थी यह वापसी होगी जब MSBuild में कनवर्ट । हालांकि, ऐसा लगता है कि .NET कोर एसडीके (रूट तत्व <Project Sdk="Microsoft.NET.Sdk">) पर आधारित एमएसबिल्ड परियोजनाओं को विजुअल स्टूडियो 2017 में समान उपचार नहीं मिलता है, भले ही ItemGroup "पुराने स्कूल" प्रोजेक्ट के समान तत्वों के साथ मैन्युअल रूप से जोड़ा गया हो।

एएसपी.नेट कोर परियोजनाओं को मिनी सीएसएस और जावास्क्रिप्ट के लिए स्वचालित घोंसले मिलते हैं, लेकिन यह स्पष्ट नहीं है कि .NET कोर लाइब्रेरी प्रोजेक्ट्स में सी # को कैसे लागू किया जाए।

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

चाल यहाँ Include के बजाय Update उपयोग करने के लिए है:

उत्तर

40

मैं इसे निम्न जैसा कुछ का उपयोग कर मेरी Microsoft.NET.Sdk शैली परियोजनाओं में से एक में काम कर रहा है। ऐसा इसलिए है क्योंकि निहित वस्तुएं प्रोप फ़ाइल से आ रही हैं जो मुख्य परियोजना से पहले आयात की जाती है। एक अतिरिक्त Include उन फ़ाइलों को प्रभावित नहीं करेगा जो पहले से ही शामिल हैं, लेकिन उन्हें Update का उपयोग करके संशोधित किया जा सकता है।

+0

ठीक है, यह विचित्र है - मुझे यकीन है कि मैंने कोशिश की है कि हूँ, और यह काम नहीं कर रहा था। अब यह है बहुत, बहुत विचित्र। आह - यह "शामिल करें" के बजाय "अपडेट" है। –

+0

हैब आपने कोशिश की [इस एक्सटेंशन] (https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileNesting)? –

+0

@AlexanderClare: वह लिंक टूटा हुआ है, लेकिन मुझे लगता है कि मैं तुम्हारा मतलब जानता हूं - और यह काम नहीं करता है। –

1

यदि आप एक ही उपसर्ग का उपयोग करते हैं तो यह स्वचालित रूप से फ़ाइलों को घोंसला देगा।

उदाहरण:

AsemblyInfo.cs 
AsemblyInfo.local.cs 
+1

एक शुद्ध मानक परियोजना में, कुछ भी काम नहीं करता है –