C# - 在运行时使用自定义配置编译 C# 代码
C# - Compile c# code at runtime with custom configuration
我有一个问题,CodeDom Compiler 是否可以使用自定义配置(例如 x64 位或 x86)编译 c# 代码 bit.By 默认情况下,它使用 "Any CPU" 配置将 c# 代码编译为 .exe。
编译 C# 代码:
public static string BCS(string[] sources,string[] libs,string outPath,bool exef)
{
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters(libs);
parameters.GenerateExecutable = exef;
parameters.OutputAssembly = outPath;
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, sources);
if (results.Errors.Count > 0)
{
string errsText = "";
foreach (CompilerError CompErr in results.Errors)
{
errsText = "("+CompErr.ErrorNumber +
")Line " + CompErr.Line +
",Column "+CompErr.Column +
":"+CompErr.ErrorText + "" +
Environment.NewLine;
}
return errsText;
}
else
{
return "Success";
}
}
我想,你明白我的问题了,如果不明白,请发表评论,我会详细说明。
尝试这样设置CompilerOptions
parameters.CompilerOptions = "-platform:anycpu32bitpreferred";
使用此 link
中的参数
P.S。 CSharpCodeProvider
使用 csc.exe
我有一个问题,CodeDom Compiler 是否可以使用自定义配置(例如 x64 位或 x86)编译 c# 代码 bit.By 默认情况下,它使用 "Any CPU" 配置将 c# 代码编译为 .exe。 编译 C# 代码:
public static string BCS(string[] sources,string[] libs,string outPath,bool exef)
{
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters(libs);
parameters.GenerateExecutable = exef;
parameters.OutputAssembly = outPath;
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, sources);
if (results.Errors.Count > 0)
{
string errsText = "";
foreach (CompilerError CompErr in results.Errors)
{
errsText = "("+CompErr.ErrorNumber +
")Line " + CompErr.Line +
",Column "+CompErr.Column +
":"+CompErr.ErrorText + "" +
Environment.NewLine;
}
return errsText;
}
else
{
return "Success";
}
}
我想,你明白我的问题了,如果不明白,请发表评论,我会详细说明。
尝试这样设置CompilerOptions
parameters.CompilerOptions = "-platform:anycpu32bitpreferred";
使用此 link
中的参数P.S。 CSharpCodeProvider
使用 csc.exe