2016-03-10 11 views
13

में परियोजना निर्भरताओं के लिए परियोजना रेफरी के साथ डीएलएल रेफरी को बदलें, क्या विजुअल स्टूडियो सी #/वीबी.नेट समाधान में परियोजना निर्भरताओं के लिए परियोजना रेफरी के साथ प्रोग्रामेटिक रूप से डीएलएल रेफ को प्रतिस्थापित करना संभव है?विजुअल स्टूडियो सी # समाधान

पृष्ठभूमि:

मैं कुछ विरासत कोड जहां प्रत्येक परियोजना के लिए निर्भरता ज्यादातर बजाय समाधान में इसी परियोजना या भी बदतर से परियोजना संदर्भ सहित संकलित DLLs के रूप में दर्शाया जाता है के साथ काम कर रहा हूँ - GAC से सीधे संदर्भित!

अभी मुझे मैन्युअल रूप से प्रत्येक डीएलएल संदर्भ को हटाना होगा और इसे दर्जन परियोजनाओं में से प्रत्येक समाधान के लिए वीएस यूआई से परियोजना संदर्भ के साथ प्रतिस्थापित करना होगा।

परियोजना/समाधान एक्सएमएल .csproj/.sln फ़ाइलों को संपादित करना GUIDs के कारण सरल नहीं है:

<!--typical DLL reference--> 

<ItemGroup> 
    <Reference Include="MyDLL, Version=2.0.1.0, Culture=neutral, PublicKeyToken=1b6d1e0267e1acba, processorArchitecture=MSIL"> 
     <SpecificVersion>False</SpecificVersion> 
     <HintPath>...\MyDLL.dll</HintPath> 
    </Reference> 
</ItemGroup> 

<!--typical Project reference--> 

<ItemGroup> 
    <ProjectReference Include="..\MyDLL\MyDLL.csproj"> 
     <Project>{3cc27830-3d6b-4071-85e5-5a4006f11142}</Project> 
     <Name>MyDLL</Name> 
    </ProjectReference> 
</ItemGroup> 
+1

आप कुछ संदर्भ बदल सकते हैं और परिवर्तन से पहले और बाद में .csproj फ़ाइल में सूचीबद्ध किए गए थे इसकी तुलना करें। यदि कोई पैटर्न है, जो आपको सामान्यीकृत करने देगा, तो आप कस्टम कंसोल ऐप या कुछ टेक्स्ट एडिटर में रेगेक्स का उपयोग करके उन्हें प्रतिस्थापित कर सकते हैं। – Edin

+0

@Edin परियोजना हैश के बारे में कैसे? – denfromufa

+1

मुझे लगता है कि आप प्रोजेक्ट GUIDs का मतलब है - आप तत्व ProjectGuid को ढूंढकर उन्हें एकल प्रोजेक्ट फ़ाइलों से हल कर सकते हैं।यह कोड के लिए संभव है, हालांकि यह निर्भर करता है कि आपको कितनी परियोजनाओं को प्रतिस्थापित करने की आवश्यकता है और यदि ऐसा करने का समय स्वचालित समाधान प्रोग्रामिंग से बहुत कम होगा ... या यदि आपको किसी कारण से इसे बार-बार करना है। और चलो भूलें, स्वचालित समाधान कोडिंग अधिक मजेदार है :) – Edin

उत्तर

5

इस प्लग-इन का उपयोग करें .. यह आपकी समस्या

https://visualstudiogallery.msdn.microsoft.com/056617a4-da39-4d7b-8ecf-933009d9b721

पर मदद कर सकता है

इसमें नीचे

फ़ाइल से परियोजनाओं (और इसके विपरीत ए) परियोजनाओं को जोड़ने के दौरान संदर्भ। प्रोजेक्ट हटा दिए जाने पर संदर्भ वापस आते हैं।

उपयोग:

आप परियोजना एक जो विधानसभा "b.dll" के लिए एक फ़ाइल संदर्भ है विकसित कर रहे हैं। किसी बिंदु पर आपको "b.dll" में परिवर्तन करने की आवश्यकता है। तो आप समाधान में परियोजना "बी" जोड़ें। ReferenceSwitcher कि इस परियोजना बी एक विधानसभा "b.dll" और यदि आप चाहते बी

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

और जानकारी: http://markkemper1.blogspot.com/2011/09/project-to-file-reference-switcher-for.html

संपादित करें: वहाँ प्लग में उद्देश्य उपलब्ध हल करने के लिए के बहुत सारे हैं उन्हें बाहर की जाँच

https://visualstudiogallery.msdn.microsoft.com/197d94f6-6276-471d-853d-a5a322ccb08c

या उन्हें खोज सभी

https://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=SearchText&f%5B0%5D.Value=reference&pageIndex=2

+0

यह बहुत अच्छा है! मुझे जांचें कि उनमें से कोई भी मेरे मामले में काम करता है या नहीं। एकमात्र समस्या यह है कि ये 2 प्लगइन्स वीएस 2015 के साथ संगत नहीं हो सकते हैं। – denfromufa

+1

मुझे आशा है कि वे करेंगे .. पहले https://visualstudiogallery.msdn.microsoft.com/197d94f6-6276-471d-853d-a5a322ccb08c का उपयोग करने का प्रयास करें .. मुझे लगता है .. यह पूरी तरह से आपकी मदद करने के लिए बनाया गया है :) – Moumit

+0

इनमें से कोई भी एडिन वीएस 2015 के साथ काम नहीं करता !!! – denfromufa

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