我在C#方面的第一步是很糟糕的。
現在我正在嘗試安裝Entity Framework。為了做到這一點,我只需進入NuGet包管理器,輸入 "Entity "并嘗試安裝第一個條目,即 "Microsoft.EntityFrameworkCore",版本v5.0.10.
。這失敗了,出現了以下錯誤資訊:
無法安裝'Microsoft.EntityFrameworkCore 5.0.10'包。你試圖將此包安裝到以'.NETFramework,Version=v4.6.1'為目標的專案中,但該包不包含任何與該框架兼容的程式集參考或內容檔案。欲了解更多資訊,請聯系軟體包的作者。 這怎么可能呢?.NetFramework,版本v4.6.1是我公司的默認版本,我只是點擊了搜索結果中的第一個NuGet包,而據我所知,Visual Studio 2017是一個基本的IDE。
除此之外,沒有任何方向可言:錯誤資訊只是說 "不兼容",但沒有提到.NetFramework版本太舊或太新,.Net Framework太舊或太新,......
錯誤資訊提到 "不兼容"。
錯誤訊息提到 "聯系軟體包的作者",但是當我訪問物體框架的 "專案 URL"(https://docs.microsoft.com/en-us/ef/core/)時,該網站甚至沒有提到 .NetFramework。
有誰知道解決這個問題的最簡單的方法嗎?(我相信安裝另一個版本的 Entity framework 將是明智之舉。
預先感謝
uj5u.com熱心網友回復:
盡管@MarcGravell的評論,EF Core在.NET框架專案中運行良好。但不幸的是,v5只在支持.NET標準2.1的框架中作業,這不包括任何版本的.NET框架。
.NET Standard | Microsoft Docs
對于一個.NET框架專案,您可以使用的最新版本的EF Core是v3.1.19。這支持.NET標準2.0,技術上包括.NET框架4.6.1和更高版本。
Install-Package Microsoft.EntityFrameworkCore -Version 3.1.19
NB:正如MS檔案中提到的,從.NET Framework 4.6.1應用程式中消費.NET標準2.0庫存在一些問題。特別是,你可能最終會拉入大量的支持包。如果你能將你的應用程式至少升級到.NET Framework 4.7.2,那就更好了,因為它不會有這些問題。
uj5u.com熱心網友回復:
我已經確認,在VS2017的Nuget包管理器中,第一個條目是 "Microsoft.EntityFrameworkCore",當使用.Net 4.6專案的參考資料搜索 "Entity "時,它錯誤地顯示 "Latest Stable 5.0.10 "為適用版本。(NuGet應該根據合適的目標依賴關系來建議)
正如Richard指出的那樣,你可以在搜索 "Entity "時將 "Latest Stable 5.0.10 "作為適用版本。
正如Richard所指出的,你可以在一個.Net Framework專案中使用EF Core,但限制是EF Core 3.1,因為.Net Framework只支持到.Net Standard 2.0。如果你使用VS中的包管理器UI,你將希望使用 "版本:"的下拉選單來選擇 "3.1.19",因為這是最后一個可以與.Net Framework 4.x一起使用的版本。
我建議在.Net Framework專案中使用EF6而不是EF Core 3.1,因為3.1仍然缺少EF6中的功能。搜索 "EntityFramework "可以找到 "EntityFramework",也就是EF6。(奇怪的是,在搜索 "Entity "一詞時,它似乎并不容易出現。
請注意,如果您的目標是.Net Framework 4.6.1,那么對該版本的支持將于2022年4月結束。你應該強烈考慮將目標更新到4.8,或者至少是4.6.2。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/331786.html
標籤:
