共用方式為


.NET 可攜性分析器

重要

API 埠已被取代,以使用 .NET 升級小幫手工具進行二進位分析。 API 連接埠的後端服務已關閉,因此若要使用此工具,您必須離線使用。 如需詳細資訊,請參閱 .NET API 連接埠讀我檔案

要讓您的程式庫支援多平台? 想要查看讓您的 .NET Framework 應用程式在 .NET Core 上執行所需的工作量? .NET 可攜性分析器是可分析組件,並針對將應用程式或程式庫移植到指定目標 .NET 平台上所需的遺失 .NET API 提供詳細報告的工具。 可移植性分析器是 主控台應用程式,可依指定的檔案或目錄分析元件。

將專案轉換成以新的平台為目標之後,例如 .NET Core,您便可以使用 Roslyn 型平台相容性分析器來識別擲回 PlatformNotSupportedException 例外狀況和其他相容性問題的 API。

常見目標

  • .NET:具有模組化設計、支援並存安裝,以及以跨平臺案例為目標。 並存安裝可讓您採用新的 .NET 版本,而不會中斷其他應用程式。 如果您的目標是將應用程式移植到 .NET 並支援多個平臺,這是建議的目標。
  • .NET Standard:包含在所有 .NET 實作上提供的 .NET Standard API。
  • ASP.NET Core:以 .NET 為基礎的新式 Web 架構。 如果您的目標是將 Web 應用程式移植到 .NET (Core) 以支援多個平臺,這是建議的目標。
  • .NET + 平臺延伸模組:除了提供許多 Windows 特定 .NET Framework 技術的 Windows 相容性套件之外,還包括 .NET API。
  • .NET Standard + 平臺延伸模組:除了提供許多 Windows 特定 .NET Framework 技術的 Windows 相容性套件之外,還包括 .NET Standard API。

如何使用 .NET 可攜性分析器

若要開始在 Visual Studio 中使用 .NET Portability Analyzer,您必須先 複製並建置 dotnet-apiport 專案,。 其適用於 Visual Studio 2017 和 Visual Studio 2019 版本。

重要

Visual Studio 2022 不支援 .NET 可攜性分析器。

整體解決方案檢視

分析具有許多專案之解決方案的一個實用步驟,就是將相依性可視化,以瞭解哪些元件子集相依於什麼。 一般建議是在從相依性圖表中的分葉節點開始,套用由下至上分析的結果。

若要檢索此內容,請執行下列命令:

ApiPort.exe analyze -r DGML -f [directory or file]

在 Visual Studio 中開啟時,此結果看起來如下:

DGML 分析的螢幕快照。

分析可攜性

輸入下列命令來分析目前目錄:

ApiPort.exe analyze -f .

若要分析 .dll 檔案的特定清單,請輸入下列命令:

ApiPort.exe analyze -f first.dll -f second.dll -f third.dll

若要以特定版本為目標,請使用 -t 參數:

ApiPort.exe analyze -t ".NET, Version=5.0" -f .

執行 ApiPort.exe -? 以取得詳細說明。

建議您 包含 您擁有和想要移植的所有相關 .exe.dll 檔案,並 排除 應用程式相依但您不擁有且無法移植的檔案。 這會提供您最相關的可攜性報告。

檢視並解譯可攜性結果

只有目標平台不支援的 API 會顯示在報表中。 您的 .NET 可移植性報告會以您指定的格式儲存為檔案。 預設會在您目前的目錄中儲存為 Excel 檔案 (.xlsx)。

可攜性摘要

可移植性摘要的螢幕快照。

此報表顯示的可攜性摘要區段,會顯示該次執行中每個組件的可攜性百分比。 在上述範例中,71.24% 用於 svcutil 應用程式中的 .NET Framework API 可在 .NET Core + 平台延伸模組中取得。 如果您對多個組件執行 .NET 可攜性分析工具,每個組件都應該在可攜性摘要報告中具有一個資料列。

詳細資料

可移植性詳細數據的螢幕快照。

報告的 [詳細資料] 區段,其中會列出任何所選 [目標平台] 遺漏的 API。

  • 目標類型:該類型在目標平台中缺少 API。
  • 目標成員:目標平臺遺漏方法。
  • 組件名稱:缺少之 API 所在的 .NET Framework 組件。
  • 每個選取的目標平台都是一個資料行,例如「.NET Core」:「不支援」值,表示此目標平台不支援 API。
  • 建議的變更:建議要變更的 API 或技術。 目前,許多 API 的此欄位為空白或過期。 由於大量的 API,因此保持最新狀態是一項重大挑戰。

遺漏元件

遺漏元件的螢幕快照。

您可能會在報表中找到遺漏的元件區段。 此區段包含的組件清單由已分析的組件所參考,但未進行分析。 如果是您自己擁有的組件,請將其納入 API 可攜性分析器中執行,以便您可為其取得 API 層級的詳細可攜性報告。 如果是協力廠商程式庫,請檢查是否有支援目標平台的較新版本,並考慮移至較新版本。 最後,這份清單應包含您應用程式所依賴的所有第三方組件,以及具有支援您目標平台的版本。

另請參閱

如需 .NET 可攜性分析器 的詳細資訊,請瀏覽 GitHub 文件 (英文)。