ASP.Net Core允许链式项目引用

时间:2016-05-14 12:20:41

标签: asp.net-core-mvc

在ASP.Net Core之前:

  • 我在一个解决方案中创建了一个MVC站点和两个类库。让我们说项目名称是MVC,Lib1和Lib2。
  • 我添加如下引用:MVC引用Lib1,Lib1引用Lib2。

使用这个引用结构,MVC无法访问Lib2项目中的类,这是预期的和我想要的。

ASP.Net Core中的相同项目和参考结构:MVC 可以访问Lib2中的类。查看Visual Studio中解决方案资源管理器中的MVC / References节点,你可以看到MVC / References / DNX 4.5.1 / Lib1 - 到目前为止一直很好(我确实从MVC添加了对Lib1的引用) - 但是我可以扩展Lib1节点,它下面会看到Lib2。最终结果:MVC可以通过引用链访问Lib2类。

我认为这种行为是设计的,但是我怎样才能实现旧的行为呢?我不希望开发人员能够从MVC访问Lib2类。

1 个答案:

答案 0 :(得分:1)

是的,这现在是.NET Core中的功能。从此SO answer中了解更多信息。 但是,您可以使用ProjectReference上的 PrivateAssets 属性从MVC csproj中隐藏Lib2:

在您的Lib1.csproj中:

reset

这样,当MVC.csproj引用Lib1时,它将看不到任何Lib2类,因为您将其隐藏在Lib1.csproj中。