में परियोजना निर्भरताओं के लिए परियोजना रेफरी के साथ डीएलएल रेफरी को बदलें, क्या विजुअल स्टूडियो सी #/वीबी.नेट समाधान में परियोजना निर्भरताओं के लिए परियोजना रेफरी के साथ प्रोग्रामेटिक रूप से डीएलएल रेफ को प्रतिस्थापित करना संभव है?विजुअल स्टूडियो सी # समाधान
पृष्ठभूमि:
मैं कुछ विरासत कोड जहां प्रत्येक परियोजना के लिए निर्भरता ज्यादातर बजाय समाधान में इसी परियोजना या भी बदतर से परियोजना संदर्भ सहित संकलित 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>
आप कुछ संदर्भ बदल सकते हैं और परिवर्तन से पहले और बाद में .csproj फ़ाइल में सूचीबद्ध किए गए थे इसकी तुलना करें। यदि कोई पैटर्न है, जो आपको सामान्यीकृत करने देगा, तो आप कस्टम कंसोल ऐप या कुछ टेक्स्ट एडिटर में रेगेक्स का उपयोग करके उन्हें प्रतिस्थापित कर सकते हैं। – Edin
@Edin परियोजना हैश के बारे में कैसे? – denfromufa
मुझे लगता है कि आप प्रोजेक्ट GUIDs का मतलब है - आप तत्व ProjectGuid को ढूंढकर उन्हें एकल प्रोजेक्ट फ़ाइलों से हल कर सकते हैं।यह कोड के लिए संभव है, हालांकि यह निर्भर करता है कि आपको कितनी परियोजनाओं को प्रतिस्थापित करने की आवश्यकता है और यदि ऐसा करने का समय स्वचालित समाधान प्रोग्रामिंग से बहुत कम होगा ... या यदि आपको किसी कारण से इसे बार-बार करना है। और चलो भूलें, स्वचालित समाधान कोडिंग अधिक मजेदार है :) – Edin