2012-02-03 6 views
7

क्या ऐसी कोई संपत्ति है जिसका उपयोग विजुअल स्टूडियो बिल्ड या टीएफएस बिल्ड में किया जा सकता है जो हमेशा बाइनरी कहां इंगित करेगा?क्या कोई एकल एमएसबिल्ड और टीएफएसबिल्ड वैरिएबल है जो इंगित करेगा कि द्विआधारी कहां हैं?

मतलब कि जब मैं दृश्य स्टूडियो में निर्माण यह सी को इंगित करेगा: \ MySolution \ MyProject \ और एक TFS में बिन \ रिलीज बिल्ड यह सी को इंगित करेगा: \ \ बिल्ड पथ \ MySoution \ बाइनरी

और यदि कोई नहीं है, तो क्यों नहीं? यह एक आम, बुनियादी जरूरत/सुविधा की तरह लगता है।

उत्तर

8

$OutDir संपत्ति है, जिसका उपयोग आप पोस्ट-बिल्ड इवेंट जैसी चीजों में कर सकते हैं।

एक वीएस -2010 निर्माण में, यह वर्तमान परियोजना से बाइनरी तक एक सापेक्ष पथ होगा, इसलिए यह उदाहरण के लिए "बिन \ डीबग \" होगा। (आउटपुट का पूरा पथ $ TargetDir है, जो $ (ProjectDir) \ $ (Outdir) है)।

$ OutDir TFS दौरान ओवरराइड है पथ को इंगित करने के बनाता है, जहां यह अपनी बाइनरी कहते हैं:

<OutDir Condition=" '%(ConfigurationToBuild.PlatformToBuild)' != 'Any CPU' ">$(BinariesRoot)\%(ConfigurationToBuild.PlatformToBuild)\%(ConfigurationToBuild.FlavorToBuild)\</OutDir> 
<OutDir Condition=" '%(ConfigurationToBuild.PlatformToBuild)' == 'Any CPU' ">$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)\</OutDir> 

संपादित करें:

या तो मामले में एक पूर्ण पथ पाने के लिए, एक ही विकल्प आप इस्तेमाल कर सकते हैं है इस तरह कुछ:

IF '$(BuildingInsideVisualStudio)'=='true' (
    COPY SomeFile $(TargetDir)$(OutDir) 
) ELSE (
    COPY SomeFile $(OutDir) 
) 
+0

लेकिन बाहरी व्यक्ति सापेक्ष है। मैं वास्तव में एक पूरा रास्ता पसंद करेंगे। यदि आपके समाधान में उप निर्देशिका में परियोजनाएं हैं तो एक सापेक्ष पथ का उपयोग करना मुश्किल हो जाता है। – Vaccano

+0

मुझे यकीन नहीं है कि आपको इस संपत्ति का उपयोग करने की आवश्यकता है, इसलिए आपको एक बेहतर उत्तर देना मुश्किल है; एक पोस्ट-बिल्ड इवेंट में, उदाहरण के लिए, संपत्ति जो भी प्रोजेक्ट चल रही है उसके सापेक्ष होगी। मैं किसी भी मामले में पूर्ण पथ प्राप्त करने के लिए अपना उत्तर अपडेट कर दूंगा। –

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

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