2010-10-28 9 views
6

में लक्ष्य का पता लगाने में विफल मुझे टीमसिटी एमएसबिल्ड प्रतिस्थापन के साथ कुछ समस्याएं हैं जो मुझे लगता है।टीमसिटी: एमएसबिल्ड परियोजना

मैंने एमएसबिल्ड कार्य (NANT Contrib) का उपयोग करके NANT के साथ डेल्फी 2010 प्रोजेक्ट (एमएसबिल्ड अनुपालन) संकलित करने का प्रयास किया है।

सबकुछ ठीक काम करता है, अगर मैं इसे कंसोल पर टीमसिटी के बिना करता हूं।

Failed to detect default target(s) in the project file F:\CI\TeamCity\TeamCity\buildAgent\work\892195dab42324a3\build\src.temp\TestProject\Test.dproj. Please define targets explicitly in the build configuration options on TeamCity Web UI. Project does not define DefaultTargets or InitialTargets. 

मैं स्पष्ट रूप से MSBuild/लक्ष्य स्विच पुनर्निर्माण लक्ष्य की ओर इशारा करते के माध्यम से लक्ष्य निर्धारित करने के लिए कोशिश की है:

अगर मैं TeamCity के साथ प्रयास करें, मैं निम्न त्रुटि संदेश मिलता है। अब तक कोई भाग्य नहीं है।

कोई सुझाव? अग्रिम में धन्यवाद।

संपादित करें:

<foreach item="File" property="iterator.dproj"> 
     <in> 
      <items> 
       <include name="${src.temp}\**\*.dproj" /> 
      </items> 
     </in> 
     <do> 
      <msbuild project="${iterator.dproj}"> 
       <arg value="/target:Rebuild" />     
      </msbuild> 
     </do> 
    </foreach> 

* .dproj फाइल है एक मानक डेल्फी 2010 परियोजना फ़ाइल (यह XSL के साथ बदल रहा है लेकिन यह अभी भी एक वैध परियोजना फ़ाइल है)

EDIT2:

के लिए धन्यवाद रों। ermakovich, मैंने एमएसबिल्ड कार्य (NANT contrib से) को एनएएनटी को सीधी कॉल के साथ बदल दिया, जो TeamCity सर्वर पर त्रुटि उत्पन्न नहीं करता है। ऐसा लगता है कि टीमसिटी केवल कॉल को NANT contrib msbuild कार्य में बदल देती है। :-)

<property name="msbuild.exe" value="${framework::get-framework-directory(nant.settings.currentframework)}\msbuild.exe" /> 
    <foreach item="File" property="iterator.dproj"> 
     <in> 
      <items> 
       <include name="${src.temp}\**\*.dproj" /> 
      </items> 
     </in> 
     <do> 
      <exec program="${msbuild.exe}"> 
       <arg path="${iterator.dproj}" /> 
      </exec> 
     </do> 
    </foreach> 
+0

क्या आपने TeamCity की बिल्ड एजेंट निर्देशिका में NANT स्क्रिप्ट चलाने का प्रयास किया है? – Philipp

उत्तर

3

यह है कि आप अपने कंसोल कमांड लाइन में /लक्ष्य स्विच का उपयोग कर रहे हैं। कृपया, टीमसिटी वेब यूआई पर बिल्ड कॉन्फ़िगरेशन विकल्पों में आपको आवश्यक लक्ष्य निर्दिष्ट करने का प्रयास करें, क्योंकि यह त्रुटि संदेश द्वारा सुझाया गया है। योन टीम पैराटी प्रोजेक्ट कॉन्फ़िगरेशन के रनर टैब पर यह पैरामीटर पा सकता है। अंतरिक्ष या अर्धविराम से अलग लक्ष्य दर्ज करें। बिल्ड, पुनर्निर्माण, स्वच्छ, प्रकाशित लक्ष्य डिफ़ॉल्ट रूप से समर्थित हैं।

+0

जैसा कि मैंने अपने प्रश्न में उल्लेख किया है, टीमसिटी एम्बेडेड msbuild कमांड के साथ एक NAnt स्क्रिप्ट को कॉल करता है। सबकुछ कंसोल में ठीक काम करता है लेकिन टीमसिटी एक त्रुटि रिपोर्ट करता है। – Dennis

+0

कंसोल के माध्यम से आप वास्तव में क्या निष्पादित करते हैं? MSBuild.exe? क्या आप कृपया एक अक्षांश प्रदान कर सकते हैं आप NANT स्क्रिप्ट में MSBuild कार्य का उपयोग कैसे करते हैं? –

+1

निश्चित रूप से, मेरा प्रारंभिक प्रश्न देखें :-) – Dennis

0

कमांड लाइन या टीमसिटी में बिल्ड लक्ष्य निर्दिष्ट करने के बजाय, आप यह सुनिश्चित कर सकते हैं कि DefaultTargets="..." को प्रोजेक्ट फ़ाइल में <Project> टैग पर परिभाषित किया गया है।