如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?
Posted
技术标签:
【中文标题】如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?【英文标题】:How to install EntityFramework 5.0 (and other older versions) from NuGet? 【发布时间】:2013-11-26 05:45:25 【问题描述】:我将 EF 5.0 安装到 .DAL 中,现在我想从 Nuget 将 EF 5.0 安装到 .BLL
但默认的在线 Nuget 包总是提供 6.0,与我在 DAL 中使用的 5.0 EF 一起使用时会出错。
在哪里可以将 EntityFramework 5.0 版安装到我的 Nuget 包中??
【问题讨论】:
【参考方案1】:查看 -> 其他窗口 -> 包管理器控制台然后运行
install-package entityframework -version 5.0.0.0
.
如果您想在特定项目中安装它,请添加-project <project.name>
。
【讨论】:
@thenewseattle 你需要什么解释,devnull 给了你所有你需要的东西。 @Freak_Droid 他不知道如何找到命令窗口,默认不显示 @thenewseattle 观察您因命令而收到的消息。您必须卸载任何现有版本,并确保将其从packages.config
中删除(在每个项目中都可以找到)
另外,请确保在Package Source:
下拉列表中选择了Microsoft and .NET
(我选择了nuget.org
,但没有找到5.0 版)。
使用有效的语义版本 Install-Package EntityFramework -Version 5.0.0【参考方案2】:
这是我所经历的:(在我开始之前......感谢 devnull 的答案)。
我点击了:
1) 查看->其他窗口->包管理器控制台然后运行
2) 安装-package entityframework -version 5.0.0.0。
卸载开始,但随后回滚,因为它检测到我已经安装了 Entity Framework (EF) 6.0.2 ...
>PM> install-package entityframework -version 5.0.0.0
安装“EntityFramework 5.0.0”。 您正在从 Microsoft 下载 EntityFramework,其许可协议位于 http://go.microsoft.com/fwlink/?LinkId=253898&clcid=0x409。检查软件包是否有其他依赖项,这些依赖项可能附带他们自己的许可协议。您对包和依赖项的使用构成您接受他们的许可协议。如果您不接受许可协议,请从您的设备中删除相关组件。 成功安装“EntityFramework 5.0.0”。 *****安装失败。滚回来...***** install-package : 已经引用了较新版本的“EntityFramework”。 在行:1 字符:1 + 安装包实体框架-版本 5.0.0.0 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
然后我卸载了 Entity Framework 6.0.2,发现它有一个依赖项也需要删除......然后我终于能够卸载 Entity Framework 6.0.2,然后添加 Entity Framework 5.0.0.0
PM> 卸载包 entityframework -version 6.0.2 uninstall-package : 无法卸载 'EntityFramework 6.0.2' 因为 'AnotherFakeDbSet 3.0.0.0' 依赖于它。
然后我卸载了这两个并安装了Entity Framework 5.0.0.0
PM> uninstall-package AnotherFakeDbSet -version 3.0.0.0
PM>uninstall-package entityframework -version 6.0.2
PM> install-package entityframework -version 5.0.0.0
我喜欢控制台...如果您知道版本号,则比搜索软件包更快。如果你还没有检查过“Powershell”(控制台的基础——我发现它的时间很值得——它允许几乎无限的自动化)
【讨论】:
@timothy - 我没想到会这样,但是有点......除了这个你知道到底是什么导致了这个问题......在dll地狱中,各种程序刚刚停止工作并且您必须找到覆盖现有 dll 的确切程序。但首先我必须弄清楚发生了什么以及 dll 到底是什么,那是在我听说一个叫做 google 的小东西之前...相信我...这更好...【参考方案3】:在 Visual Studio 的早期版本(2015 年之前)中,可以使用仅包管理器控制台安装较旧版本的 Entity Framework 或其他类似包。在 Visual Studio 2015 中,有一个在安装前手动选择版本的选项,但在 Visual Studio 2010、2012 中,您只需要使用包管理器控制台。
简单浏览到链接Nuget Explorer 并单击您必须安装的特定实体版本。
您会看到 Studio 自动显示包管理器控制台代码。
例如,我正在开发一个需要 Entity Framework 4.1 的项目,所以这是我的代码。 Entity Framework Package Manager Console Command Snapshot
【讨论】:
以上是关于如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?的主要内容,如果未能解决你的问题,请参考以下文章
Powershell:如何在未连接的计算机上安装适用于 PowerShell 的 Nuget 提供程序,以便可以从 PS 命令行安装 nuget 包?
如何从 NuGet 包及其依赖项安装 PowerShell 二进制 cmdlet (C#)