ASP.Net 5類庫包中的EntityFramework命令?

.net-core asp.net-core entity-framework-core

我正在嘗試開發我的第一個ASP.Net Web應用程序,在我的解決方案中,我有兩個項目。 Web ApplicationClass Library (Package) 。當我構建此應用程序的ASP.Net 4.5版本時,我將我的Entity Framework 6實體放入類庫中,所以我在ASP.Net 5版本中這樣做。問題是當我將EntityFramework.Commands安裝到類庫時,我收到錯誤:

Project DBEntities中的依賴項EntityFramework.Command 7.0.0-rc1-final不支持框架.NetPlatform,Version = 5.4

我對這個問題的理解是, dotnet5.4是新的.Net 5,應該由EF7支持。

這是我的project.json文件:

{
  "version": "1.0.0-*",
  "description": "FFInfo.DAL Class Library",
  "authors": [ "Mathew" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.1-beta-23516",
                "System.Collections": "4.0.11-beta-23516",
                "System.Linq": "4.0.1-beta-23516",
                "System.Runtime": "4.0.21-beta-23516",
                "System.Threading": "4.0.11-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.Commands": "7.0.0-rc1-final",
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
    }
}

我安裝了錯誤的軟件包,EF7是否改變了很多,以至於我錯誤地構建了類,或者我在json文件中遺漏了什麼?

編輯:基於建議的新project.json文件

{
  "version": "1.0.0-*",
  "description": "FFInfo.DAL Class Library",
  "authors": [ "Mathew" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.1-beta-23516",
                "System.Collections": "4.0.11-beta-23516",
                "System.Linq": "4.0.1-beta-23516",
                "System.Runtime": "4.0.21-beta-23516",
                "System.Threading": "4.0.11-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.Commands": "7.0.0-rc1-final",
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
    }
}

一般承認的答案

我想你的問題的原因有純粹的技術性質。 聲明宣布將dnx451重命名為net451,將dnxcore50重命名為dotnet5.4,但建議僅對類庫 (例如,您在NuGet上公開與其他人共享)使用此類重命名。如果我理解正確,你開發使用類庫的應用程序 ,因此你應該使用dnxcore50而不是dotnet5.4 。因此, 您只需將字符串“dotnet5.4”重命名為project.json` "dnxcore50" in the file的字符串"dnxcore50" in the file即可解決問題

獨立於上述建議我想添加我對您的問題的理解, 為什麼您會收到有關EntityFramework.Command 7.0.0-rc1-final的錯誤。

我理解將框架重命名為邁向未來計劃微軟計劃的一步。另一方面,框架的所有名稱將被解釋為不同的名稱。我建議您從https://www.nuget的相應信息中比較https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final頁面上顯示的依賴關係信息。 org / packages / EntityFramework.MicrosoftSqlServer / 7.0.0-rc1-finalEntityFramework.MicrosoftSqlServer的依賴關係(對dotnet5.4的使用沒有任何問題)看起來就像在圖片上

在此處輸入圖像描述

我標記了讀取負責dotnet5.4的部分。另一方面, EntityFramework.Commands的依賴關係如下圖所示:

在此處輸入圖像描述

沒有“.NETPlatform 5.4”部分,其中對應新名稱dotnet5.4

我想,這是一個錯誤的部分project.jsonEntityFramework.Commands

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}

我想必須netcore50 dotnet5.4更改為dotnet5.4以正確支持新的框架名稱dotnet5.4 。一個chould替換的內容"netcore50"從複製dnxcore50 (見 ):

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}

可能一個事件應該增加上面引用的dll的一些版本號,但是你仍然無法在"dotnet5.4"下使用EntityFramework.Commands直到新的固定版本將被發布。

更新:我向EntityFramework開發團隊提出了這個問題 。在我得到它之後,我將包括微軟對這個問題的回應。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因