Share via


Visual Studio 中受控程式碼的舊版分析概觀

Visual Studio 可以透過兩種方式執行受控程式碼的程式碼分析:使用舊版分析,也稱為受控組件的 FxCop 靜態分析,以及使用更現代化的 .NET Compiler Platform 型程式碼分析器。 本主題涵蓋舊版分析。 若要深入了解 .NET Compiler Platform 型程式碼分析,請參閱 .NET Compiler Platform 型分析器概觀

受控程式碼的程式碼分析可以分析受控組件並回報組件的相關資訊,例如是否違反 .NET 設計方針所制定的程式設計和設計規則。

分析工具會將分析期間所做的檢查顯示為警告訊息。 警告訊息會識別任何相關的程式設計和設計問題,並且在可能的時候,提供如何修正問題的資訊。

注意

Visual Studio 中的 .NET Core 和 .NET Standard 專案皆不支援舊版分析 (靜態程式碼分析)。 如果您在 msbuild 的 .NET Core 或 .NET Standard 專案上執行程式碼分析,則會看到類似於下方的錯誤:錯誤:CA0055 :無法識別 <.dll> 的平台。 若要分析 .NET Core 或 .NET Standard 專案中的程式碼,請改用程式碼分析器

IDE (整合式開發環境) 整合

您可以手動或自動針對專案執行程式碼分析。

若要在每次建置專案時執行程式碼分析,請選取專案 [程式碼分析] 屬性頁面上的選項。 如需詳細資訊,請參閱如何:啟用和停用自動程式碼分析

若要在專案上手動執行程式碼分析,請從功能表列選擇 [分析]>[執行程式碼分析]>[對 < 專案執行程式碼分析]>

規則集

受控碼的程式碼分析規則會分組成「規則集」。 您可以使用其中一個 Microsoft 標準規則集,或建立自訂規則集來滿足特定需求。

隱藏警告

最大的用途是指出某個警告不適用。 這會通知程式開發人員和其他稍後可能會檢閱程式碼的人員,指出您已經調查此警告並且隱藏或忽略它。

原始檔中隱藏警告是透過自訂屬性實作。 若要隱藏警告,請將 SuppressMessage 屬性加入至原始程式碼,如下列範例所示:

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
Public class MyClass
{
   // code
}

如需詳細資訊,請參閱隱藏警告

注意

如果您將專案移轉至 Visual Studio 2019,可能會突然面臨大量的程式碼分析警告。 如果您尚未準備好修正警告,可以選擇 [分析]>[建置並隱藏作用中問題] 來隱藏所有警告。

執行程式碼分析做為簽入原則的一部分

從組織的角度來看,您可能想指定所有的簽入都要滿足特定的原則, 尤其您會想要確認您已經確實遵循這些原則:

  • 所簽入的程式碼中沒有建置錯誤。

  • 程式碼分析作為最新建置的一部分執行。

您可以指定簽入原則,達成上述要求。 如需詳細資訊,請參閱使用專案簽入原則強化程式碼品質

Team Build 整合

您可以使用建置系統的整合式功能,執行分析工具做為建置流程的一部分。 如需詳細資訊,請參閱 Azure Pipelines