[研究]編譯器錯誤訊息: CS0012: 類型 'System.Object' 是定義在未參考的組件中
2024-05-23
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
********************************************************************************
********************************************************************************
'/' 應用程式中發生伺服器錯誤。
編譯錯誤
描述: 資源編譯無法完成 (錯誤發生於服務要求)。請檢閱下列的特定錯誤詳細資料,並視情況修改您的原始程式碼。
編譯器錯誤訊息: CS0012: 類型 'System.Object' 是定義在未參考的組件中。您必須加入參考至組件 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'。
顯示詳細的編譯器輸出資料:
版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.8.4700.0
********************************************************************************
解決:
其實 Visual Studio 2019 編譯時並沒有發生錯誤,是執行時錯誤。
最後檢查發現是 Button 的 OnClick 執行的 Method 剛剛砍掉了,修正後就解決了。
********************************************************************************
ChatGPT
編譯器錯誤訊息 CS0012 提示你在使用的類型 System.Object 是在一個未被引用的組件中定義的。具體來說,它要求你加入 netstandard 庫的引用。這通常發生在你嘗試在專案中使用 .NET Standard 類型或函數,但沒有正確引用相關的 netstandard 組件時。
解決方法
1.檢查專案的目標框架:
確保你的專案目標框架是支援 .NET Standard 的。WebForm 專案通常會目標 .NET Framework。如果你的專案目標是較早版本的 .NET Framework,則可能需要升級目標框架。
2.加入 netstandard 組件的引用:
如果你的專案確實需要引用 netstandard,你可以手動添加它。步驟如下:
右鍵點擊專案,選擇 "Manage NuGet Packages"。
在 "Browse" 標籤下,搜尋 NETStandard.Library。
安裝這個 NuGet 包。
3.檢查組件的相容性:
確保你所引用的其他第三方組件也與你的目標框架相容。有時候,一些第三方庫可能需要 .NET Standard 的支持。
示例步驟
1.升級目標框架(如果需要):
右鍵點擊你的專案,選擇 "Properties"。
在 "Application" 標籤下,查看目標框架。考慮將其升級到 .NET Framework 4.7.2 或更高版本,這些版本更好地支持 .NET Standard。
2.加入 NETStandard.Library:
打開 NuGet 包管理器,點擊 "Manage NuGet Packages"。
在 "Browse" 標籤下,搜尋 NETStandard.Library。
點擊 "Install"。
範例錯誤修正
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net472</TargetFramework> <!-- 目標框架 --> </PropertyGroup> <ItemGroup> <PackageReference Include="NETStandard.Library" Version="2.0.0" /> </ItemGroup> </Project> |
這樣可以解決你目前遇到的 CS0012 錯誤。
如果你依然遇到問題,請提供更多上下文訊息,比如你的專案文件(.csproj)的內容或是你正在使用的代碼片段。這樣可以更好地幫助你診斷問題。
********************************************************************************
Copilot
這個錯誤訊息是由於您的專案缺少對 netstandard 組件的參考所導致的。讓我為您解釋一下:
CS0012 錯誤:這是一個編譯時期的錯誤,表示某個類型在未被參考的組件中定義。在您的情況下,這是 System.Object 類型。
解決方法:您需要將 netstandard 組件添加到您的專案中。這個組件通常位於 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Facades 資料夾中。您可以在專案中的參考中新增對 System.Runtime 的參考,版本為 4.0.0.0,文化特性為 中性,PublicKeyToken 為 b03f5f7f11d50a3a12。
https://blog.csdn.net/sinat_40003796/article/details/127734950
(完)
相關
沒有留言:
張貼留言