我一直在试图让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