如何:encodeom忽略vb.net中的警告

时间:2013-09-26 16:44:40

标签: vb.net compilation warnings codedom

我试图使用Code-Dom构建应用程序,问题是编译器将警告视为错误,我试图指定它的参数但没有运气

Dim Parameters As New CompilerParameters()
Parameters.WarningLevel = 0
Parameters.TreatWarningsAsErrors = False

编译器在没有警告时工作,但我不知道该怎么办?! 什么都可以做?

这是其中一个错误, 这一个关于

Thread.CurrentThread.Sleep(5000)

代码:

Dim text123 As String = ""
        While True
            Thread.CurrentThread.Sleep(5000)
Dim s = go()
            If s <> text123 Then
                text123 = s
                functiontext("#" , s)
            End If
        End While

以及有关不返回值的函数的其他错误

1 个答案:

答案 0 :(得分:1)

你确定它不起作用吗?

objCompileResults.Errors.HasErrors即使只有警告也会返回true。

objCompileResults.CompiledAssembly = null?

以下是我用于打印出错误和警告的编译结果的一些代码:

 CompilerResults objCompileResults = objCodeCompiler.CompileAssemblyFromFile( objCompilerParameters, files.ToArray() );

 // Check for compiler errors.
 // TODO: order by erros first (rather than warnings)
 if ( objCompileResults.Errors.HasErrors )
 {
    string errortext = "";
    string warningtext = "";
    foreach ( CompilerError mistake in objCompileResults.Errors )
    {
       if ( mistake.IsWarning == false )
       {
          string errorString = string.Format( "{0} Line: {1} Error: {2}", mistake.FileName, mistake.Line, mistake.ErrorText );
          errortext = errortext + errorString + Environment.NewLine;
       }
       else
       {
          string warningString = string.Format( "{0} Line: {1} Warning: {2}", mistake.FileName, mistake.Line, mistake.ErrorText );
          warningtext = warningtext + warningString + Environment.NewLine;
       }
    }