2013-09-02 8 views
175

मैंने एक कस्टम MSBuild .targets फ़ाइल बनाई है जिसे मैंने आईडीई के माध्यम से डेल्फी एक्सई प्रोजेक्ट में शामिल किया है और इसे प्रोजेक्ट मैनेजर के संदर्भ मेनू से सक्षम किया है। हालांकि फ़ाइल मान्य है, प्रोजेक्ट फ़ाइल को फिर से सहेजने के बाद यह हमेशा अक्षम हो जाता है।डेल्फी एक्सई कस्टम बिल्ड लक्ष्य हमेशा अक्षम किया जाता है

यहां Custom.targets नामक लक्ष्य फ़ाइल का सरलीकृत संस्करण है।

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="Hello"> 
    <Message Text="Hello from custom target"/> 
    </Target> 
</Project> 

योग्य स्वतंत्र फ़ाइल इस रूप में की उम्मीद काम करता है के रूप में: टाइपिंग ...

MSBuild Custom.target /t:Hello 

... आदेश पंक्ति पर उम्मीद संदेश देता है।

आईडीई के माध्यम से एक डेल्फी परियोजना के लिए Custom.targets जोड़ा जा रहा है के रूप में उम्मीद परियोजना प्रबंधक में फ़ाइल को प्रदर्शित करता है, और .dproj फ़ाइल अब पंक्ति है ...

<TargetsFile Include="Custom.targets"/> 

मैं दायाँ क्लिक किया है आईडीई के दशक में फ़ाइल परियोजना प्रबंधक और चयनित Enable। लेकिन जब परियोजना Build संदेश विंडो प्रदर्शित करता है बनाया गया है:

[MSBuild चेतावनी] Custom.targets (1): विकलांग आयात की उपेक्षा: PathToProjectSource\\Custom.targets

परियोजना प्रबंधक में फिर से राइट क्लिक अभी भी पता चलता अपेक्षित Disable के बजाय Enable विकल्प।

कमांड लाइन MSBuild ProjectName.dproj /t:Hello भी विफल हो जाती है।

मैं पंक्ति जोड़ने के लिए .dproj फ़ाइल हैकिंग की कोशिश की है ...

<Import Project="Custom.targets"/> 

MSBuild ProjectName.dproj /t:Hello लिखने से अब काम करता है। लेकिन अगली बार जब मैं आईडीई से प्रोजेक्ट फ़ाइल को सहेजता हूं तो <Import> कथन हटा दिया जाता है।

किसी को भी पता है कि क्या गलत हो रहा है?

+10

कमांडलाइन से MSBuild का उपयोग कर के अपने उदाहरण में आप _Custom.target_ जबकि हर जगह दिखाने अन्यथा आप _Custom.targets_ का उपयोग करते हैं। जो यह है? –

+4

अच्छी जगह - मैंने यह नहीं देखा था कि कोड पर बहुत ज्यादा घूरने के बावजूद। मैं कुछ दिनों (अस्पताल में) के लिए डेल्फी के साथ एक मशीन नहीं जा सकता, लेकिन जब मैं कर सकता हूं तो लगातार "लक्ष्य" या "लक्ष्य" का उपयोग करके कोड का प्रयास करूंगा। – delphidabbler

+6

डेल्फी उपयोगकर्ता नहीं, लेकिन [इस] के अनुसार (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/targetsfiles_xml.html) _ सभी। लक्ष्य फ़ाइलों में वैध MSBuild स्क्रिप्ट शामिल होनी चाहिए त्रुटियों से मुक्तअगर फ़ाइल में कोई त्रुटि है, तो आपको अधिसूचित किया जाता है और, यदि प्रोजेक्ट अमान्य। Targets फ़ाइल का संदर्भ देता है, तो यह अक्षम है और त्रुटियों को ठीक होने तक पुनः सक्षम नहीं किया जा सकता है ._ डबल चेकिंग के लायक हो सकता है सब ठीक है जैसा कि बताता है आप जो लक्षण प्राप्त कर रहे हैं –

उत्तर

1

डेल्फी पूरी डीप्रोज़ सामग्री स्वयं उत्पन्न करता है और यह कस्टम आयात हमेशा हटा दिया जाएगा।

आप अपनी खुद की एमएसबिल्ड एक्सएमएल फाइलें लिख सकते हैं लेकिन डीप्रोजे डेल्फी से संबंधित है।

जब तक आपके पास स्रोत कोड न हो या बंदर को उस विचार को पैच करने के इच्छुक न हो जो आप ऐसा नहीं कर सकते।

तुम सच में एक लचीला एक्सएमएल तरह से डेल्फी परियोजनाओं का निर्माण और लक्ष्य की कोशिश की बहुतायत चाहते हैं या vNext (bitbucket पर मेरे कांटा) चाहते हैं बनाना चाहते हैं

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