別の Windows フォーム アプリケーションを作成できる Windows フォーム アプリケーションを作成しようとしています。しかし、C# コードで CodeDom を使用してコンパイルしようとしたときに発生するエラーは、奇妙なものです。
'kjpUnityGameLauncherTemplate.RunLauncher' does not have a suitable static Main method
クラス「RunLauncher」には main メソッドがあり、( http://msdn.microsoft.com/ ) サイトで説明されているデフォルトのセットアップがあるため、これはちょっと混乱します。
RunLauncher クラス: http://pastebin.com/NU3VYwpv (main メソッドがある)
これを実際にコンパイルするために使用しているコード。CodeDom は次のとおりです。
if (codeProvider.Supports(GeneratorSupport.EntryPointMethod))
{
parameters.MainClass = "kjpUnityGameLauncherTemplate.RunLauncher";
}
CodeCompileUnit compileUnits = new CodeCompileUnit();
CodeNamespace nsp = new CodeNamespace("kjpUnityGameLauncherTemplate");
parameters.CompilerOptions = "/main:kjpUnityGameLauncherTemplate.RunLauncher";
CodeTypeDeclaration class1 = new CodeTypeDeclaration("RunLauncher");
nsp.Types.Add(class1);
CodeTypeDeclaration class2 = new CodeTypeDeclaration("kjpUnityGameLauncher");
nsp.Types.Add(class2);
CodeTypeDeclaration class3 = new CodeTypeDeclaration("Launcher");
nsp.Types.Add(class3);
nsp.Imports.Add(new CodeNamespaceImport("kjpUnityGameLauncherTemplate"));
compileUnits.Namespaces.Add(nsp);
CompilerResults results = icc.CompileAssemblyFromDom(parameters, compileUnits);
変数「codeProvider」などの宣言など、他にもいくつかありますが、この場合は問題ではないため、それらを含めませんでした。