2013-09-26 4 views
0

им пытаются создать приложение с помощью кода-Dom, проблема заключается в том, что компилятор обрабатывает предупреждения как ошибки, я попытался определить его параметры, но не повезлокак: CodeDOM игнорирование предупреждений в vb.net

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 

и другие ошибки, о функциях, которые не возвращают значения

+0

Можете ли вы показать код, где вы обработки ошибок? –

+0

Я добавил их к основному вопросу – user2618553

+0

Что такое предупреждение для строки 'Sleep', которая приводит к сбою компиляции? Что я имел в виду с моим первым комментарием, можете ли вы показать больше кода, в котором вы используете CodeDom. В частности, меня интересовала область кода, в которой вы обрабатывали ошибки, возвращаемые методом компиляции CodeDom. –

ответ

1

ARE YOU уверен, что он не работает?

objCompileResults.Errors.HasErrors вернет true, даже если есть только предупреждения.

Is 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; 
     } 
    } 
+0

Правильно, вот почему мне было любопытно увидеть эту часть кода OP. Хороший ответ. Трудно сказать, является ли это решением, но, вероятно, это так. –

Смежные вопросы