CSharpCodeProvider doesn't return compiler warnings when there are no errors
Posted
by Sandor Drieënhuizen
on Stack Overflow
See other posts from Stack Overflow
or by Sandor Drieënhuizen
Published on 2010-06-13T13:35:58Z
Indexed on
2010/06/13
13:42 UTC
Read the original article
Hit count: 526
I'm using the CSharpCodeProvider
class to compile a C# script which I use as a DSL in my application. When there are warnings but no errors, the Errors
property of the resulting CompilerResults
instance contains no items. But when I introduce an error, the warnings suddenly get listed in the Errors
property as well.
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<string, string>()
{
{ "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);
}
So how to I get hold of the warnings when there are no errors?
By the way, I don't want to set TreatWarningsAsErrors
to true
.
© Stack Overflow or respective owner