Scaffold-DbContext在.net核心中抛出错误"找不到程序集"

Pan*_*jan 3 .net c# scaffolding entity-framework-core .net-core

我使用.net核心和实体框架核心1.1.0.在包管理器控制台中尝试以下命令时

Scaffold-DbContext "Server=MyServer\\MyInstance;Database=MyDB;user=MyUsername;password=MyDbPassword;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t Table1,Table2
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

找不到程序集'D:\ Work\Projects\src\MyProject\src\MyProject.Api.\ bin\Debug \net461\win7-x64\MyProject.Data.exe'.

MyProject.Data是一个网络核心库.MyProject.Api是一个.net完整框架核心api,它引用了MyProject.Data.

MyProject.Data的project.json文件

{
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.EntityFrameworkCore.Design": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "net461": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

对我有什么建议吗?

For*_*ist 7

如果目标平台是 x86,似乎也会出现此问题。

切换到 AnyCPU 即可解决问题。


sat*_*esh 6

不确定这是否是一个错误,但scaffold-dbcontext命令在启动项目中查找程序集.

这个问题有两种解决方法

  1. 右键单击要运行此命令的项目(在您的情况下,它是MyProject.Data)并选择Set as startup project.
  2. 您可以在scaffold-DBContext命令中添加一个开关,以便在运行命令时将特定项目设置为启动项目.这是您需要在命令结束时添加的内容...

    -StartupProject MyProject.Data

  • 为我工作 -StartupProject MyProject.Data,非常感谢 (3认同)