2011-06-07 17 views
7

में मूल निर्देशिका मिल NAnt में मैं अपने प्रोजेक्ट की जड़ प्राप्त करने के लिए एक बहुत ही सरल संपत्ति है, यह इस तरह दिखता है ...MSBuild

<property name="project.root.folder" 
      value="${directory::get-parent-directory(directory::get-parent-directory(project.local.folder))}" /> 

यह मैं अपने प्रोजेक्ट की जड़ तक का समय लगता है जहाँ से मैं अपने सभी पथ बनाते हैं।

एमएसबिल्ड में मैं अपनी वर्तमान निर्देशिका प्राप्त करने के लिए $ (MSBuildProjectDirectory) का उपयोग कर सकता हूं लेकिन मैं मूल निर्देशिका का पूरा पथ प्राप्त करना चाहता हूं। NAnt निर्देशिका :: get-parent-निर्देशिका का उपयोग करता है जो एक आकर्षण का काम करता है और मुझे उम्मीद है कि एमएसबिल्ड में कुछ ऐसा ही उपलब्ध है।

मुझे पिछले समान प्रश्न (http://stackoverflow.com/questions/514264/msbuild-find-msbuildprojectdirectory-parent-directory) मिला लेकिन मुझे लगता है कि वहां कुछ आसान उपलब्ध होना चाहिए, निश्चित रूप से!

सैम:)

+0

ऐसा लगता है क्या? आह, यह आपके लिए तय! – alternative

+0

हाहा, सुनिश्चित नहीं है कि आपने यह कैसे किया लेकिन धन्यवाद! – samaspin

+0

बमबैम: 4 रिक्त स्थान के साथ इंडेंट। – alternative

उत्तर

13

मैं यह सोचते हैं रहा है कि इस MSBuild 4.0 है। आप यह कर सकते हैं:

<PropertyGroup> 
    <RootFolder>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</RootFolder> 
</PropertyGroup> 
<Message Text="RootFolder: '$(RootFolder)'" /> 
+0

संस्करण 3.5, शर्म की बात है, शायद अपग्रेड करने का समय लगता है! – samaspin

+0

क्या यह एक वीएस 2010 परियोजना है, या 2008? –

+0

क्या यह आपको प्रोजेक्ट निर्देशिका वापस नहीं देगा? वैसे ही जैसे आपने $ (MSBuildProjectDirectory) का उपयोग किया था? –

0

सवाल आप अपने पोस्ट किए गए इस सवाल का जवाब है, और यह एक सभ्य एक लग रहा है। एमएसबिल्ड परियोजनाओं के आसपास बनाया गया है और समाधान नहीं, इसलिए समाधान समाधान देने के लिए कुछ ढूंढना थोड़ा अनुकूलन की आवश्यकता है। विचार करने का एक तथ्य यह है कि कई परियोजनाओं के लिए समाधान फाइलें परियोजना पेड़ (या एमएसबिल्ड पार्लान्स में 'शंकु') की जड़ पर स्थित नहीं हैं।

MSBuild Reserved Properties

+0

यह मुझे पथ सी: \ GIT \ NAntTest \ build देता है और मैं एक संपत्ति के रूप में सी: \ GIT \ NAntTest चाहता हूं, इसलिए मैं इसे अपने सभी सापेक्ष URL – samaspin

+0

BAMBAM के लिए प्रारंभिक ब्लॉक के रूप में उपयोग कर सकता हूं - ओह आप पूर्ण समाधान चाहते हैं पथ! समझ गया। (यह मानते हुए कि परियोजना समाधान के सापेक्ष है)। –