2010-07-31 68 views
100

我相信有两个版本1和2?版本2被称为实体框架4.0?确定我正在使用的实体框架的版本?

如何判断应用程序中正在使用哪个版本?

这是在我的web.config这是否意味着我使用版本2?

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

回答

73

有两个版本:1和4.EFv4是.net 4.0的一部分,EFv1是.net 3.5 SP1的一部分。

是的,上面的配置设置指向EFv4/.net 4.0。

编辑 如果您打开引用文件夹,找到system.data.entity,单击该项目,然后检查在属性浏览器中运行时的版本号,你会看到子版本,以及。我的例子显示版本属性显示为4.0.0.0的运行时版本v4.0.30319。 EntityFramework.dll也可以用这种方式查看。只有版本是4.1.0.0,运行时版本是v4.0.30319,它指定它是一个.NET 4组件。或者,您可以打开路径属性中列出的文件位置,然后右键单击有问题的组件,选择属性,然后选择详细信息选项卡并查看产品版本。

+2

是的,但有4.0的不同版本。 – MikeKulls 2011-07-21 05:04:49

+0

请参阅下面的Microsoft回复版本历史记录。 – Marcel 2012-11-06 07:09:06

+0

现在有三个版本,EFV5与.NET 4.5相关联,截至目前,EFv6正在建设中 – Farax 2013-09-19 01:32:12

11

如果您打开参考文件夹并找到system.data.entity,请单击该项目,然后在Properties资源管理器中检查运行时版本号,您也会看到子版本。例如,我的v4.0.30319显示版本属性显示4.0.0.0。

123

获取正在使用的EF版本的另一种方法是在Visual Studio中打开程序包管理器控制台(PMC),然后在提示符下键入Get-Package。第一行是EntityFramework,并列出项目安装的版本。

PM> Get-Package 

Id        Version    Description/Release Notes                                               
--        -------    -------------------------                                               
EntityFramework    5.0.0    Entity Framework is Microsoft's recommended data access technology for new applications.                               
jQuery       1.7.1.1    jQuery is a new kind of JavaScript Library....           `enter code here`

它显示更多,你可能不得不向后滚动找到EF行,但这是我知道的最简单的方法。

+12

那么这里假设你通过软件包管理器安装了引用,这对我们很多人来说并非如此。 – 2014-11-26 20:05:43

+0

最佳答案,就像一个魅力,并为其他事情工作以及:D – Squazz 2016-04-04 19:53:18

+0

@LaurentJalbertSimard我没有明确这样做,它仍然出现。 – Dan 2016-10-18 12:35:00

32

可以在packages.config文件中检查它。

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
<package id="EntityFramework" version="6.0.2" targetFramework="net40-Client" /> 
</packages> 
1

如果你去参考,点击实体框架,查看属性它会告诉你的版本号。

0
internal static string GetEntityFrameworkVersion() 
    { 
     var version = ""; 
     var assemblies = System.AppDomain.CurrentDomain.GetAssemblies().Select(x => x.FullName).ToList(); 
     foreach(var asm in assemblies) 
     { 
      var fragments = asm.Split(new char[] { ',', '{', '}' }, StringSplitOptions.RemoveEmptyEntries).Select(x=> x.Trim()).ToList(); 
      if(string.Compare(fragments[0], EntityFramework, true)==0) 
      { 
       var subfragments = fragments[1].Split(new char[] { '='}, StringSplitOptions.RemoveEmptyEntries); 
       version =subfragments[1]; 
       break; 
      } 
     } 
     return version; 
    }