add-migration导致"无法加载程序集"错误

PBG*_*PBG 33 entity-framework ef-migrations

这就是我所看到的

PM> Add-Migration AddedSubdivion -StartUpProjectName Data -Verbose
Using StartUp project 'Data'.
Using NuGet project 'Registry'.
Could not load assembly 'Registry'. (If you are using Code First Migrations inside 
Visual Studio this can happen if the startUp project for your solution does not 
reference the project that contains your migrations. You can either change the startUp 
project for your solution or use the -StartUpProjectName parameter.)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它试图引用该Registry项目.Registry取决于Data,而不是相反.我对此很新,所以我很感激任何帮助.

PBG*_*PBG 120

这很令人尴尬,但也许这将有助于将来的一位Google员工.

在"程序包管理器控制台"的顶部,我的默认项目设置为错误的项目.将其更改为我的模型项目修复它.

在此输入图像描述

  • 同样在这里。尽管我最初认为从解决方案资源管理器更改启动项目就足够了,但这个答案确实起到了作用。谢谢! (3认同)
  • 嗯......我得到了这个错误......我用谷歌搜索......然后我到了......谢谢! (3认同)
  • 谢谢!!!这给我造成了另一个问题。我正在进行可怕的更新迁移。这样就解决了。 (2认同)
  • 谢谢.真的这很尴尬-_- (2认同)
  • 仍然对EF Core迁移有效! (2认同)
  • 我想这不应该说“默认项目”,而应该只说“项目”。 (2认同)
  • 来自我们的主宰和救世主 Google,事实证明,仅从包管理器控制台设置项目是不够的,它也应该作为您的启动项目!我不明白这有什么意义。 (2认同)

Dav*_*eau 12

这也可能是由 .NET Core 和您的项目之间的平台不匹配引起的。你得到错误:

无法加载程序集“DataProject”。确保它被启动项目“ProgramProject”引用。

即使您指定了正确的项目和启动项目名称。(通过使用 VS 和包管理器控制台中的下拉框,或使用-project-startupproject参数。)

您可以通过切换到 Any CPU 而不是 x86 来修复它,反之亦然(或者可能切换到 x64 等),但是每次需要对模型/数据库进行更改时,您都必须来回切换。

根据此答案,您可以通过更改系统环境变量中 .NET Core 路径条目的顺序来解决此问题。如果您收到此错误,则意味着第一个 .NET Core 路径适用于 x64,但您正在尝试对 x86 项目进行更改,或者可能是其他方式。将您的目标移动到您未定位的目标上方,保存,然后重新启动 Visual Studio。

您可以通过命令查看当前正在使用哪一个dotnet --info

(请注意,这假设您已经安装了两者。您也可能只安装了其中一个,在这种情况下,您需要安装另一个,然后检查 PATH 条目的顺序;如果您安装了第二个是您想要的,那么您肯定需要更改 PATH 顺序以使其成为 VS 使用的顺序,因为它的条目应该在底部。)


Chr*_*ani 8

如果您Package Manager Console停靠在一个狭窄的窗口中,问题可能不会那么明显……隐藏默认项目。 在此处输入图片说明

它需要一个广泛的对接。 在此处输入图片说明