2009-03-29 18 views
33

पर अलग-अलग डीबग/रिलीज संदर्भ जोड़ें जब उपयोगकर्ता नियंत्रण या वीएस 2008 सी # प्रोजेक्ट के प्रोजेक्ट संदर्भ को जोड़ते समय, मैं असेंबली की केवल एक कॉन्फ़िगरेशन जोड़ सकता हूं। कंटेनर प्रोजेक्ट की कॉन्फ़िगरेशन के आधार पर अलग कॉन्फ़िगरेशन जोड़ना संभव है।सी #/वीएस 2008: एक परियोजना

उदा। मैं उपयोगकर्ता नियंत्रण विकसित कर रहा हूं, और मैं नमूना आवेदन पर काम कर रहा हूं। मैं उपयोगकर्ता नियंत्रण जोड़ना चाहता हूं ताकि नमूना का एक डीबग निर्माण उपयोगकर्ता नियंत्रण के डीबग बिल्ड का उपयोग करेगा, और उपयोगकर्ता नियंत्रण के रिलीज निर्माण के नमूने के रिलीज का निर्माण करेगा।

कोई सुझाव?

उत्तर

25

आप csproj फ़ाइल को संपादित करके ऐसा कर सकते हैं; संदर्भ में एक "शर्त" विशेषता जोड़ें।

<Reference Include="Foo" Condition="'$(Configuration)'=='Debug'"/> 
<Reference Include="Bar" Condition="'$(Configuration)'=='Release'"/> 

हालांकि, मैं इस इकाई के परीक्षण के लिए इसका मतलब है के बारे में चिंता करना होगा।

+0

प्रश्न के बारे में उपयोग करने के लिए है वही 'UserControl', इस तरह से हम दो बार संदर्भ नहीं जोड़ सकते हैं और विजुअल स्टूडियो इसे @ सल्वाटोर प्रीविटी को सबसे अच्छा जवाब देने की अनुमति नहीं दे रहा है। – CallMeLaNN

5

जबकि @Marc Gravell का सुझाव काम करेगा, क्या कोई कारण है कि आप दोनों परियोजनाओं को एक ही समाधान में नहीं चाहते हैं? यदि वे एक ही समाधान में हैं, तो आप नमूना ऐप की परियोजना में उपयोगकर्ता नियंत्रण प्रोजेक्ट को संदर्भित करते समय एक परियोजना संदर्भ जोड़ सकते हैं। जब एक परियोजना संदर्भ का उपयोग किया जाता है, तो विजुअल स्टूडियो स्वचालित रूप से डीबग बिल्ड के लिए डीबग संस्करण जोड़ देगा, और रिलीज बिल्ड के लिए रिलीज़ संस्करण।

+1

यदि संदर्भित परियोजना अलग-अलग स्रोत नियंत्रण में है (शायद यह एक सामान्य उद्देश्य लाइब्रेरी प्रोजेक्ट है) तो संदर्भ नियंत्रण प्रोजेक्ट को स्रोत नियंत्रण में जोड़ने का प्रयास करते समय समस्या हो सकती है। –

31
<Reference Include="MyLibrary"> 
    <HintPath>..\$(Configuration)\MyLibrary.dll</HintPath> 
</Reference> 

यह एक संदर्भ जोड़ें ".. \ डीबग \ MyLibrary.dll" अगर डिबग मोड या .. \ रिलीज \ MyLibrary.dll "में संकलित करता है, तो रिलीज़ मोड में संकलित।

+0

ग्रेट उत्तर + सापेक्ष पथ का उपयोग करता है क्योंकि डीएलएल समाधान से बाहर फ़ोल्डर में हो सकता है। – CallMeLaNN

+0

और विजुअल एस ट्यूडियो (मेरे मामले में वीएस -2010) विनम्र प्रतीत होता है और यह ऐसे हाथ-संपादन को परेशान नहीं करता है जब एक बाद में आईडीई से प्रोजेक्ट फ़ाइल को संशोधित करता है। एक परीक्षण के रूप में मैंने एक नई कक्षा को जोड़ा, सब ठीक काम किया। –

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