无法加载程序集...确保它被启动项目引用

Posted

技术标签:

【中文标题】无法加载程序集...确保它被启动项目引用【英文标题】:Could not load assembly... Ensure it is referenced by the startup project 【发布时间】:2021-01-25 09:52:47 【问题描述】:

有一个“Data”项目包含app的上下文,根项目“TheFarmersMarketApp”参考Data项目。主要项目是在 WPF 上编写的。

Add-Migration "Initial Migration" -Project Data -StartUpProject TheFarmersMarketApp

返回

Could not load assembly 'Data'. Ensure it is referenced by the startup project 'TheFarmersMarketApp'.

此外,我更改了“数据”和“模型”(呃...)项目上的“默认项目”字段,并重新启动了我的笔记本电脑以确保所有必要的服务都已打开。

有一些Visual Studio的截图,如果视觉上更容易理解问题。

PackageManagerConsole + SolutionExplorer + TheFarmersMarket.csproj windows

Output after rebuilding + ErrorList windows.

【问题讨论】:

重建项目数据,看看有没有错误。 【参考方案1】:
Could not load assembly 'Data'. Ensure it is referenced by the startup project 'TheFarmersMarketApp'.

请确保将 Data 程序集添加到项目 TheFarmersMarketApp 中。请确保所有需要引用这个项目的项目都直接引用它,只要它不会导致循环依赖或其他问题。

【讨论】:

【参考方案2】:

首先,您需要在 Nuget 包管理器控制台中选择一个合适的项目。正如您在第一个屏幕上看到的,默认项目是 TheFarmersMarketApp,但它不正确。您需要选择 Data 项目,因为您的迁移必须位于您的上下文类附近。

那么你应该使用你的命令的简短版本:

Add-Migration "Initial Migration" 

【讨论】:

【参考方案3】:

我遇到了这样的问题。经过几个小时的修复,我发现问题出在 Package Manager ConsoleVisual Studio CLI

我使用了 Windows 命令提示符dotnet 工具

> dotnet ef migrations add migration_name

执行命令后成功,没有任何错误提示:

> Done. To undo this action, use 'ef migrations remove

【讨论】:

以上是关于无法加载程序集...确保它被启动项目引用的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项

无法加载文件或程序集'Ninject 版本 4.0.0.0

未能加载文件或程序集怎么解决

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

Windows 通用应用程序:无法加载文件或程序集 - 找到的程序集的清单定义与程序集引用不匹配

无法加载文件或程序集“Microsoft.SqlServer.DTSRuntimeWrap”