2009-06-21 17 views
5

मैं एक XNA परियोजना के बनाता आदेश को स्वचालित करने में TeamCity 4.5 उपयोग करने के लिए कोशिश कर रहा है, लेकिन मैं एक छोटे से समस्या है। मेरी परियोजनाएं विजुअल स्टूडियो 2008 के तहत सही ढंग से संकलित होती हैं, लेकिन जब निर्माता के रूप में टीमसिटी के साथ संकलित नहीं होती है। विन्यास फाइल sln2008 सेटिंग का उपयोग करता है, और के रूप में यह बनावट .png .xnb के संकलन चला जाता है संकलन थोड़ी देर के लिए अच्छी तरह से चला जाता है, लेकिन जैसे ही, मैं निम्नलिखित त्रुटि मिलती है:D3DERR_INVALIDCALL त्रुटि, TeamCity बिल्डर

[11:28:41]: [Project "Content.contentproj" (default targets):] Content\head.png Building content threw InvalidOperationException: D3DERR_INVALIDCALL 
at Microsoft.Xna.Framework.Content.Pipeline.CommonHelperFunctions.InitD3D() 
at Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.InitD3D() 
at Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.Import(String filename, ContentImporterContext context) 
at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context) 
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.ImportAssetDirectly(BuildItem item, String importerName) 
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.ImportAsset(BuildItem item) 
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 
at Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[]& rebuiltContent, String[]& intermediates, Dictionary`2& dependencyTimestamps, KeyValuePair`2[]& warnings) 
Inner exception: COMException: Exception from HRESULT: 0x8876086C 

मैं किसी भी विचार की जरूरत नहीं है क्या यह कारण है। जैसे मैंने कहा, यह सही ढंग से .fbx मॉडल को संकलित करने में सक्षम है साथ ही साथ मेरी सामग्री पाइपलाइन परियोजना और मेरी साझा सामग्री परियोजना (समाधान का हिस्सा)।

मैं वास्तव में क्या चाहते हैं क्या समस्या के स्रोत होगा कुछ संकेत दिए गए है (और यदि संभव हो तो, समस्या का समाधान)। जहां तक ​​मैं समझता हूं, डी 3 डी लाइब्रेरी में कोई समस्या है। मैं आपको यह भी याद दिलाऊंगा कि यह संपूर्ण समाधान विजुअल स्टूडियो 2008 के तहत संकलित करता है, इस प्रकार टीमसिटी के साथ एक छोटी सी समस्या है, या तो मैंने कुछ प्रदान नहीं किया है, या वास्तव में कुछ गलत तरीके से सेट किया गया है।

उत्तर

2

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

समाधान यह देखने के लिए हो सकता है कि टीम सिटी आपको यह अनुरोध करने की क्षमता प्रदान करती है कि यह निर्माता द्वारा लॉग ऑन किया गया है, स्थानीय सिस्टम के रूप में नहीं, या एक सेवा के रूप में, हालांकि मैं आपको यह नहीं बता सकता कि यह वास्तव में भी है टीम सिटी में संभव है।

+0

@ जेफ: उत्तर के लिए धन्यवाद। मैं वास्तव में आगे बढ़ गया और उस उपयोगकर्ता को बदल दिया जो सेवा लॉग इन करने के लिए उपयोग करता है। समस्या अभी भी वही है, हालांकि मुझे विश्वास है कि यह अभी है सेवा गुणों में "हार्डवेयर प्रोफ़ाइल" नामक किसी चीज़ से संबंधित है। मुझे लगता है कि केवल "अनब्लॉक प्रोफाइल" है (संभवतः ग्राफिक कार्ड तक कोई पहुंच नहीं है, यह कहना मुश्किल है)। साथ ही, यह हार्डवेयर प्रोफ़ाइल ऐसा नहीं लगता है कि इसे कहीं और से संपादित किया जा सकता है (मैंने इसे गुगल किया और इसके बारे में शिकायत करने वाले कई लोगों को लौटा दिया) – tomzx

2

मेरे पास कोई समाधान नहीं है लेकिन मैं इसके बारे में सोच रहा हूं।

त्रुटि D3DERR_INVALIDCALL तो मैं डिवाइस में सोच रहा हूँ है किसी कारण से उस समय उपलब्ध नहीं है।

1) क्या बिल्ड चलाने वाली मशीनों में डायरेक्टएक्स स्थापित/ग्राफिक्स कार्ड है? मैं हां मान रहा हूं क्योंकि एक्सएनए को शेडर्स के साथ एक कार्ड की आवश्यकता है लेकिन टीमसिटी एक बिल्ड वितरण है, तो शायद यह बिना मशीन पर चल रहा है?

2) हो सकता है कि TeamCity भी बहुत सारे Direct3D उपकरणों खड़ी कर रहा है एक ही मशीन/प्रक्रिया (पूरा अनुमान) पर बनाया जाना?

मॉडल फ़ाइलों को सही ढंग से बनावट बनाते हैं या वे सिर्फ ज्यामिति डेटा हैं? मुझे लगता है कि सामग्री निर्माता को मॉडल बनाने के लिए डायरेक्टएक्स तक पहुंच की आवश्यकता नहीं है लेकिन बनावट डेटा के लिए करता है। क्या आप कुछ और भी बना सकते हैं जिसके लिए डायरेक्ट 3 डी एक्सेस की आवश्यकता है? क्या आप TeamCity का उपयोग करके एक प्रोजेक्ट बना सकते हैं जिसमें इसके सामग्री फ़ोल्डर में केवल एक बनावट है?

मैं अगर यह काम करेगा यकीन नहीं है, लेकिन आप डिबग मोड में डायरेक्ट चल रहा है और उत्पादन को देखकर और अधिक जानकारी प्राप्त कर सकते हैं?

उम्मीद है कि यह कुछ हद तक मदद करता है।

+0

मैं (2) के लिए जाऊंगा। (1) के समाधान के रूप में वह डीएक्स एसडीके स्थापित कर सकता है - इसमें संदर्भ डिवाइस है, जो इनका कारण नहीं होगा समस्याएं –

+0

@ कैथ: उत्तर के लिए धन्यवाद। मैं यह निर्दिष्ट करना भूल गया कि सर्वर और निर्माण मशीन दोनों समान हैं, इस प्रकार 1 को समीकरण से हटाया जा सकता है। डीबग मोड में डायरेक्टएक्स के साथ, मुझे एक प्रक्रिया निकास कोड मिलता है: -2146233082 मैंने एक छोटी परियोजना बनाई है जिसमें केवल एक छवि और मूल गेम प्रोजेक्ट है और छवि के बिना, यह संकलित करता है, इसके साथ, यह नहीं है। – tomzx

2

XNA और DirectX 9 को सामग्री फ़ोल्डर को संकलित करने के लिए वर्तमान लॉग इन उपयोगकर्ता की आवश्यकता होती है।

समाधान सरल है, XNA (VS2008, XNA गेम स्टूडियो 3.0, आदि) के लिए प्री-रिक के साथ एक बिल्ड एजेंट मशीन (असली भौतिक मशीन) स्थापित करें और इसे स्टार्टअप पर लॉग इन करें, फिर एक स्क्रिप्ट बनाएं लॉग इन करते समय टीम सर्वर एजेंट चलाएं (स्टार्ट मेनू में स्टार्टअप फ़ोल्डर में एजेंट रन स्क्रिप्ट को शॉर्टकट डालकर)।

इस तरह एजेंट स्थानीय उपयोगकर्ता के रूप में चलाएगा और सामान्य के रूप में निर्माण कर सकता है।

मैंने यह किया है और यह पुष्टि कर सकता है कि यह काम करता है।

2

पुराने धागे को खींचने के लिए खेद है, लेकिन मैंने टीसी को विंडोज सर्वर पर अपनी एक्सएनए परियोजना बनाने के लिए एक ही समस्या में भाग लिया है और अन्य समस्याओं को एक ही समस्या में आने में मदद करना चाहता हूं।

मैं सिर्फ इस लेख और ब्लॉग जो एक बहुत ही होनहार समाधान की तरह दिखता है मिल गया है: http://forums.create.msdn.com/forums/p/86699/532976.aspx

&

http://blogs.msdn.com/b/astebner/archive/2011/07/07/10184338.aspx

हारून मूल रूप से कहा गया है कि जीत फोन एसडीके 7.1 बीटा का नया बीटा 2 में एक्सएनए गेम स्टूडियो 4.0 रीफ्रेश बीटा 2 शामिल है जो अब आपको निम्न प्रकार की कॉन्फ़िगरेशन में सामग्री पाइपलाइन के माध्यम से सामग्री बनाने की अनुमति देता है:

अपनी स्क्रीन निर्माण दौरान लॉक किया गया है आप एक बिना सिर कंप्यूटर पर निर्माण चल रहे हैं यदि आप एक गैर-सहभागी उपयोगकर्ता खाते

से निर्माण चल रहे हैं लेकिन ऐसा लगता है कि यह केवल Vista पर चलाएंगे लग रहा है या ऊपर - उम्मीद है कि सर्वर भी शामिल होना चाहिए। अपडेट करें: नहीं, दुख की बात यह है कि यह मेरे विंडोज सर्वर पर स्थापित नहीं होगा :(

+0

मैं टास्क मैनेजर में प्रवेश कर रहा था - CTRL-ALT-DELETE के माध्यम से - और मेरा लॉक किया था ऐसा करने के बीच में स्क्रीन और जब मैं इमारत बना रहा था तो यह त्रुटि प्राप्त हुई। मेरे साथ इस जानकारी को साझा करने के लिए धन्यवाद। यह मेरा जवाब विशेष रूप से था! – Xonatron

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