2015-02-07 9 views
7

विजुअल स्टूडियो 2013एक संकलन प्रतीक के आधार पर डीएलएल को सशर्त रूप से संदर्भित करने के लिए कैसे?

मैं एक बाहरी DLL जो मैं csproj फ़ाइल में इस तरह संदर्भित कर रहा हूँ है:

<ItemGroup> 
    <Reference Include="NameOfDll"> 
     <HintPath>Path\To\Dll\NameOfDll.dll</HintPath> 
    </Reference> 

मैं जब एक संकलक प्रतीक मौजूद है इस संदर्भ में कार्य करने और जब कि ढंग से काम नहीं करना चाहते हैं कंपाइलर प्रतीक मौजूद नहीं है। (पहली टिप्पणी करने के लिए, नीचे, मान लें कि संकलक प्रतीक फ्रेड कहा जाता है करते हैं।)

यह सवाल [Conditional Reference] बनाया मुझे मैं ऊपर दिखाए गए संदर्भ तत्व को एक विशेषता स्थिति कहा जाता है जोड़ सकते हैं लगता है, लेकिन मैं यह कर सकते हैं ' मैं जो चाहता हूं उसे प्रभावित करने के लिए उस विशेषता को देने के लिए मूल्य क्या है।

मुझे वीएस यूआई में ऐसा करने का एक तरीका दिया जाने वाला सबसे खुशी होगी लेकिन मैं कोई विधि लेगा।

+0

@ हंसपैसेंट कृपया मान लें कि कंपाइलर प्रतीक को फ्रेड कहा जाता है यदि इससे आपको प्रश्न को समझने में मदद मिलती है। एक कंपाइलर प्रतीक एक निर्माण संपत्ति है? – cja

+0

सशर्त कंपाइलर प्रतीक DefineConstants निर्माण संपत्ति में हैं। आप जांच करेंगे कि DefineConstants में स्थिति में कुछ स्ट्रिंग शामिल है। कुछ 'कंडीशन = "$ (DefineConstants.Contains (' Fred ') की तरह कुछ)" ' –

+0

@mikez कृपया उत्तर में थोड़ा और विवरण दें और मैं इसे सही चिह्नित करूंगा – cja

उत्तर

13

सशर्त संकलन प्रतीक DefineConstants MSBuild संपत्ति में हैं। जांचें कि इसमें आपका प्रतीक है:

<Reference Include="NameOfDll" Condition="$(DefineConstants.Contains('Fred'))"> 
    <HintPath>Path\To\Dll\NameOfDll.dll</HintPath> 
</Reference> 

प्रतीक के लिए एक विशिष्ट नाम चुनें। ऐसा कुछ नहीं जो डीबग या ट्रेस जैसे किसी अन्य स्थिरता का सबस्ट्रिंग हो सकता है।

+0

धन्यवाद नकारात्मक पहली टिप्पणी और करीबी वोट को खारिज कर दिया – cja

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

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