Я проверил некоторый ресурс о roslyn, и я не нашел, как скомпилировать исходники c # в исполняемый файл с Roslyn. Я могу легко скомпилировать некоторые файлы .cs в .exe, используя CodeDom:
/// <summary>
/// "anycpu" || "anycpu32bitpreferred" || "x86" || "x64" || "ARM" || "Itanium"
/// </summary>
public static string param = "anycpu";
public static string BCS(string[] sources,string[] libs,string outPath,bool exef)
{
var options = new Dictionary<string, string> {
{ "CompilerVersion", "v4.0.0" }
};
CSharpCodeProvider codeProvider = new CSharpCodeProvider(options);
CompilerParameters parameters = new CompilerParameters(libs);
parameters.GenerateExecutable = exef;
parameters.OutputAssembly = outPath;
parameters.CompilerOptions = "-platform:" + param;
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";
}
}
но проблема CodeDom - он может компилировать только c # с .NET Framework 4.0, но мне нужно скомпилировать файлы c # с 4.6.1 .NET Framework версии. Итак, вопрос: могу ли я скомпилировать некоторые файлы c # (.cs) с 4.6.1 .NET Framework версия с использованием Roslyn Compiler?