C# - компилировать код C# во время выполнения с пользовательской конфигурацией
У меня есть вопрос, может ли CodeDom Compiler компилировать код C# с пользовательской конфигурацией, такой как x64-бит или x86-бит. По умолчанию он компилирует код C# в.exe с конфигурацией "Any CPU". Компиляция кода 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";
}
}
Я думаю, вы понимаете мой вопрос, если нет, оставьте комментарий, я дам подробности.
1 ответ
Решение
Попробуйте установить CompilerOptions
сюда
parameters.CompilerOptions = "-platform:anycpu32bitpreferred";
используя параметры из этой ссылки
PS CSharpCodeProvider
использования csc.exe