2008-09-29 10 views
13

से लक्षित लक्ष्य प्राप्त करना क्या कोई जानता है कि MSBuild कमांड लाइन से TARGET (/ t) का नाम कैसे प्राप्त करें? कुछ प्रकार के लक्ष्य हैं जिन्हें बुलाया जा सकता है और मैं उपयोगकर्ताओं को अधिसूचना में उस संपत्ति का उपयोग करना चाहता हूं।एमएसबिल्ड - कमांड लाइन

उदाहरण:

MSBuild Project.proj /टी: ApplicationDeployment/p: पर्यावरण = देव

मैं अपने .proj फ़ाइल में लक्ष्य शब्द ApplicationDeployment के लिए उपयोग करना चाहते हैं।

क्या कोई ऐसी संपत्ति है जिसका उपयोग मैं कर सकता हूं? कोई संकेत यह कैसे करें?

संपादित करें: मैं इसे प्राप्त करने के लिए किसी संपत्ति में भी पास नहीं करना चाहता हूं।

अद्यतन: यह तैनाती स्क्रिप्ट MSBuild स्क्रिप्ट का उपयोग पर आधारित है। मेरा निर्माण सर्वर केवल कोड के लिए कोड तैनात करने के लिए उपयोग नहीं किया जाता है। बिल्ड सर्वर ने स्वयं अधिसूचनाएं बनाई हैं जिन्हें चुना जा सकता है।

उत्तर

6

मुझे जवाब मिला!

<Target Name="ApplicationDeployment" > 
    <CreateProperty Value="$(MSBuildProjectName) - $(Environment) - Application Deployment Complete"> 
     <Output TaskParameter="Value" PropertyName="DeploymentCompleteNotifySubject" /> 
    </CreateProperty> 

मैं उदासीनता के लिए आंशिक क्रेडिट देना चाहता हूं। सुनिश्चित नहीं है कि यह कैसे करें।

+1

आपके प्रश्न का उत्तर कैसा है?यह आपको कमांड लाइन पर लागू लक्ष्यों की सूची नहीं देगा, यह विशेष कार्य निष्पादित होने पर नई संपत्ति बनाएगा। क्या आपका प्रश्न गलत था? –

+0

संक्षेप में यह एक ही अंतिम परिणाम प्राप्त करता है। यह आपको ऐसी संपत्ति सेट करने देगा जो आपको बता सकता है कि लक्षित लक्ष्य क्या था (मेरे मामले में ऐप डिप्लॉयमेंट बनाम डीबी डिप्लॉयमेंट)। प्रत्येक लक्ष्य को प्राप्त करने के प्रत्येक उदाहरण में आप यह वही संपत्ति सेट कर सकते हैं। मैंने अपने द्वारा बनाए गए मूल्य में चीजों को जोड़कर कुछ और विस्तारित किया। – ferventcoder

8

मुझे यकीन नहीं है कि आप वास्तव में क्या पूछते हैं, लेकिन क्या आप उस स्ट्रिंग को/p विकल्प का उपयोग कर पारित कर सकते हैं?

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV;MyValue=ApplicationDeployment 

केवल अन्य तरह से मैं यह प्रत्येक लक्ष्य में एक सशर्त संपत्ति का उपयोग करने के लिए है करने के लिए देख सकते हैं, और इस तरह पहले लक्ष्य की स्थापना लागू किया जा करने के लिए।

<Target Name="ApplicationDeployment"> 
<PropertyGroup> 
    <InvokedTarget Condition="'${InvokedTarget}'==''">ApplicationDeployment</InvokedTarget> 
</PropertyGroup> 

... 
</Target> 
+0

मैं कर सकता था, लेकिन मैं जानना चाहता हूं कि लक्ष्य को कैसे एक्सेस किया जाए। – ferventcoder

+0

नीचे वोट के लिए धन्यवाद। मैंने एमएसबिल्ड दस्तावेज को जांचने के लिए पढ़ा था, और मुझे विश्वास नहीं है कि एमएसबिल्ड इस जानकारी को प्रदान करता है। कामकाज की पेशकश की। –

+0

मैं कामकाज की सराहना करता हूं –

3

ऐसा करने का कोई तरीका नहीं है (जिसे मैं जानता हूं)। एमएसबिल्ड के निर्माण के लिए अनुरोध किए गए लक्ष्यों की सूची के लिए कोई संपत्ति नहीं है।

हालांकि, अगर आपको कोई रास्ता मिल जाए, तो ध्यान रखें कि यह एक ही लक्ष्य नहीं हो सकता है, बल्कि इसके बजाय लक्ष्य की एक सूची बन सकती है।

+0

दाएं। मै समझता हुँ। : डी – ferventcoder

0

मैं निर्माण निष्पादन और अधिसूचना को संभालने के लिए सीसीएनईटी जैसे सर्वर का उपयोग करने की अनुशंसा करता हूं। निश्चित रूप से, आप अपने MSBuild स्क्रिप्ट को नोटिफिकेशन भेजने के लिए चीजें कर सकते हैं, लेकिन वह डोमेन बिल्ड सर्वर से संबंधित है।

+0

तैनाती स्क्रिप्ट्स सोचें। – ferventcoder

+0

मैंने स्पष्टता के लिए संपादित किया। यह इंगित करने के लिए धन्यवाद कि – ferventcoder

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