我一直在試圖讓CodeDom工作,所以我可以在運行時動態地爲我的應用程序創建代碼。然而,經過許多教程和試驗和錯誤之後,我遇到了一個我似乎無法通過的問題。我不斷收到編譯器錯誤的代碼,看起來應該像它應該。當我的代碼中沒有任何'\'時,我會得到「無法識別的轉義序列'\'」。CodeDom編譯器C#
我得到的誤差都在1號線在這裏,他們是爲了: CS1009 CS1056(連續3次) CS0116
以下是我有:
的代碼是編譯:
using System;
using System.Windows.Forms;
namespace sdjkfhj
{
public class Sample
{
public static void main()
{
MessageBox.Show("Working");
return;
}
}
}
,編譯器代碼如下:
public void Compile(string file)
{
var prov = new Dictionary<string, string>();
prov.Add("CompilerVersion", "v2.0");
CSharpCodeProvider c = new CSharpCodeProvider();
ICodeCompiler comp = c.CreateCompiler();
CompilerParameters param = new CompilerParameters();
param.GenerateExecutable = true;
param.OutputAssembly = file + ".exe";
param.ReferencedAssemblies.Add("System.dll");
param.ReferencedAssemblies.Add("System.Windows.Forms.dll");
if (c.Supports(GeneratorSupport.EntryPointMethod))
param.MainClass = "Sample";
CompilerResults results = comp.CompileAssemblyFromSource(param, file);
if (results.Errors.Count > 0)
{
foreach (CompilerError CompErr in results.Errors)
{
MessageBox.Show("Line number " + CompErr.Line + ", Error Number: " + CompErr.ErrorNumber + ", '" + CompErr.ErrorText + ";" + Environment.NewLine + Environment.NewLine);
}
}
}
有沒有我沒有做的事來編譯它的權利?有什麼我失蹤?我有點迷失在這裏。提前致謝。
該行給出的錯誤嗎?它在VS編譯? – 2012-02-12 04:22:17
不應該'CompileAssemblyFromSource()'包含了'源'而不是'文件'? – C4u 2015-04-20 10:02:31