我正在尝试将EF7 rc1安装到现有项目中:
PM> Install-Package EntityFramework.MicrosoftSqlServer -Pre
但是我收到以下错误:
安装失败。回滚...
中不存在
Package' Microsoft.Extensions.Logging 1.0.0-rc1-final'在项目' XYZ'
在跟踪的最后,我收到了另一条消息:
Install-Package:无法添加对System.Collections.Concurrent'的引用。请确保它在全局程序集缓存中。
我用谷歌搜索,可以看到Concurrent集合已经在dotnet中存在了一段时间,但我在开发框中没有这样的汇编。
更新
用gacutil
查询gac后,我意识到组件确实存在:
全局程序集缓存包含以下程序集:
System.Collections.Concurrent,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL
答案 0 :(得分:11)
由于我在GAC中没有System.Collections.Concurrent
程序集,我安装了System.Collections.Concurrent
NuGet包:
Install-Package System.Collections.Concurrent
然后手动添加对packages\System.Collections.Concurrent.4.0.10\lib\dotnet\System.Collections.Concurrent.dll
的引用(因为net46文件夹为空)。
之后,EntityFramework.MicrosoftSqlServer
的安装完成,没有错误。
答案 1 :(得分:8)
收到此错误后,通过删除对其他项目的引用,我能够将EF7 RC1安装到我的项目中,之后我能够成功地将EF7 RC1安装到我需要它的项目中,然后添加引用,之后解决方案开始编译(并且至少一些基本的EF功能开始工作)。可能是nuget / dnu的故障。
答案 2 :(得分:3)
在我的情况下,我不得不删除xUnit nuget包。删除这些引用后,Microsoft.Extensions.Logging 1.0.0-rc1-final正确安装。之后我没有任何问题地添加了xUnit。
答案 3 :(得分:2)
如果您现在正在获取此信息(如2016年4月),则这些答案可能已过期。我是第一次安装EF7,但我发现的是:
EntityFramework.SqlServer
首先认为这是最顶级的'我需要的包EntityFramework.Commands
并获得了愚蠢的收藏品'上面显示的错误我仔细查看了版本。
所以我去了'管理nuget包'为项目和更新更新下显示的所有内容。 我实际上必须做两次。
然后将EF7核心内容提升到RC1
然后我可以毫无问题地安装EntityFramework.Commands
。
Why?
因为他们将EntityFramework.SqlServer
包重命名为EntityFramework.MicrosoftSqlServer
因此,您确实要卸载*.SqlServer
并安装*.MicrosoftSqlServer
这解释了为什么没有RC1版本。
答案 4 :(得分:1)
这是PITA,但使用.Net v4.5.2
安装EntityFramework.Core -pre
的解决方法是:
install-package entityframework.core -pre
packages.config
的内容,但不包含代表EntityFramework.Core
packages.config
中加入行。update-package -reinstall -projectName YourProjectNameFromStep4
install-package EntityFramework.Core -pre
注意!如果第5步失败,则必须执行以下操作:
install-package System.Collections.Concurrent -version 4.0.0 -projectName YourProjectNameFromStep4
install-package System.Runtime -version 4.0.0 -projectName YourProjectNameFromStep4
从步骤6 成功安装后,可以删除这些内容:
uninstall-package System.Collections.Concurrent -projectName YourProjectNameFromStep4
uninstall-package System.Runtime -projectName YourProjectNameFromStep4
重新启动Visual Studio后,它可能会说“找不到System.Collections.Concurrent
但是闭上眼睛似乎有效。
答案 5 :(得分:0)
这里的问题相同。我卸载了ef7-beta8及其依赖并重新安装了ef7 ......问题解决了,所以似乎更新逻辑或nuget本身存在一个错误,不确定。
答案 6 :(得分:0)
作为一种解决方法,我创建了一个新项目,安装了EF 7,手动添加了以前的源文件并且工作正常。