找不到合适的Main方法

问题描述 投票:0回答:1

我正在尝试创建一个 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 方法)

我用来实际编译此via的代码。 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”的声明等,但在本例中这些不是问题,这就是为什么我没有包含它们。

c# .net class codedom
1个回答
1
投票

创建可执行文件 您的代码必须声明入口点方法并正确设置才能在 CodeDom 中运行。我在上面的示例中没有看到声明。下面我有一个来自 MSDN 的示例,位于

http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx

CodeEntryPointMethod start = new CodeEntryPointMethod(); CodeMethodInvokeExpression cs1 = new CodeMethodInvokeExpression( new CodeTypeReferenceExpression("System.Console"), "WriteLine", new CodePrimitiveExpression("Hello World!")); start.Statements.Add(cs1);
    
© www.soinside.com 2019 - 2024. All rights reserved.