2013-01-19 121 views
13

我是新来的MVC 4和实体框架,当我从包管理器控制台运行此命令:实体框架代码优先迁移错误

Enable-Migrations -ContextTypeName MyFirstMvcApp.Models.InventoryDbContext 

联接路径:无法绑定参数参数“路径”因为它是空的。

我得到以下错误:

Join-Path : Cannot bind argument to parameter 'Path' because it is null. 
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:363 char:27 
+  $toolsPath = Join-Path <<<< $installPath tools 
    + CategoryInfo   : InvalidData: (:) [Join-Path], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand 

Join-Path : Cannot bind argument to parameter 'Path' because it is null. 
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:392 char:73 
+  $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path <<<< $toolsPath EntityFramework.PowerShell.Utility.dll)) 
    + CategoryInfo   : InvalidData: (:) [Join-Path], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand 

You cannot call a method on a null-valued expression. 
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:393 char:50 
+  $dispatcher = $utilityAssembly.CreateInstance <<<< (
    + CategoryInfo   : InvalidOperation: (CreateInstance:String) [], RuntimeException 
    + FullyQualifiedErrorId : InvokeMethodOnNull 

Join-Path : Cannot bind argument to parameter 'Path' because it is null. 
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:426 char:19 
+   (Join-Path <<<< $runner.ToolsPath EntityFramework.PowerShell.dll), 
    + CategoryInfo   : InvalidData: (:) [Join-Path], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand 

我该如何解决这个问题? 请注意,我正在使用Visual Studio 2010 Ultimate和SP1,并且我在此link中安装了MVC4。

回答

28

通过卸载和重新安装实体框架来修复它。 为他人谋取利益,这里的命令......

卸载:

PM> Uninstall-Package EntityFramework -Force

卸载后,重新安装的EntityFramework:

PM> Install-Package EntityFramework -Pre

有!它是固定的。虽然我仍然不知道是什么导致了这个问题。

+1

'PM>安装,包装的EntityFramework - 预-Version 5.0.0' 特定版本 – nicemd

+0

一些评论:您必须在“系统管理员”模式 –

+0

这也为我工作运行VS,谢谢! –

1

卸载Entity Framework不适用于我。

原来,这不是Visual StudioEntity Framemwork casuing的问题,但它是我跑PowerShell 2(上Windows 7)的事实。

Entity FrameworkVisual Studio要求PowerShell 3

更新并重新启动后,问题消失了。 希望这会帮助一些人。

你可以在这里找到的PowerShell - >https://www.microsoft.com/en-us/download/details.aspx?id=40855

0

在我的情况没有上述解决方案的工作,所以我有一个快速浏览一下在packages.config文件,并让我吃惊的发现了两个条目实体框架

<package id="EntityFramework" version="6.1.1" targetFramework="net45" /> 
<package id="EntityFramework" version="6.1.3" targetFramework="net45" /> 

请注意,它们是不同的版本,不知道如何实际发生。无论如何,一旦我删除从packages.config文件即旧的一个结束了仅这一个:

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

然后我可以启用的迁移没有问题。

相关问题