我试图创建一个Windows窗体应用程序,它可以创建另一个Windows窗体应用程序。但是当我试图用CodeDom在C#代码中编译时出现的错误是一个奇怪的问题。找不到合适的主要方法
'kjpUnityGameLauncherTemplate.RunLauncher' does not have a suitable static Main method
这有点让我困惑,因为类“RunLauncher”确实有一个主要的方法,用在(http://msdn.microsoft.com/)的网站中描述的默认设置。http://pastebin.com/NU3VYwpv(其具有的主要方法)
代码我使用通过实际编译此:
RunLauncher类。 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”等的申报,但这些都不是在这种情况下,这就是为什么我不包括他们的问题。
从MSDN的例子中,我假设这是你的第一个C#Windows窗体应用程序? – Goober
向我们展示您生成的源代码或生成Main()方法的代码。 – SLaks
不,窗口窗体应用程序编译新窗口窗体应用程序作为一个新的.exe工程。这就是我在第一个应用程序上单击按钮的部分,使用上面的“编译代码”,并使用新的Main Class作为新应用程序。所以我基本上有2个主类,一个只通过代码影响生成的类。 –