Asp.net core mvc Net核心允许链接项目引用
在ASP.Net Core之前:Asp.net core mvc Net核心允许链接项目引用,asp.net-core-mvc,Asp.net Core Mvc,在ASP.Net Core之前: 我在一个解决方案中创建了一个MVC站点和两个类库。假设项目名称为MVC、Lib1和Lib2 我添加了如下引用:MVC引用Lib1,Lib1引用Lib2 使用这种引用结构,MVC无法访问Lib2项目中的类,这是我所期望的 ASP.Net核心中的相同项目和引用结构:MVCcan访问Lib2中的类。在VisualStudio的解决方案资源管理器中查看MVC/References节点,您可以看到MVC/References/DNX 4.5.1/Lib1—到目前为止还
- 我在一个解决方案中创建了一个MVC站点和两个类库。假设项目名称为MVC、Lib1和Lib2
- 我添加了如下引用:MVC引用Lib1,Lib1引用Lib2
<ItemGroup>
<ProjectReference Include="..\Lib2.csproj" PrivateAssets="All" />
</ItemGroup>
这样,当MVC.csproj引用Lib1时,它将看不到任何Lib2类,因为您将其隐藏在Lib1.csproj中。您真的试图在MVC项目中从Lib2访问类吗?它编译了吗?@Shyju是的,它编译了,并且在IIS Express上成功运行。我注意到的另一件有趣的事情是:如果您进入菜单中的Project->Project Dependencies,您将看到MVC同时依赖于Lib1和Lib2。使用相同的引用结构,ASP.Net之前的核心解决方案将显示MVC仅依赖于Lib1。我有:MVC->AppServices->DataAccess这实际上是真的,这是一个令人沮丧的问题。在编译时,这是不允许的。我不确定这个决定是什么。代码编写过程中的关注点分离可能会被违反,因为泄漏的引用使您能够直接调用数据访问类。@aiapatag我在问这个问题时使用了Lib1和Lib2,但我问这个问题的原因正是您的场景-我的Lib1是应用服务,我的Lib2是数据访问。显然,传递性项目引用现在是一项新功能:(