将vb6项目转换为VB.NET后,可以轻松删除警告消息

时间:2009-04-16 20:01:39

标签: vb.net visual-studio-2008

我已经将一个VB6项目转换为VB.NET,并留下了大量的内联“警告消息”,例如“UPGRADE_WARNING:无法解析对象varJonSkeet的默认属性”,我想摆脱它。有没有办法在Visual Studio 2008中执行此操作?使用正则表达式删除警告消息会更容易吗?我宁愿一次删除一个文件,但它不是一个破坏者。

5 个答案:

答案 0 :(得分:5)

使用VS 2008快速简单地修复,使用查找和替换

  • 打开查找选项
  • 点击“使用”,然后选择“通配符”
  • 在“查找内容”中输入“'升级警告*”并将“替换为”空白
  • 点击“全部替换”

答案 1 :(得分:2)

摆脱警告的最佳方法是解决警告所抱怨的可疑代码。也就是说,更改代码使其不再警告值得。不要只是试图完全禁用警告的产生。

您需要提供有关您关注的特定警告的更多详细信息以及随附的代码。但请记住先在这里搜索以前的答案。


我看到警告实际上是代码中的文本,而不是编译器输出中发出的消息。摆脱这些的方法是搜索关键字( UPGRADE_WARNING ,我猜),考虑它所警告的问题是否已经解决或仍然是一个有效的问题,解决问题,如果有是一个,删除警告线。例如,varJonSkeet 是否是默认属性,如果没有,是否需要一个?您是否应该使用非默认属性? (你真的不会问如何删除一行文字,不是吗?)

如果您已经浏览了整个文件并确定没有任何警告有效,则可以快速删除所有警告线。

grep -v UPGRADE_WARNING input_file.vb > output_file.vb
ren output_file.vb input_file.vb

如果您的系统上还没有grep,那么您还没有完整的开发环境。 Go get a copy. -v选项告诉它反转搜索结果,从而打印包含搜索模式的所有行。那些被写入新文件。然后用新文件替换旧文件。

答案 2 :(得分:1)

我相信他说他想从他的代码中删除内联评论。

最快的方法是在文件中为UPGRADE_WARNING执行查找:并手动删除它们。

或者,

您可以创建一个新的.Net程序来遍历源目录中的每个.vb文件,并使用StreamReader读取它们,然后一次将它们写出一行到同一个文件中,然后省略任何行包含UPGRADE_WARNING:。

如果你采用第二种方式,那么你可以更好地完成更多的vb.net编码。


   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim FileName As String = "c:\form1.vb"
        Dim SourceFile As System.IO.FileInfo = New FileInfo(FileName)
        Dim SourceTextStream As System.IO.TextReader = SourceFile.OpenText()

        Dim SourceFileContent() As String = Split(SourceTextStream.ReadToEnd(), vbCrLf)
        SourceTextStream.Close()

        Dim CurrentSourceLine As String
        Dim CurrentSourceLineNumber As Long

        Dim DestStream As StreamWriter = New StreamWriter(FileName)
        Dim LogStream As StreamWriter = New StreamWriter(FileName + ".log")

        For Each CurrentSourceLine In SourceFileContent
            CurrentSourceLineNumber += 1
            If InStr(CurrentSourceLine, "UPGRADE_WARNING") = 0 Then
                DestStream.WriteLine(CurrentSourceLine)
            Else
                ' Write to Log File
                LogStream.WriteLine("Line Skipped at number: " + CurrentSourceLineNumber.ToString())
            End If
        Next

        DestStream.Close()
        LogStream.Close()




    End Sub

答案 3 :(得分:0)

在VB.NET中重写项目。摆脱警告可能只是达到(我认为)是一个工作计划的目标的手段。

答案 4 :(得分:0)

上面提到的VS 2008方法不适用于VS 2010及更高版本。 对于VS 2010及更高版本,请按照以下步骤删除升级警告...

  1. CTRL + F
  2. 展开"查找..."下拉并选择"在文件中查找..."。
  3. 选择"替换文件"标签。
  4. 找到:[^ \ S \ r \ n]' UPGRADE_WARNING:。* \ r?\ n
  5. 替换为:BLANK
  6. 展开"查找选项"。
  7. 检查"使用正则表达式"。
  8. 开始搜索/替换/替换所有。
  9. 解释:使用正则表达式,[^ \ S \ r \ n]告诉正则表达式忽略行开头的空白区域,然后显然' UPGRADE_WARNING:警告注释的开始是寻找,然后。*告诉正则表达式忽略除了* \ r?\ n之外的所有其他内容,然后* \ r?\ n告诉正则表达式也匹配最后的换行符(没有这部分会留下一个每个警告都会出现的空行。