मेरे पास एक बड़ी सी # समाधान फ़ाइल (~ 100 परियोजनाएं) हैं, और मैं बिल्ड समय में सुधार करने की कोशिश कर रहा हूं। मुझे लगता है कि "कॉपी लोकल" हमारे लिए कई मामलों में बेकार है, लेकिन मैं सर्वोत्तम प्रथाओं के बारे में सोच रहा हूं।
हमारे .sln में, हमारे पास असेंबली B के आधार पर आवेदन A है जो असेंबली C. पर निर्भर करता है। हमारे मामले में, "B" के दर्जनों और "C" के एक मुट्ठी भर हैं। चूँकि ये सभी .sln में शामिल हैं, हम प्रोजेक्ट संदर्भ का उपयोग कर रहे हैं। वर्तमान में सभी असेंबली $ (सॉल्यूशनडियर) / डीबग (या रिलीज़) में निर्मित होती हैं।
डिफ़ॉल्ट रूप से, विज़ुअल स्टूडियो इन प्रोजेक्ट संदर्भों को "कॉपी लोकल" के रूप में चिह्नित करता है, जिसके परिणामस्वरूप प्रत्येक "सी" को $ "(सॉल्यूडिर) / डीबग में कॉपी किया जाता है जो प्रत्येक" बी "के लिए एक बार बनता है। यह फिजूलखर्ची लगती है। अगर मैं "स्थानीय कॉपी करें" बंद कर दूं तो क्या गलत हो सकता है? बड़े सिस्टम वाले अन्य लोग क्या करते हैं?
जाँच करना:
प्रतिक्रियाओं के बहुत सारे छोटे .sln फ़ाइलों में निर्माण को तोड़ने का सुझाव देते हैं ... ऊपर दिए गए उदाहरण में, मैं "बी" पहले नींव कक्षाएं "बी" का निर्माण करूंगा, इसके बाद मॉड्यूल "बी" के थोक, और फिर कुछ एप्लिकेशन, " ए"। इस मॉडल में, मुझे B से C के लिए गैर-परियोजना संदर्भ देने की आवश्यकता है। जो समस्या मैं वहां चला रहा हूं वह यह है कि "डीबग" या "रिलीज़" संकेत पथ में बेक हो जाती है और मैं "B" के मेरे रिलीज़ बिल्ड का निर्माण करता हूं। डिबग के खिलाफ "सी" बनाता है।
आप में से उन लोगों के लिए जो बिल्ड को कई .sln फ़ाइलों में विभाजित करते हैं, आप इस समस्या को कैसे प्रबंधित करते हैं?
<Private>True</Private>
एक csproj के समान है ?
.sln
छोटे लोगों में बंटवारे से वीएस की स्वचालित दु: खद निर्भरता की गणना हो जाती है <ProjectReference/>
। मैं कई छोटे से .sln
अधिक एक बड़े .sln
खुद से सिर्फ इसलिए चले गए हैं क्योंकि VS कम समस्याओं का कारण बनता है ... तो, शायद अनुवर्ती मूल प्रश्न का एक नहीं-सबसे अच्छा समाधान मान रहा है? ;-)