- मैं एक दृश्य स्टूडियो 2010 परियोजना में कस्टम फ़ाइलों का एक समूह है।
- मुझे बदलने पर उन्हें उन कस्टम फ़ाइलों पर एक उपकरण चलाने की आवश्यकता है।
- उपकरण मौजूदा .cpp फ़ाइलों द्वारा शामिल .h फ़ाइलों को उत्पन्न करता है।
- मैं उपकरण को निर्माण प्रक्रिया के हिस्से के रूप में चलाने के लिए चाहता हूं।
- इसे दृश्य स्टूडियो के भीतर से चलाने की जरूरत है, लेकिन आदर्श रूप से एमएसबिल्ड प्रक्रिया के हिस्से के रूप में भी चलाया जा सकता है।
मौजूदा घटिया समाधान
प्रत्येक फ़ाइल पर, हर बार मैं इसे जोड़ने के लिए, मैं कस्टम बिल्ड में, फ़ाइल सेटिंग्स पर जा सकते हैं मद प्रकार सेट कस्टम उपकरण का निर्माण करने के लिए, और उसके बाद टूल संवाद, कमांड लाइन पैरामीटर सेट करें, (हार्डकोडेड) आउटपुट सेट करें, और (हार्डकोडेड) अतिरिक्त निर्भरताओं को सेट करें।
जाहिर है, यह एक खराब समाधान है क्योंकि जब भी आप कस्टम प्रकार की एक नई फ़ाइल जोड़ते हैं तो यह एक गैर-तुच्छ और त्रुटि-प्रवण राशि है।
वांछित समाधान
मैं दृश्य स्टूडियो की स्थापना की है कि विस्तार .foo की जो कुछ भी फ़ाइल के लिए, यह उपकरण bar.exe चलाता है, जब .foo फ़ाइल परिवर्तन, इससे पहले कि यह सीपीपी कोड संकलित करता है।
चीजें मैं
का प्रयास किया है इस के आधार पर: http://msdn.microsoft.com/en-us/library/3e889s84(v=vs.100).aspx मैं एक .targets और .xml फ़ाइल स्थापित करने के लिए प्रयास किया। हालांकि, मुझे पता नहीं चल सकता कि नया आइटम प्रकार कैसे बनाया जाए, जैसे कि यह विजुअल स्टूडियो में दिखाई देता है, और न ही मैं यह समझ सकता हूं कि इसे हर प्रकार की फाइल पर जादुई रूप से कैसे लागू किया जाए। Foo। उस पर, मुझे नहीं पता है कि यह कोई भी कहां से लिंक करता है जो मेरे bar.exe उपकरण को कॉल करने के कार्य का वर्णन करता है।
मैंने मौजूदा आइटम प्रकारों को ट्रैक करने के लिए सभी दृश्य स्टूडियो की एक्सएमएल/लक्ष्य फ़ाइलों के माध्यम से खोज करने का प्रयास किया है और यह निर्धारित किया है कि उनका वास्तविक निर्माण कार्यों में अनुवाद कैसे किया जाता है। यह हमेशा आइटमटाइप की दीवार पर समाप्त होता है, जहां ProjectItemsSchema में वर्णित एक गुच्छा है, लेकिन मुझे नहीं पता कि वे कहां कार्यान्वित किए गए हैं, या मैं उन्हें स्वयं कैसे कार्यान्वित कर सकता हूं।
एमएसडीएन का दस्तावेज पूरी तरह से विफल रहा है, और मुझे लगता है कि मैंने हर संभावित संभावित पृष्ठ को दस बार पढ़ा है, इसका कोई फायदा नहीं हुआ है।
विजुअल स्टूडियो 2008 में, मैं एक .rules फ़ाइल के साथ काम कर बात इस तरह का है कि इस तरह देखा था:
<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
Name="Foo Build Rules"
Version="8.00"
>
<Rules>
<CustomBuildRule
Name="FooBuild"
DisplayName="FooGen"
CommandLine="..\..\tools\FooGen.exe [inputs]"
Outputs="$(InputName).h"
AdditionalDependencies="*.foo"
FileExtensions="*.foo"
ExecutionDescription="Generating Foos..."
>
<Properties>
</Properties>
</CustomBuildRule>
</Rules>
</VisualStudioToolFile>
फिर भी इस कार्यक्षमता 2010 में पदावनत किया गया है, और मैं यह पता लगाने में असमर्थ रहे हैं नई प्रणाली के साथ इसे दोहराने के लिए कैसे।
सहायता?
क्या आपने इसे चेक किया है? http://msdn.microsoft.com/en-us/library/xfsbz6cw(v=vs.100).aspx – hege
जो मैं 2008 में उपयोग कर रहा था। वे अब 2008 में काम नहीं करते हैं। –
मुझे लगता है कि आपने पढ़ना होगा यह भी एक: http://blogs.msdn.com/b/vcblog/archive/2010/04/21/quick-help-on-vs2010-custom-build-rule.aspx। मेरी आँखें क्या पकड़ी गईं यह है कि इसके अनुसार, आपको एक .props फ़ाइल भी चाहिए, शायद यही वह है जो आप खो रहे हैं। हालांकि इसे खुद कोशिश नहीं की है .... – hege