से लॉग में परिवर्तनीय मान को आउटपुट कैसे करें MSBuild से लॉग में परिवर्तनीय मान आउटपुट कैसे करें?MSBuild
मैं एक एमएसबिल्ड स्क्रिप्ट डीबग करने की कोशिश कर रहा हूं और लॉग के चर चर को आउटपुट करना चाहता हूं।
से लॉग में परिवर्तनीय मान को आउटपुट कैसे करें MSBuild से लॉग में परिवर्तनीय मान आउटपुट कैसे करें?MSBuild
मैं एक एमएसबिल्ड स्क्रिप्ट डीबग करने की कोशिश कर रहा हूं और लॉग के चर चर को आउटपुट करना चाहता हूं।
आप वास्तव में वीएस -2010 के साथ debug msbuild स्क्रिप्ट्स कर सकते हैं। इसके लिए कुछ हैकिंग की आवश्यकता है और यह आधिकारिक रूप से समर्थित नहीं है लेकिन यह एक विकल्प है।
अन्यथा Message
कार्य का उपयोग करें। Properties
, Items
और Item Metadata
(जिसे batching भी कहा जाता है) के संदर्भ के लिए सामान्य नियम लागू होते हैं।
यह उदाहरण:
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<TestItem Include="test1" />
<TestItem Include="test2" />
<TestItem Include="test3" />
</ItemGroup>
<PropertyGroup>
<TestProperty>Property Value</TestProperty>
</PropertyGroup>
<Target Name="TestMessage" AfterTargets="Build" >
<!--Use $(Property Name) to reference a property-->
<Message Text="$(TestProperty)" Importance="high"/>
<!--Use @(Item Name) to output a semi-colon separated list of items on one line-->
<Message Text="@(TestItem)" Importance="high"/>
<!--Use %(Item Name.Metadata Property Name) to call the Message task once for each item.-->
<!--This will output each item on a separate line-->
<Message Text="%(TestItem.Identity)" Importance="high"/>
</Target>
</Project>
इस उत्पादन का उत्पादन होगा:
Property Value
test1;test2;test3
test1
test2
test3
अपना उत्तर उपयोग करने में आसान बनाने के लिए, प्रत्येक संदेश तत्वों में महत्व = "उच्च" विशेषता जोड़ने पर विचार करें। इस प्रकार संदेशों को डिफ़ॉल्ट रूप से दिखाया जाएगा जब आप एमएसबिल्ड को कॉल करते हैं या यदि आप वीएस –
में बिल्ड आउटपुट देखते हैं, तो यह भी जल्दी है कि आप इसे मौजूदा सीस्पोज़ में परिभाषित लक्ष्य जोड़ना चाहें और पहले लक्ष्य को जोड़ दें = लक्ष्य के लिए "बनाएँ"। फिर बस वीएस के साथ बनाएँ और निर्माण आउटपुट में देखो। –
आउटपुट कहां दिखाएगा? विजुअल स्टूडियो की आउटपुट विंडो में (और "आउटपुट दिखाएं: बिल्ड करें")? इसके अलावा, मैं इसे किस फाइल में डाल रहा हूं? मैंने बस इसे 'सी: \ प्रोग्राम फ़ाइलें (x86) \ माइक्रोसॉफ्ट विजुअल स्टूडियो \ 2017 \ एंटरप्राइज़ \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets' फ़ाइल में जोड़ने का प्रयास किया, लेकिन मुझे कुछ भी दिखाई नहीं दे रहा है उत्पादन। – jbyrd
मैं इस सवाल मदद मिल सकती है आपकी समस्या का समाधान लगता है। http://stackoverflow.com/questions/2968077/trouble-with-outputting-msbuild-variables – awright18