EntityFramework 6.1.3不支持在Visual Studio 2015上使用.NETPlatform框架,版本为v5.4。

15
任何想法为什么我在Nuget安装Entity Framework 6.1.3后收到以下错误?
错误提示:"项目foo bar中的依赖项EntityFramework 6.1.3不支持框架.NETPlatform,Version=v5.4"
这是我的global.json文件(已编辑个人数据)。
{
  "version": "1.0.0-*",
  "description": foo bar Class Library",
  "authors": [ "foo bar" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
  "frameworks": {
    "net451": { },
    "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": "6.1.3"
  }
}

4
你的 JSON 文件中的 dotnet5.4 是什么?你来自未来吗? - Fede
2
@Fede,这是 .Net 平台 5.4。不确定哪个 EF 版本支持此平台。 - Don
@Fede 最新的 .Net Framework 版本是 4.6 哈哈 - zackery.fix
5个回答

9

我通过删除这一行代码 - "net451": { },然后将"dotnet5.4"替换为"net451"来解决问题。


运作得很好。我猜这只是一个旧的项目模板(因为代号曾经改过几次)。我还有“net451”(完整框架),现在被“dnx451”所取代(没有副作用)。 - drizin
有人能告诉我如何在未来的项目中避免这种情况吗?我曾经遇到过同样的问题。 - Mohit Shah

2
我通过将依赖项剪切到.Net4.51中来解决了这个问题:

"dependencies": { "EntityFramework": "6.1.3" }

请注意,保留了HTML标记。
"net451": {
  "dependencies": {
    "EntityFramework": "6.1.3",
    "Microsoft.AspNet.Identity.Core": "2.2.1",
    "Microsoft.AspNet.Identity.EntityFramework": "2.2.1"
  }

最终效果

    {
  "version": "1.0.0-*",
  "description": "EMS.Identity Class Library",
  "authors": [ "SamuelA" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
  "frameworks": {
    "net451": {
      "dependencies": {
        "EntityFramework": "6.1.3",
        "Microsoft.AspNet.Identity.Core": "2.2.1",
        "Microsoft.AspNet.Identity.EntityFramework": "2.2.1"
      }
    },
    "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"
      }
    }
  }
}

2

我曾经遇到与EF7相关的同样问题,通过在EF库和所有依赖它的项目的project.json中将dotnet54更改为netcore50,我成功地解决了这个问题。


0

我通过手动编辑project.json文件快速解决了类似的问题。

注意:让我提一下,我的解决方案是Asp.net 5.0 Web应用程序,目标是DNX 4.5.1。

它曾经是:

{
  "version": "1.0.0-*",
  "description": "DataLayer Class Library",
  "authors": [ "local-admin" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
  "frameworks": {
    "net451": { },
    "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": "6.1.3"
  }
}

我替换了框架部分,变成了:

{
  "version": "1.0.0-*",
  "description": "DataLayer Class Library",
  "authors": [ "local-admin" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
  "frameworks": {
    "dnx451": { }
  },
  "dependencies": {
    "EntityFramework": "6.1.3"
  }
}

0

我曾经遇到过同样的问题,后来通过删除特定项目文件的obj文件夹解决了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接