У меня небольшой консольный проект, в котором я пытаюсь скомпилировать некоторые C# файлы в .dll.
Код выглядит так:
public Result CreateDll(string[] files, string assemblies, string toPath, string dllName)
{
if (!Directory.Exists(toPath))
Directory.CreateDirectory(toPath);
using (var provider = new Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider(new CompilerSettings()))
{
var parameters = new CompilerParameters(assemblies)
{
GenerateInMemory = false,
GenerateExecutable = false,
OutputAssembly = $@"{toPath}\{dllName}.dll",
IncludeDebugInformation = false,
TreatWarningsAsErrors = true,
CompilerOptions = "/unsafe /optimize"
};
CompilerResults results = provider.CompileAssemblyFromFile(parameters, files);
}
return Result.Success;
}
Один из файлов Я пытаюсь скомпилировать выглядит так:
public abstract class BaseClass
{
private string backendString;
private string property;
public string TestString => backendString;
public string Property
{
get => property;
set
{
if (value == default)
return;
property = value;
}
}
}
Но я получаю эту ошибку:
Функция 'литерал по умолчанию' недоступна в C# 7.0. Пожалуйста, используйте языковую версию 7.1 или выше.
Если я удалю *default*
из BaseClass
, то он не будет жаловаться. Как мне это изменить?