我試圖創建一個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個主類,一個只通過代碼影響生成的類。 –