2010-07-31 149 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; 
    }