2012-12-19 10 views
7

स्क्रिप्ट को नहीं पहचानता है/ऐ/Dream.booएम्बेड बू, क्रियान्वित विधानसभा

import CultLib 
import LonelyHero 

class Dream(Enemy): 
    pass 

सी #

var bc = new BooCompiler(); 
bc.Parameters.Input.Add(new FileInput("rsc/script/ai/" + "Dream" + ".boo")); 
bc.Parameters.Pipeline = new CompileToMemory(); 
bc.Parameters.References.Add(Assembly.GetExecutingAssembly()); 
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("CultLib.dll").FullName)); 
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-audio-2.dll").FullName)); 
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-graphics-2.dll").FullName)); 
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-window-2.dll").FullName)); 

var cc = bc.Run(); 

if(cc.GeneratedAssembly!=null) 
{ 
    cc.GeneratedAssembly.CreateInstance("Dream", true, BindingFlags.NonPublic, null, 
             new object[] {Parent, pos}, null, null); 
} 
else 
{ 
    foreach (var error in cc.Errors) 
     Console.WriteLine(error); 
} 

लाइन bc.Parameters.References.Add(Assembly.GetExecutingAssembly()); मैं क्रियान्वित विधानसभा जोड़ने के लिए, जो नाम स्थान "शामिल हैं में LonelyHero "। हालांकि, त्रुटि

rsc/script/ai/Dream.boo(2, 8): BCE0021: Namespace LonelyHero not found. maybe you forgot to add an assembly reference?

प्रकट होता है।

लोनेलीहेरो मौजूद होना चाहिए, यह त्रुटि क्यों होती है और मैं इसे हल करने के लिए क्या कर सकता हूं?

नोट: Assembly.GetAssembly(typeof(Enemy)) साथ Assembly.GetExecutingAssmebly() की जगह है, इस प्रकार आश्वस्त यह LonelyHero नाम स्थान के नीचे एक वर्ग के साथ विधानसभा कहते हैं पर, एक ही त्रुटि तब होती है। इसके अलावा साथ Assembly.LoadFile(new DirectoryInfo("LonelyHero.exe").FullName)

बू 0.9.4.9 में होता है और booxw-1203

+0

क्या आप सभी प्रासंगिक फाइलों के साथ एक लिंक प्रदान कर सकते हैं? साथ ही, बू प्रोग्राम में अकेला हीरो असेंबली कहां है? मुझे लगता है कि आप इसे आयात कर रहे हैं, लेकिन मुझे कोड (या कोड का स्टब्स नहीं होगा) – yumaikas

+0

लोनलीहेरो.एनीमी एक वर्ग है जिसे आयात किया जाना चाहिए, अगर मैं समझता हूं कि आप क्या पूछते हैं। –

+1

दुश्मन सार्वजनिक है? आयातित नामस्थान को कम से कम एक सार्वजनिक प्रकार की आवश्यकता होती है। –

उत्तर

3

बीओओ में आयातित नामस्थानों को आयात के लिए कम से कम एक सार्वजनिक प्रकार की आवश्यकता होती है; अन्यथा आपको BCE0021 त्रुटि मिल जाएगी, इसलिए आप यह सुनिश्चित करना चाहते हैं कि दुश्मन प्रकार सार्वजनिक है (या कोई अन्य)।

1

मैं बू या सी # पता नहीं है लेकिन मैं किसी को बू प्रोग्रामिंग Google समूह पर एक समान प्रश्न पूछ पाया। सवाल वे पूछ रहे थे:

"Namespace 'Pathfinding' not found, maybe you forgot to add an assembly reference?"

Specifically they were getting this error:

I am converting some existing code I had from C# into Boo. One of my classes had a "using Pathfinding" which got converted to "import Pathfinding" by the script converter.

I get this error when trying to compile:

Assets/Script/VehicleController.boo(4,8): BCE0021: Namespace 'Pathfinding' not found, maybe you forgot to add an assembly reference?

The Pathfinding library I'm using is written in C#. Could this cause problems? Is there anything additional I need to do to make this work?

यह आपके त्रुटि संदेश की तरह देखा और समाधान कोई उल्लेख है कि आप अपने संकलन पहले चरण में अपनी स्क्रिप्ट डाल करने के लिए सुनिश्चित करें कि वे से सुलभ हो जरूरी था अन्य भाषाओं में लिखी स्क्रिप्ट।

यह URL was cited as a reference/source स्क्रिप्ट संकलन के बारे में अधिक जानकारी के लिए।

+0

यह समाधान केवल यूनिटी 3 डी में प्रासंगिक है, मैं वीएस 12 और एसएफएमएल का उपयोग कर रहा हूं। –

+1

ठीक है, सोचा कि मैंने अपने समाधान को पोस्ट करने के बाद +50 बक्षीस की कोशिश की थी, मैंने साइमन की टिप्पणी को देखा कि क्या एनी सार्वजनिक थी। – slm

+0

मुझे लगता है कि जब मैं बक्षीस की पेशकश करता था तो मैं नशे में था क्योंकि मैं पहले ही बू से आयरनपीथन तक स्विच कर चुका था। ओह ठीक है, यह वापस स्विच करने लायक था। –

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