.NET Core 及 .NET 5 及後續版本取消了 .NET Framework 中存在的全域組合快取(GAC)概念。 為了幫助開發者避開這些 API,一些與 GAC 相關的 API 從 .NET 5 開始被標記為過時。 使用這些 API 會在編譯時產生警告 SYSLIB0005 。
以下與 GAC 相關的 API 已標記為過時:
-
函式庫和應用程式不應該使用 GlobalAssemblyCache API 來判斷執行時行為,因為它總是在 .NET Core 和 .NET 5+ 中回傳
false。
因應措施
如果你的應用程式查詢該 GlobalAssemblyCache 屬性,考慮移除該呼叫。 如果你用這個 GlobalAssemblyCache 值在執行時選擇「在 GAC 裡的裝配」流程,或是「不在 GAC 裡的裝配」流程,請重新考慮這個流程是否對 .NET 5+ 應用程式來說還適用。
隱藏警告
如果您必須使用過時的 API,您可以在程式碼或專案檔中隱藏警告。
若要僅抑制單一違規,請將預處理器指示詞新增至來源檔案以停用,然後重新啟用警告。
// Disable the warning.
#pragma warning disable SYSLIB0005
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0005
若要隱藏 SYSLIB0005 專案中的所有警告,請將屬性新增至 <NoWarn> 專案檔。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0005</NoWarn>
</PropertyGroup>
</Project>
如需詳細資訊,請參閱隱藏警告。