के उपयोग को कम करने के लिए विजुअल स्टूडियो प्रॉपर्टी शीट बनाना, मैं एक सी ++ लाइब्रेरी (हेडर सेट, आयात libs और DLLs) का निर्माण कर रहा हूं। मैं इस पुस्तकालय का उपयोग किसी भी डेवलपर के लिए जितना संभव हो सके उतना आसान बनाना चाहता हूं जो इसका उपयोग करना चाहता है। विशेष रूप से मैं नहीं चाहता कि इस लाइब्रेरी के उपभोक्ताओं को अपने प्रोजेक्ट की सभी अलग-अलग कॉन्फ़िगरेशन (डीबग | रिलीज और x86/x64/ARM) के लिए मैन्युअल रूप से हेडर पथ, पुस्तकालय पथ और लिंक लाइब्रेरी को बदलने के बारे में चिंता करने की आवश्यकता हो। मुझे पता है कि मैं संपत्ति पत्रक का उपयोग कर ऐसा कर सकता हूं। मैंने इस उद्देश्य के लिए 6 अलग-अलग संपत्ति पत्रक बनाए हैं (प्रत्येक कॉन्फ़िगरेशन के लिए एक)। प्रत्येक पत्रक के नीचे की तरह दिखता है (लिस्टिंग सिर्फ 86 | डीबग संस्करण, मान लेते हैं कि मैक्रो INCLUDEPATH और LIBPATH सही ढंग से परिभाषित कर रहे हैं):सी ++ लाइब्रेरी
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>MyCPPLib, 1.0</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$INCLUDEPATH;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AdditionalLibraryDirectories);$LIBPATH\x86\Debug</AdditionalLibraryDirectories>
<AdditionalDependencies>MyCPPLib.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
मुझे पता है कि यह सिर्फ एक सहारा फ़ाइल जो कर सकते हैं बनाने के लिए यदि संभव हो तो चाहते हैं उपयोगकर्ता की सक्रिय कॉन्फ़िगरेशन के आधार पर सभी 6 कॉन्फ़िगरेशन का ख्याल रखना? वह फ़ाइल कैसा दिखाई देगी?
ध्यान रखें कि किसी के लिए मानक "रिलीज" और "डीबग" कॉन्फ़िगरेशन से अधिक परिभाषित करने के लिए यह संभव है (यहां तक कि संभवतः)। मैं कई परियोजनाओं को जानता हूं जो उदाहरण के लिए एक .dll बनाने के बनाम स्थिर लाइब्रेरी बनाने के बीच अंतर करने के लिए कस्टम कॉन्फ़िगरेशन को परिभाषित करते हैं। –
@ बिलीओनेल निश्चित। मुझे अपनी लाइब्रेरी के लिए डिफ़ॉल्ट दो "डीबग" और "रिलीज" का समर्थन करने में खुशी होगी। मैं इस संपत्ति शीट सामान के लिए नया हूँ। क्या आप जानते हैं कि इन 6 संविधानों के लिए यह कैसा दिखता है? –
हम्म, मैंने कुछ समय पहले ऐसा कुछ किया था। मैं कल इसे देखने के लिए याद रखने की कोशिश करूंगा। एहसास करने की कुंजी यह है कि ये वास्तव में केवल एमएसबिल्ड फाइलें हैं। और आप सादे एमएसबिल्ड में बस ठीक कर सकते हैं (लेकिन मुझे सिंटैक्स ऑफ-हाथ याद नहीं है)। मैंने पाया कि जब मैंने मूर्खतापूर्ण "दोनों को एक स्ट्रिंग में संयोजित करने के बजाय प्लेटफॉर्म से अलग कॉन्फ़िगरेशन (डीबग/रिलीज़) का इलाज करना शुरू किया, और फिर निर्माण सेटिंग निर्धारित करने के लिए इसका उपयोग करें" सम्मेलन मौजूद है डिफ़ॉल्ट रूप से वीएस परियोजना फाइलों में। :) – jalf