在 azure webjob 中引用另一个项目时出现黄色警告
Yellow warning when referencing another project in an azure webjob
我在使用 EF Code First 开发的 Azure WebApps 上有一个 WebAPI 运行。
现在我需要 WebJobs 来执行一些调度任务,这些任务应该引用相同的数据库和模型。
我尝试添加 WebAPI 项目的引用,但这将 DLL 标记为黄色感叹号。
我不知道该如何继续。你能指导我一下吗?
我假设您的 EF DbContext class 和实体驻留在您的 Web API 项目中。这种整体方法在集成场景中带来了许多问题,例如您展示的场景。
我的建议是模块化您的解决方案并将所有与数据访问相关的 classes(DbContext、实体)移动到另一个项目中,该项目将被您的 Web API 和 WebJobs 项目引用。
这是提高代码可维护性和执行基本软件工程原则(如关注点分离)的常用方法,通过将应用程序划分为不同的功能层(a.k.a。多层架构).
如果您有兴趣,可以在这里阅读更多相关信息:https://msdn.microsoft.com/en-us/library/ee658109.aspx?f=255&MSPPError=-2147217396
正如 Frederico 建议的那样,您应该将 Web API 项目拆分为多个项目。
如果将 数据访问层(EF 上下文 + 查询)隔离到一个单独的程序集中,那么您可以更轻松地将数据库访问共享到多个项目中。此外,您不必将对 Web 特定 dll 的引用(例如 System.Web.Mvc
或 System.Web.Razor
)添加到您的 Web 作业项目中。
无论如何,你会收到一些黄色警告,因为你的 Web API 和你的 Azure Web 作业不针对相同的 .Net 框架。
右键单击您的项目,然后单击 select 属性。您应该可以调整 .Net Target 框架。
为了能够将项目 A 引用到项目 B,项目 A 的目标 .Net 框架的版本应该低于或等于项目 B 的目标 .Net 框架
我在使用 EF Code First 开发的 Azure WebApps 上有一个 WebAPI 运行。
现在我需要 WebJobs 来执行一些调度任务,这些任务应该引用相同的数据库和模型。
我尝试添加 WebAPI 项目的引用,但这将 DLL 标记为黄色感叹号。
我不知道该如何继续。你能指导我一下吗?
我假设您的 EF DbContext class 和实体驻留在您的 Web API 项目中。这种整体方法在集成场景中带来了许多问题,例如您展示的场景。
我的建议是模块化您的解决方案并将所有与数据访问相关的 classes(DbContext、实体)移动到另一个项目中,该项目将被您的 Web API 和 WebJobs 项目引用。
这是提高代码可维护性和执行基本软件工程原则(如关注点分离)的常用方法,通过将应用程序划分为不同的功能层(a.k.a。多层架构).
如果您有兴趣,可以在这里阅读更多相关信息:https://msdn.microsoft.com/en-us/library/ee658109.aspx?f=255&MSPPError=-2147217396
正如 Frederico 建议的那样,您应该将 Web API 项目拆分为多个项目。
如果将 数据访问层(EF 上下文 + 查询)隔离到一个单独的程序集中,那么您可以更轻松地将数据库访问共享到多个项目中。此外,您不必将对 Web 特定 dll 的引用(例如 System.Web.Mvc
或 System.Web.Razor
)添加到您的 Web 作业项目中。
无论如何,你会收到一些黄色警告,因为你的 Web API 和你的 Azure Web 作业不针对相同的 .Net 框架。
右键单击您的项目,然后单击 select 属性。您应该可以调整 .Net Target 框架。
为了能够将项目 A 引用到项目 B,项目 A 的目标 .Net 框架的版本应该低于或等于项目 B 的目标 .Net 框架