2012-10-31 5 views
10

मेरे पास एक ओपन सोर्स प्रोजेक्ट है जिसमें मैं मोनो डेवेल (* निक्स समेत) और विजुअल स्टूडियो दोनों पर विकास की अनुमति देने की कोशिश कर रहा हूं। मेरी हाल ही में खोज की गई आवश्यकताओं में से एक है कि मुझे एक आउटपुट फ़ाइल को एक निर्देशिका से दूसरे (सापेक्ष पथ) में कॉपी करने की आवश्यकता है।मोनो डेवलप और विजुअल स्टूडियो पर पोस्ट-बिल्ड स्क्रिप्ट काम के साथ एक परियोजना बनाने का सबसे अच्छा तरीका?

विंडोज़ में copy कमांड है, जबकि * निक्स में cp कमांड है। दोनों प्लेटफॉर्म पर काम करने और कमांड के इस अंतर को हल करने का सबसे अच्छा तरीका क्या है?

+0

आप सभी के लिए एक स्क्रिप्ट होने के बारे में वास्तव में अटल हैं, तो आप cygwin में देखने के लिए चाहते हो सकता है, प्रदान करता है जो " विंडोज के लिए एक लिनक्स दिखता है और महसूस करता है। " यहां और देखें: http://www.cygwin.com/ – nieve

+1

@nieve मैंने इसे इंस्टॉल किया है, मैं बस उन सभी को मजबूर नहीं करना चाहता था जो विंडोज़ पर अपनी परियोजना को संकलित करना चाहते हैं इसे स्थापित करने के लिए – Earlz

+0

आप एक प्रकार का जोड़ सकते हैं अन्य डेवलपर्स के पर्यावरण को स्थापित करने के लिए इंस्टॉलेशन स्क्रिप्ट (रेक/मेक जैसी कुछ), जो कि ओएस के अनुसार पोस्ट-बिल्ड स्क्रिप्ट का निर्णय लेगी। यदि आप मोनो डेवलपमेंट का निर्माण कैसे करते हैं, तो आप देखेंगे कि वे अलग-अलग वातावरण/ओएस के लिए पूरी तरह से विभिन्न तंत्र का उपयोग कर रहे हैं। – nieve

उत्तर

0

आप पाइथन जैसी भाषा में पोस्ट बिल्ड स्क्रिप्ट लिख सकते हैं। या आपको अन्य डेवलपर्स को CygWin इंस्टॉल करने के विकल्प के रूप में GnuWin32 CoreUtils इंस्टॉल करने की आवश्यकता हो सकती है। CoreUtils सीपी शामिल हैं। फिर आप बिना शर्त शर्त सीपी का उपयोग कर सकते हैं।

8

आप $OS वैरिएबल का उपयोग पर्यावरण के आधार पर विभिन्न पोस्ट बिल्ड इवेंट्स के लिए कर सकते हैं। और

<PostBuildEvent Condition="'$(OS)' == 'Windows_NT' "> 
    dir 
</PostBuildEvent> 
<PostBuildEvent Condition="'$(OS)' != 'Windows_NT'"> 
    ls 
</PostBuildEvent> 
5

जहां संभव हो, अगर तुम पर दुबला सकते हैं में निर्मित नहीं बल्कि कस्टम शेल पटकथा लेखन से MSBuild कार्य, व्यवहार xbuild पर काम आम तौर पर होगा (इसलिए ऐसा करने के लिए, आप csproj हाथ से, संपादित करनी होगी की तरह MonoDevelop?) किसी भी बदलाव के बिना, तो मंच-विशिष्ट * proj हैक्स की कोई ज़रूरत नहीं है।

जैसे:

<Target Name="AfterBuild"> 
      <Copy SourceFiles="foo.txt" DestinationFolder="$(OutDir)" /> 
</Target> 

यह मोनो डॉक्स से है: http://www.mono-project.com/archived/porting_msbuild_projects_to_xbuild/#prepostbuildevents

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