C# .net更改EntityFramework.dll以匹配我的.net版本

C# .net更改EntityFramework.dll以匹配我的.net版本,c#,asp.net,.net,asp.net-mvc,entity-framework,C#,Asp.net,.net,Asp.net Mvc,Entity Framework,所以为了解决另一个问题,我检查了EntityFramework.dll的版本是否与.net的版本匹配,但似乎不匹配。我正在使用.net 4.5,我的对象浏览器告诉我EF的版本是\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.dll。这似乎意味着我有.NET4.0的EF,而不是4.5 我不知道这是否是我正在处理的问题的原因,但我想尝试更新它,它被证明是非常顽固的不改变。我尝试了以下方法: 卸载包EntityFramework-强

所以为了解决另一个问题,我检查了EntityFramework.dll的版本是否与.net的版本匹配,但似乎不匹配。我正在使用.net 4.5,我的对象浏览器告诉我EF的版本是
\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.dll
。这似乎意味着我有.NET4.0的EF,而不是4.5

我不知道这是否是我正在处理的问题的原因,但我想尝试更新它,它被证明是非常顽固的不改变。我尝试了以下方法:

  • 卸载包EntityFramework-强制,然后安装包EntityFramework
  • 从我的
    引用中删除包
    ,然后从.net 4.5版本最多的地方添加包
  • 从我的bin和lib文件夹中手动删除EntityFramwork,并从我拥有正确版本的地方复制它
无论我做什么,我仍然得到相同版本的EF。我如何改变这个

我应该在packages.config文件中添加我想要的EF版本:

  <package id="EntityFramework" version="6.1.3" targetFramework="net451" />


但是,当我在对象浏览器中查看EntityFramework.dll的属性时,我被告知它是4.0版本,如下图所示。

它显示的不是您引用的EF版本,而是运行时版本

您可以检查并可以看到,对于所有.net4+,它将显示运行时版本4.0.30319

如果您想使用EF for.net 4.5,只需确保在“packages”文件夹下有一个对应文件夹的引用


例如:
\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll

版本编号有点:


您是否更新了您的
NuGet
版本?您应该更新您的
NuGet
版本,然后重试。您可以在上找到下载。

谢谢。我明白这就是我想要的。我不了解实现这一目标的实际步骤。我已经删除了包,然后在正确的位置添加了对包的引用,但我仍然看到对另一个包的引用。正如我上面所说,我尝试了两种方法。我尝试了所有我能想到的方法,但我仍然有一个错误的方法。如果你手动操作,它应该有一个正确的方法。除非你错过了推荐信。如果您是通过package manager执行此操作的,那么它应该使用您的项目所针对的版本(您可以在项目属性中对此进行检查)。这是有用的信息。正如您在上面看到的,我有运行时版本4.0.30319,这是4.0的版本。所以我还是不知道如何改变它。30319可能是任何东西。你需要更多的数字来弄清楚它到底是什么我该怎么做才能得到更多的数字?我刚刚更新了我的nuget到最新版本,并重复了上面的步骤。我仍然有错误版本的EntityFramework。您应该做的另一件事是从这里手动下载
EntityFramework
,然后重新安装。问题是我有正确的EntityFramework。我可以在我的文件浏览器中看到这个东西。我只是无法让我的项目引用它。
.NET 4.0    4.0.30319.0 to 4.0.30319.17000
.NET 4.5    4.0.30319.17001 to 4.0.3019.18400
.NET 4.5.1  4.0.30319.18401 to 4.0.30319.34000
.NET 4.5.2  4.0.30319.34000 and higher