2017-03-10 7 views
5

वी.एस. 2015 में, हम तो जैसे global.json में एक स्थानीय पथ निर्दिष्ट करने के लिए सक्षम होने के लिए इस्तेमाल किया फिर उस मार्ग से सभी परियोजनाओं को वर्तमान समाधान में जोड़ें, जिससे हम उन्हें मौजूदा परियोजनाओं से आसानी से संदर्भित कर सकें।वी.एस. 2017 संदर्भ स्थानीय परियोजनाओं filepath द्वारा (वी.एस. 2015 में global.json का उपयोग कर की तरह)

अब वीएस 2017 ने सीएसपीआरजे का उपयोग करने के लिए अपना मॉडल बदल दिया है, और इस प्रक्रिया में प्रोजेक्ट.जेसन और ग्लोबल.जेसन से छुटकारा पा रहा है, क्या किसी को इसका कोई तरीका पता है?

सबसे अच्छा जो मैंने प्राप्त किया है वह मैन्युअल रूप से अन्य परियोजनाओं को एक-एक करके समाधान में शामिल करना है। फिर, उन सभी मौजूदा परियोजनाओं में जिन्हें संदर्भित करने की आवश्यकता है, मुझे उन्हें शामिल करने के लिए अपने csproj को संपादित करना होगा। यह वास्तव में एक स्थान पर फ़ाइलपैथ समेत पिछले तरीके की तुलना में बोझिल है।

इसके साथ किसी भी मदद के लिए धन्यवाद।

+0

[.net कोर (csproj) global.json 'प्रोजेक्ट्स' समकक्ष के संभावित डुप्लिकेट] (http://stackoverflow.com/questions/42773815/net-core- csproj-वैश्विक-json-परियोजनाओं-बराबर) – Set

उत्तर

0

ठीक है दोस्तों, यह मई है और हमारे पास अभी भी माइक्रोसॉफ्ट से आधिकारिक समाधान नहीं है। मुझे पावरहेल और नए .NET कोर सीएलआई का उपयोग करके कुछ काम मिल गया। प्रोजेक्ट से समाधान जोड़ने/निकालने के लिए पहले से ही dotnet.exe में बनाए गए आदेश हैं, इसलिए यहां मैं क्या आया हूं।

Includes.json

{ 
    "Includes": [ 
     "C:\\projects\\SomeProjectA\\src", 
     "C:\\git\\SomeProjectB\\src" 
    ] 
} 

ऐड-Includes.ps1

echo "Beginning import of projects in Includes.json" 

$JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json 

$IncludePaths = $JsonIncludes.Includes; 
foreach ($IncludePath in $IncludePaths) { 

    $ProjectFiles = Get-ChildItem ($IncludePath + "\*") ` 
        -Include *.csproj ` 
        -Recurse ` 
        | % {$_.FullName } 

    foreach ($ProjectFile in $ProjectFiles) { 
     dotnet sln add $ProjectFile 
    } 
} 

निकालें-Includes.ps1

echo "Beginning removal of projects in Includes.json" 

$JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json 

$IncludePaths = $JsonIncludes.Includes; 
foreach ($IncludePath in $IncludePaths) { 

    $ProjectFiles = Get-ChildItem ($IncludePath + "\*") ` 
        -Include *.csproj ` 
        -Recurse ` 
        | % {$_.FullName } 

    foreach ($ProjectFile in $ProjectFiles) { 
     dotnet sln remove $ProjectFile 
    } 
} 

पुरानी ग्लोबल.जेसन फ़ाइल का उपयोग करने की तुलना में यह कुछ अतिरिक्त कदम है, लेकिन यह वही है जो हमें चाहिए। इसे वास्तव में सुविधाजनक बनाने के लिए, एक समाधान फ़ोल्डर जोड़ें और Includes.json शामिल करें ताकि आप इसे आसानी से विजुअल स्टूडियो के भीतर से संशोधित कर सकें।

कुछ नोट:

  • जोड़ें/निकालें स्क्रिप्ट लगभग ठीक ही कर रहे हैं, फर्क सिर्फ इतना है डॉटनैट SLN जोड़/आदेश को दूर है। यह शायद एक इंटरैक्टिव स्क्रिप्ट में साफ किया जा सकता है।
  • आप चीजों को भी बदल सकते हैं ताकि अलग-अलग ऐड/निकासी स्क्रिप्ट होने की बजाय, आप बस शामिल हैं। Json और इसकी तुलना इसकी तुलना करें .sln फ़ाइल को पार्स करके समाधान में वर्तमान में कौन सी परियोजनाएं हैं।

बस विचार के लिए भोजन। यदि आप क्लोन/डाउनलोड करना चाहते हैं तो रेपो यहां दिया गया है: https://github.com/rushfive/VS2017-Includes

संबंधित मुद्दे