2013-01-19 117 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" /> 

然後我可以啓用的遷移沒有問題。

相關問題