这是我的代码:
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 /'文件夹中。
答案 0 :(得分:5)
您可以使用OutputAssembly
的{{1}}属性来设置输出程序集的名称(路径)。
从你的例子:
CompilerParameters
答案 1 :(得分:1)
使用OutputAssembly属性,您只能指定程序集名称。将在当前目录中创建程序集。 如果需要指定完整路径,则必须以这种方式设置编译器选项字符串:
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.CompilerOptions = " /out:C:\\Temp\\" + outputAssemblyFile;
查看here,可以在此属性中设置许多选项。 如果设置CompilerOptions,则将忽略OutputAssembly属性。
我希望这可以提供帮助。