Почему CodeDom Compiler не может скомпилировать файл в котором присутствует данный символ $ и подобные var?
При компиляции пишет: Неожиданный символ '$'
Подскажите может ли Roslyn компилировать с данной строкой? Или же есть какие-нибудь уловки в CodeDom для компиляции данного символа?!
Вот класс компилятора:
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using Microsoft.CSharp;
namespace Builder
{
internal class Compil
{
public static bool Compiler(string source, string saveFileName, string outVersion, string resource, string icon = null)
{
var compil = new CompilerParameters
{
GenerateExecutable = true,
OutputAssembly = saveFileName
};
var options = "/optimize+ /platform:x86 /target:winexe /unsafe";
if (icon != null)
{
options += $" /win32icon:\"{icon}\"";
}
compil.CompilerOptions = options;
compil.ReferencedAssemblies.Add("System.dll");
compil.ReferencedAssemblies.Add("System.Windows.Forms.dll");
compil.EmbeddedResources.Add(resource);
var Results = new CSharpCodeProvider(new Dictionary<string, string>
{
{
"CompilerVersion", outVersion
}
}).CompileAssemblyFromSource(compil, source);
if (Results.Errors.Count > 0)
{
MessageBox.Show($"Имеются {Results.Errors.Count} ошибок", "Ошибка компиляции", MessageBoxButtons.OK,MessageBoxIcon.Error);
foreach (CompilerError Err in Results.Errors)
{
File.WriteAllText(path: "Error_Compiler.txt", contents: $"Ошибка: {Err.ToString()} \r\nСтрока: {Err.Line}\r\n");
}
return false;
}
else
{
return true;
}
}
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости