2017-06-06 10 views
9

मैं अपने कोड में $ का उपयोग कर स्ट्रिंग इंटरपोलेशन का उपयोग कर रहा हूं। यह ठीक संकलित करता है लेकिन जब मैं अपने कोड में चेक करता हूं, तो बिल्ड सर्वर त्रुटि BC30037: Character is not valid फेंकता है। निम्नलिखित उदाहरण है कि मैंने स्ट्रिंग इंटरपोलेशन का उपयोग कैसे किया है:

dim r = New RadNode($"{acq.FormNo} - ${CInt(acq.TotalAmount)}", icon:=RadTreeIcons.RedTriangle) 

बिल्ड सर्वर में विजुअल स्टूडियो 2015 एंटरप्राइज़ संस्करण स्थापित है।

तो मैं कमांड प्रॉम्प्ट से चलाएँ:

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild /tv:14.0 "Proj.sln", कोड संकलित फ़ाइल। लेकिन अगर मैं

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild /tv:12.0 "Proj.sln" करने के लिए उपरोक्त तर्क बदलने के लिए, मैं एक ही त्रुटि मिलती है

मैं भी ये बदलाव कर लें:

मैं /p:VisualStudioVersion=14.0 को MSBuildArguments संपत्ति की स्थापना की है और यह भी TFSBuild.proj फ़ाइल बदल गया है और बदल यह लाइन <Project DefaultTargets="DesktopBuild" xmlns="schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="14.0">" पर है लेकिन एक ही समस्या हो रही है।

ने (वेब ​​vbproj) फ़ाइल बदल दी और टूलसेट संस्करण को 12.0 से 14.0 में बदल दिया। समाधान के अन्य वीबी परियोजनाओं का हिस्सा अभी भी 12.0 को लक्षित कर रहा है लेकिन वेब वीबी प्रोजेक्ट के हिस्से के रूप में डीएल में संकलित हो जाता है।

+0

कौन सा निर्माण आप उपयोग कर रहे हैं? एक्सएएमएल या vNext निर्माण? क्या आप समस्या निवारण, जैसे विस्तार लॉग और आपके पर्यावरण के लिए अधिक जानकारी जानकारी जोड़ सकते हैं। –

+0

मैं एक्सएएमएल बिल्ड का उपयोग कर रहा हूं। – Baahubali

+1

हे @ पैट्रिक-एमएसएफटी एमएसबिल्ड का कौन सा संस्करण एक्सएएमएल बनाने के लिए उपयोग करता है और क्या आप vNext निर्माण में अपने जैसे संस्करण को सेट कर सकते हैं? मुझे याद है कि वीएस में बिल्ड कॉन्फ़िगरेशन डायलॉग में एमएसबिल्ड के लिए सेटिंग्स का एक समूह है, लेकिन मुझे याद नहीं है कि पथ सेट करने का कोई तरीका है TFSBuild कहां सेट करता है जहां msbuild चलाया जाता है ... क्या यह इस मामले में हो सकता है उदाहरण? –

उत्तर

6

यहाँ स्थित उत्तर मेरी समस्या हल कर रहे हैं केवल अक्षरों का उपयोग:

BuildActivity ignores ToolsVersion

हम में से उन लोगों के लिए जो अंदरूनी नहीं रह रहे हैं ई बिल्ड टेम्पलेट्स हर दिन यहां मेरे लिए काम करने वाले कदम हैं:

सबसे पहले अपने निर्माण से जुड़े टेम्पलेट को ढूंढें (यदि आप पहले ही जानते हैं कि इसे दो चरणों को कहां से ढूंढना है)।

बस बिल्ड परिभाषा पर राइट क्लिक करें और बिल्ड परिभाषा संपादित करें प्रक्रिया टैब का चयन करें और आपको टेम्पलेट का नाम दिखाई देगा (यदि आपने इसे अनुकूलित नहीं किया है तो डिफ़ॉल्ट टेम्पलेट होने की संभावना है)। दूर दाएं क्लिक पर टेम्पलेट के लिए पथ देखने के लिए विवरण दिखाएं।

enter image description here

टीम एक्सप्लोरर के तहत होम टैब पर जाएँ और टेम्पलेट फ़ाइल और इसे संपादित करने के लिए डबल क्लिक करें खोजें स्रोत नियंत्रण एक्सप्लोरर enter image description here

क्लिक करें। यह इस तरह के एक ग्राफिकल दृश्य में आना चाहिए। स्क्रॉल पाते हैं जब तक तुम परियोजना enter image description here

यह आइटम जो तुरंत गुण enter image description here

सही पर थोड़ा आइकन पर क्लिक करें लाएगा पर क्लिक करें के लिए चलाने के लिए MSBuild - कोशिश करते हैं और इसे टाइप नहीं है, क्योंकि यह ' शायद विजुअल स्टूडियो विस्फोट और दुर्घटनाग्रस्त हो जाएगा। में दर्ज करें निम्नलिखित उद्धरण "C: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ 14.0 \ बिन" enter image description here

अब सबसे महत्वपूर्ण हिस्सा

मेरे लिए परियोजना के लिए भागो MSBuild दो स्थानों पर किया गया था

तो मैंने दोनों जगहों पर उपरोक्त चरणों को दोहराया, और फिर मैंने .xaml फ़ाइल में चेक करने के बाद मेरा निर्माण ठीक काम किया।

आपको टीएफएस उपकरण के भीतर एजेंट/नियंत्रक को रीसायकल करने की आवश्यकता हो सकती है।

enter image description here

2

when i check in my code, the build server throws an error, ऐसा लगता है कि आप एक सीआई बिल्ड का उपयोग कर रहे हैं। आप बिल्डिंग मैन्युअल रूप से कतार के साथ भी प्रयास कर सकते हैं। और यदि यह आपके टीएफएस पर्यावरण से संबंधित है या नहीं, तो इसे कम करने के लिए स्थानीय में अपना कोड बनाएं।

कुछ उपयोगी जानकारी होने पर बिल्ड एजेंट/सर्वर में इवेंट व्यू पर भी नज़र डालें।

त्रुटि BC30037: Character is not valid बिना TFxxxx के आपके कोड या वाक्यविन्यास से संबंधित हो सकता है। यदि एक अतिरिक्त चरित्र गलती से प्रोग्रामिंग तत्व में सम्मिलित किया गया

  • चेक देखने के लिए।
  • चेक कि प्रोग्रामिंग तत्व वर्तनी या निर्माण किया है कि तत्व उस तरह के लिए मान्य

Character is not valid

+1

अधिक जांच कर रहा है, ऐसा लगता है कि बिल्ड सर्वर निर्माण करने के लिए एमएसबिल्ड 12 या इससे पहले का उपयोग कर रहा है और स्ट्रिंग इंटरपोलेशन को सही तरीके से बनाने के लिए आप msbuild संस्करण 14.0 या ऊपर बनाते हैं। मैंने MSBuildArguments प्रॉपर्टी को /p:VisualStudioVersion=14.0 पर सेट किया है और TFSBuild.proj फ़ाइल भी बदल दी है और इस पंक्ति को "" लेकिन एक ही समस्या हो रही है। – Baahubali

+0

@ बाहुबली बाद के उत्तर के लिए खेद है। यह टीएफएस एक्सएएमएल बिल्ड में एक पुराना मुद्दा है। प्रक्रिया टेम्पलेट हमेशा .net4.6/C# 6.0 बनाते समय 14.0 के बजाय गलत msbuild संस्करण 12.0 पर इंगित करता है। इस समस्या के कई समाधान हैं। जैसे https://stackoverflow.com/questions/32659106/tfs-2013-building-net-4-6-c-sharp-6-0/32691755#32691755। लगता है कि आपकी समस्या हल हो गई है। उस पर ध्यान दें, जब आप इसे स्वयं ठीक करते हैं तो हमेशा बेहतर होता है; जैसा कि आप समझते हैं कि यह कैसे काम करता है! :) –

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