实体框架导入模块:指定的模块' ... EntityFramework.psd1'没装

时间:2015-04-05 13:16:59

标签: c# .net entity-framework visual-studio visual-studio-2013

最近我决定将Entity Framework用于个人项目。 从我的Visual Studio 2013社区版和使用NuGet我安装了最新版本的框架(nuget版本2.8.60318.734和实体框架6.1.3)

一切似乎都工作正常我能够执行简单的CRUD操作,直到我需要更新我的模型。 在它之后,当然我收到了错误消息:

“Additional information: The model backing the 'MyContext' context has changed since 
the database was created. Consider using Code First Migrations to update the database 
(http://go.microsoft.com/fwlink/?LinkId=238269).”

似乎有适当的错误消息,我只需要启用 - 迁移。 切换到软件包管理器控制台,并在明亮的红色背景中显示一条消息

PM> Import-Module : The specified module 'D:\[MyProjects]\[ProfOfConcept]\EntityFrameworkInvalidFilepath\packages\EntityFramework.6.1.3\tools\EntityFramework.psd1' was not loaded because
 no valid module file was found in any module directory.
At D:\[MyProjects]\[ProfOfConcept]\EntityFrameworkInvalidFilepath\packages\EntityFramework.6.1.3\tools\init.ps1:8 char:14
+ Import-Module <<<<  (Join-Path $toolsPath EntityFramework.psd1)
    + CategoryInfo          : ResourceUnavailable: (D:\[MyProjects]...yFramework.psd1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

嗯,有些东西是错的,我想有些需要部分框架没有正确安装,但让我们检查文件。该文件存在,内容似乎没问题。

好吧让我们尝试重新安装它,以防万一第一次出现问题。使用NuGet我尝试卸载并重新安装。

再次检查包管理器控制台,同样是一个可怕的错误!

嗯,让我们尝试从软件包管理器控制台进行卸载/重新安装。同样的错误!

在花费更多时间尝试谷歌类似的问题后,我遇到了一个描述类似问题的人Entity Framework with NuGet - Import-Module error in init.ps1试过......没有运气。

那真正发生了什么?在Eureka的那一刻,我想......坚持下去,我的项目路径是什么?

D:\[MyProjects]\[ProofOfConcept]\….

可能吗?方括号可能是原因吗?

创建项目到一个简单路径的副本(d:\ tmp \ myProject)启动Visual Studio,进入Package Management Console,....没错!

Enable-Migrations
PM> Enable-Migrations
Checking if the context targets an existing database...
Detected database created with a database initializer. Scaffolded migration '201504051040353_InitialCreate' corresponding to existing database. To use an automatic migration instead, delete the Migrations folder and re-run Enable-Migrations specifying the -EnableAutomaticMigrations parameter.
Code First Migrations enabled for project EntityFrameworkInvalidFilepath.

就是这样!方括号是罪魁祸首

因此,如果您使用实体框架请不要在路径中使用[] ,那么底线是这样的。

1 个答案:

答案 0 :(得分:2)

我最近遇到了与NuGet无法正确安装EF 6.1.3相同的问题,因为没有导入EntityFramework.psd1文件。通过Visual Studio卸载和重新安装EF没有帮助。

对我有用的是退出VS,导航到'[Project Root Directory] ​​\ packages'并删除EntityFramework6.1.3目录。当您重新启动VS并转到程序包管理器控制台时,它会通知您有缺少的模块并询问您是否要导入它们。单击“重新加载”时,EF 6.1.3已正确安装在“packages”目录下。

就我而言,我使用的是2015RC,a lot of issues with EF migrations