这是我的代码:
Microsoft.CSharp.CSharpCodeProvider provider = new CSharpCodeProvider();
ICodeCompiler compiler = provider.CreateCompiler();
CompilerParameters compilerparams = new CompilerParameters();
compilerparams.GenerateInMemory = false;
CompilerResults results = compiler.CompileAssemblyFromSource(compilerparams, code);
if (results.Errors.HasErrors)
{
StringBuilder errors = new StringBuilder("Compiler Errors :\r\n");
foreach (CompilerError error in results.Errors )
{
errors.AppendFormat("Line {0},{1}\t: {2}\n",
error.Line, error.Column, error.ErrorText);
}
throw new Exception(errors.ToString());
}
else
{
return results.CompiledAssembly;
}
如何将创建的dll保存到我自己的特定文件夹中?当我调试时,程序集位置以某种方式位于“AppData/Local/Temp/”文件夹中。
最佳答案
您可以使用 CompilerParameters
的 OutputAssembly
属性来设置输出程序集的名称(路径)。
从你的例子:
...
CompilerParameters compilerparams = new CompilerParameters();
compilerparams.GenerateInMemory = false;
compilerparams.OutputAssembly = "OutputAssembly.dll";
CompilerResults results = compiler.CompileAssemblyFromSource(compilerparams, code);
...
关于c# - 在运行时编译程序集并将dll保存在文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013572/