2011-03-02 6 views
8

क्या कोई बिल्कुल बताता है कि एक कस्टम MSBuild कार्य कैसे बनाएं और इसे निर्माण के दौरान चलाएं? मुझे लगता है कि Microsoft.Build.Utilities.Task से विरासत और करता है एक कस्टम कार्य के लिए देख रहा हूँ केवल इस:एमएसबिल्ड कस्टम कार्य "हैलो वर्ल्ड" वॉकथ्रू

public override bool Execute() 
{ 
    Log.LogMessage("Hello world!"); 
    return true; 
} 

(मैं घंटों के लिए इस पर काम कर रहा है और हो रही है "[जो] कार्य नहीं मिला रखने की जाँच करें। निम्नलिखित "संदेश। मुझे लगता है कि मुझे कहीं एक आवश्यक कदम याद आना चाहिए। अगर कोई स्पष्ट ट्यूटोरियल है तो मैं इसका अनुसरण कर सकता हूं, शायद मुझे पता चलेगा कि मैं कहां कम हो रहा हूं।)

+0

से आप एक में शामिल कर रहे हैं? क्या आप एमएसबीयूआईएलडी पोस्ट कर सकते हैं जहां आप कार्य के लिए पूर्ण कक्षा के साथ आने का प्रयास करते हैं? –

+1

ठीक है, बिल्ली। यह मेरा बेवकूफ निर्माण कार्य * बाहर * काम कर रहा है। लेकिन Log.LogMessage बिल्ड विंडो में कुछ भी प्रदर्शित नहीं करता है यदि बिल्ड वर्बोजिटी डिफ़ॉल्ट सेटिंग को न्यूनतम सेट पर सेट किया गया है। http://social.msdn.microsoft.com/Forums/en/msbuild/thread/9f60e577-a420-4302-ba5f-703a6cae7992 –

+1

... जब तक मैं ओवरलोड का उपयोग नहीं करता जो मुझे 'MessageImportance.High' निर्दिष्ट करने देता है, और फिर यह न्यूनतम के साथ भी प्रदर्शित करता है। –

उत्तर

6

क्या आप अपना कस्टम कार्य घोषित कर रहे हैं एमएसबिल्ड परियोजना फाइल? आपको इस तरह की एक लाइन की आवश्यकता है:

<UsingTask AssemblyFile="C:\PathTo\MyTasks.dll" TaskName="MyTasks.HelloWord" /> 

फिर एमएसबिल्ड आपके कार्य को निष्पादित कर सकता है।

+1

मैं ऐसा कर रहा था, लेकिन मुझे एहसास नहीं हुआ कि टास्कनाम को नामस्थान सहित वास्तविक वर्ग का नाम होना था। ऐसा लगता है कि मेरा रोडब्लॉक था। –