2009-04-16 53 views
0

我已經將VB6項目轉換爲VB.NET,並且留下大量內聯「警告消息」,如「UPGRADE_WARNING:Could not resolve default對象varJonSkeet的屬性「,我想擺脫。有沒有辦法在Visual Studio 2008中做到這一點?使用正則表達式去除警告信息會更容易嗎?我寧願一次刪除一個文件,但它不是一個破壞者。將vb6項目轉換爲VB.NET後簡單的方法刪除警告消息

回答

1

我相信他說他想要從他的代碼中刪除內聯評論。

最快的方法是在UPGRADE_WARNING文件中執行查找:並手動刪除它們。

或者,

您可以創建一個新的.NET程序通過每一個.vb文件源目錄中的迭代和使用一個StreamReader讀它們,然後在同一時間把它們寫出來1號線到同一個文件當你去掉包含UPGRADE_WARNING:的任何行時。

如果你做第二種方式,你會更好地做了更多的vb.net編碼。如果使用VS 2008


    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 
+0

我想我正在尋找太複雜的解決方案。用通配符搜索效果很好。在進行替換時,是否有辦法刪除該行而不是用空行替換它? – 2009-04-16 20:24:12

0

在VB.NET中重寫項目。擺脫警告可能只是達到目標(我認爲)是一個工作程序的一種手段。

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選項告訴它反轉搜索結果,從而打印出不包含包含搜索模式的所有行。那些被寫入新文件。然後用新的文件替換舊文件。

+0

我澄清了我的問題。我正在修復最初導致警告的內容,但是這並不會刪除從代碼添加的註釋。 – 2009-04-16 20:09:22

5

快速和簡單的修復,利用查找和替換

  • 打開查找選項
  • 點擊 '使用',然後選擇 '通配符'
  • 在'查找內容'中放置''升級警告*',並保留'替換爲'空白
  • 單擊「全部替換」
0

上面提到的VS 2008方法不適用於VS 2010及更高版本。 2010 VS後來按照以下步驟刪除升級警告...

  1. CTRL + F
  2. 展開「查找...」下拉菜單,選擇「在文件中查找...」。
  3. 選擇「在文件中替換」選項卡。
  4. 查找內容:[^ \ S \ r \ n]'的UPGRADE_WARNING:*?\ r \ n
  5. 替換爲:BLANK
  6. 展開 「查找選項」。
  7. 選中「使用正則表達式」。
  8. 開始搜索/替換/全部替換。

解釋:使用正則表達式時,[^ \ S \ r \ n]的告訴正則表達式來忽略在該行的開頭則顯然是「UPGRADE_WARNING的空白,:是警告註釋開始了尋找,然後。*告訴正則表達式忽略所有其他的* \ r?\ n,那麼* \ r?\ n告訴正則表達式也匹配最後的換行符(沒有這部分會留下一個空白行,每一個警告都會發生)。