CSharpCodeProvider не возвращает предупреждения компилятора при отсутствии ошибок.C#

Место общения программистов C#
Anonymous
CSharpCodeProvider не возвращает предупреждения компилятора при отсутствии ошибок.

Сообщение Anonymous »

Я использую класс CSharpCodeProvider для компиляции сценария C#, который использую в качестве DSL в своем приложении. Если есть предупреждения, но нет ошибок, свойство Errors результирующего экземпляра CompilerResults не содержит элементов. Но когда я ввожу ошибку, предупреждения внезапно появляются и в свойстве Errors.

Код: Выделить всё

string script = @"
using System;
using System; // generate a warning
namespace MyNamespace
{
public class MyClass
{
public void MyMethod()
{
// uncomment the next statement to generate an error
//intx = 0;
}
}
}
";

CSharpCodeProvider provider = new CSharpCodeProvider(
new Dictionary()
{
{ "CompilerVersion", "v4.0" }
});

CompilerParameters compilerParameters = new CompilerParameters();
compilerParameters.GenerateExecutable = false;
compilerParameters.GenerateInMemory = true;

CompilerResults results = provider.CompileAssemblyFromSource(
compilerParameters,
script);

foreach (CompilerError error in results.Errors)
{
Console.Write(error.IsWarning ? "Warning: " : "Error: ");
Console.WriteLine(error.ErrorText);
}
Так как мне получить предупреждения, когда ошибок нет?
Кстати, я не хочу устанавливать TreatWarningsAsErrors истинно.

Подробнее здесь: https://stackoverflow.com/questions/303 ... -no-errors

Вернуться в «C#»