スクリプト/ai/Dream.boo
import CultLib
import LonelyHero
class Dream(Enemy):
pass
C#
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: 名前空間 LonelyHero が見つかりません。アセンブリ参照を追加するのを忘れたのでしょうか。
が表示されます。
LonelyHero は存在するはずですが、なぜこのエラーが発生するのでしょうか?また、解決するにはどうすればよいでしょうか?
注: に置き換えるAssembly.GetExecutingAssmebly()
とAssembly.GetAssembly(typeof(Enemy))
、LonelyHero 名前空間の下のクラスを使用してアセンブリが確実に追加されるため、同じエラーが発生します。また、Assembly.LoadFile(new DirectoryInfo("LonelyHero.exe").FullName)
Boo 0.9.4.9 および booxw-1203 で発生