2010-04-28 4 views
26

में चल रहा हूं क्या विजुअल स्टूडियो सेट कोई एमएसबिल्ड गुण है? मैं विजुअल स्टूडियो के संस्करण (यदि कोई है) के आधार पर कुछ सशर्त व्यवहार ढूंढ रहा हूं।एमएसबिल्ड में यह निर्धारित करना संभव है कि मैं विजुअल स्टूडियो

+0

क्या आपने पिछली पोस्ट का जवाब देखा है: http://stackoverflow.com/questions/2499253/msbuild-how-to-set-condition-using-a-condition-stored-in-a-property शायद यह सही ट्रैक – used2could

+0

पर मिलेगा पुराने वीएस संस्करणों से क्रूड है और नई परियोजना फ़ाइलों में नहीं है। इसे पूरी तरह से अनदेखा करें। – dan

उत्तर

34

आपके द्वारा उपयोग किए जाने वाले संपत्ति मूल्य BuildingInsideVisualStudio है, जब आप विजुअल स्टूडियो के अंदर बना रहे हैं तो यह संपत्ति सत्य पर सेट हो जाएगी। चूंकि प्रोजेक्ट फ़ाइल में ProductVersion घोषित किया गया है, इसलिए आप इसका उपयोग नहीं कर सकते हैं क्योंकि यह वही मूल्य होगा चाहे वीएस के अंदर या msbuild.exe के माध्यम से हो।

+3

यहां प्रलेखन: http://msdn.microsoft.com/en-us/library/ms171468(en-us).aspx। –

+0

ध्यान दें कि यह संपत्ति सक्षम है भले ही आप कंसोल से devenv.com चला रहे हों। –

0

हां, <ProductVersion> एक प्रोजेक्ट फ़ाइल में सूचीबद्ध है। यह विजुअल स्टूडियो संस्करण संख्या से मेल खाता है।

+0

इस पर मेरी टिप्पणी देखें। –

0

<ProductVersion> आपको एमएसबिल्ड का संस्करण देगा जो बिल्ड प्रक्रिया चला रहा है।

ध्यान दें कि वीएस 2010 में निर्माण प्रक्रिया या तो नेट 4.0 या 3.5 को लक्षित कर सकती है, यदि आपको सशर्त संकलन एमएसबिल्ड संस्करण पर या निर्माण के लक्ष्य ढांचे पर निर्भर करता है और निर्माण के उपकरण पर निर्भर करता है तो आपको ध्यान से विचार करने की आवश्यकता है। का उपयोग करते हुए। यदि आपकी स्थिति लक्ष्य ढांचे पर आधारित है, तो <TargetFrameworkVersion> का उपयोग करें।

बेशक, यदि आपका निर्माण वीएस 2008 के तहत भी चलाया जा सकता है, तो <TargetFrameworkVersion> गुम होने पर आपको उचित फ़ॉलबैक का समर्थन करने की आवश्यकता है।

1

सीधे अपने शीर्षक में प्रश्न को हल करने के लिए - यदि आप केवल अगर आप वी.एस. से है या नहीं बनाई जा रही हैं पता करने के लिए है, जो true या false उचित रूप से वापस आ जाएगी IsDesktopBuild के मान की जाँच करना चाहते हैं।

+2

यह केवल टीएफएस पर लागू होता है। –

+0

@ सैयद धन्यवाद। क्योंकि मैंने केवल टीएसएफ के भीतर से एमएसबिल्ड का उपयोग किया है, मुझे नहीं पता कि विभाजन के बिंदु कहां हैं! – AakashM

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