- CS0012:類型 'type' 定義於未參考的組件中。您必須新增組件 'assembly' 的參考。
- CS0234: 命名空間中不存在類型或命名空間名稱(您是否遺漏元件參考?)
- CS0246: 找不到類型或命名空間名稱(您是否遺漏 using 指令或元件參考?)
- CS0400: 全域命名空間中找不到類型或命名空間名稱(您是否遺漏元件參考?)
- CS1068:在 全域命名空間中找不到類型名稱。此類型已轉送至另一個元件。請考慮新增該元件的參考。
- CS1069: 在命名空間中找不到類型名稱。此類型已轉送至另一個元件。請考慮新增該元件的參考。
- CS1070: 找不到類型名稱。此類型已轉送至另一個元件。請考慮新增該元件的參考。
- CS1704: 已匯入具有相同簡單名稱的元件。請嘗試移除其中一個參考,或對它們進行簽署以啟用並行作業。
- CS1714: 無法解析此類型的基類或介面或無效。
- CS1760: 多個元件參考相同的元數據,但只有一個是鏈接參考(使用 /link 選項指定):請考慮移除其中一個參考。
- CS7008: 元件名稱是保留的,無法在互動式會話中當做參考使用。
- CS7068:類型的參考聲稱其已在此元件中定義,但在來源或任何添加的模組中並無定義。
- CS7069: 類型參考聲稱它是在另一個元件中定義,但無法找到此元件。
- CS7071: 元件參考無效,無法解析。
- CS7079: 類型定義於尚未新增的模組中。您必須新增模組。
- CS8090: 參考的元件發生錯誤。
- CS8203: 元件名稱無效。
- CS8206: 模組名稱在組件「assembly name」中,將型別「type name」轉發給多個組件:「第一個組件名稱」和「第二個組件名稱」。
- CS8356: 預先定義的型別「類型名稱」在多個參考組件中宣告:「第一個組件名稱」與「第二個組件名稱」
- CS9286: 類型不包含定義,而且找不到接收者類型的可存取擴充成員(您是否遺漏 using 指示詞或元件參考?)
此外,本文還涵蓋以下警告:
- CS1683: 類型 'Type Name' 的參考聲稱在這個元件中定義,但它並未在原始程式碼或任何新增的模組中定義。
遺漏引用
下列錯誤和警告表示您遺漏元件參考:
- CS0012: 類型 'type' 定義於未被參考的組件中。您必須新增組件 'assembly' 的參考。
- CS0234: 命名空間中不存在類型或命名空間名稱(您是否遺漏元件參考?)
- CS0246: 找不到類型或命名空間名稱(您是否遺漏 使用 指令或元件參考?)
- CS1714: 無法解析此類型的基類或介面或無效。
- CS9286: 類型沒有定義,且找不到接收者類型的可存取擴充成員(您是否遺漏了 using 指示詞或組件參考?)
這些編譯程式錯誤指出程序代碼中的其中一個問題:
- 專案沒有參考必要的組件。 若要修正此錯誤, 請新增必要元件的參考。
- 您拼錯類型的名稱。 檢查類型的名稱。
- 您使用了變數名稱,而預期應使用System.Type名稱,例如
typeof運算子或is運算子中。 - 當類型不在全域命名空間中時,您使用了全域範圍運算符 (
::)。 - 您正在存取擴充方法,但命名空間未在
using指示詞中指定,或者您未引用包含該擴充方法的組件。
當組合件被指涉時
如果組件似乎被參考在您的專案中,但您仍然收到錯誤碼 CS0012,請嘗試下列疑難排解步驟:
還原套件:執行
dotnet restore以確保所有套件參考都已正確解析,尤其是在安裝或解除安裝 NuGet 套件之後。清除 NuGet 套件快取並重新還原:
dotnet nuget locals all --clear dotnet restore檢查版本衝突:確認所有參考的元件都使用相容的版本。 在組建輸出中尋找繫結重新導向警告。
清理方案並重建,以確保沒有過時的參考文件。
dotnet clean dotnet build驗證套件完整性:如果套件操作後發生錯誤,請透過刪除並重新安裝套件來確保套件已正確安裝:
dotnet remove package [PackageName] dotnet add package [PackageName]
類型轉送
- CS1068:在 全域命名空間中找不到類型名稱。此類型已轉送至另一個元件。請考慮新增該元件的參考。
- CS1069: 在命名空間中找不到類型名稱。此類型已轉送至另一個元件。請考慮新增該元件的參考。
- CS1070: 找不到類型名稱。此類型已轉送至另一個元件。請考慮新增該元件的參考。
- CS8206: 模組名稱在組件「assembly name」中,將型別「type name」轉發給多個組件:「第一個組件名稱」和「第二個組件名稱」。
CS1068、CS1069 和 CS1070 表示在參考已轉送至另一個組件的型別時發生錯誤。 請加入錯誤訊息中指出之組件的參考。
CS8206 表示參考組件或模組中存在衝突的型別轉發元資料。 同一類型會被轉發到多個目的組件。 使用經過修正或重建的依賴關係,將型別轉送至單一目標。 確保套件版本與組件版本一致,或移除引入衝突中繼資料的參考項目。 來源別名或本地類型宣告的無關變更無法修正引用的元資料。
重複參考
下列錯誤指出重複的元件參考:
- CS1704: 已匯入具有相同簡單名稱的組件。請嘗試移除其中一個參考,或為它們簽署以允許並行運行。
- CS1760: 多個元件參考相同的元數據,但只有一個是鏈接參考(使用 /link 選項指定):請考慮移除其中一個參考。
- CS8356: 預先定義的型別「類型名稱」在多個參考組件中宣告:「第一個組件名稱」與「第二個組件名稱」
要修正這些錯誤,請移除其中一個參考或解決重複問題。 重複的原因包括:
- 多個名稱相同的未簽署組件。
- 您的項目會參考相同元件的多個版本。
對於 CS8356,請移除或替換定義相同預定義執行時類型的重複或不相容參考。 確保專案目標是一個連貫的框架與參考組合集。 不要再新增預設類型的原始碼定義。
無效的元件參考
下列錯誤指出元件參考無效:
- CS7008: 元件名稱是保留的,無法在互動式會話中當做參考使用。
- CS7068: 關於型別的參考表示它在這個組合語言中有定義,但在原始碼或任何新增模組中並未定義。
- CS7069:指定的類型被聲稱定義在另一個組件中,但無法找到。
- CS7071: 元件參考無效,無法解析。
- CS7079: 類型定義於尚未新增的模組中。您必須新增模組。
- CS8090: 參考的元件發生錯誤。
- CS8203: 元件名稱無效。
下列警告也表示無效的參考元件:
- CS1683: 對類型 'Type Name' 的參考聲稱該類型已在此程式集定義,但並未在源代碼或任何新增的模組中定義
請確認你拼寫正確的組裝名稱。 參考的元件檔案可能無效。