在ASP.Net Core之前:
使用这个引用结构,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类。
答案 0 :(得分:1)
是的,这现在是.NET Core中的功能。从此SO answer中了解更多信息。 但是,您可以使用ProjectReference上的 PrivateAssets 属性从MVC csproj中隐藏Lib2:
在您的Lib1.csproj中:
reset
这样,当MVC.csproj引用Lib1时,它将看不到任何Lib2类,因为您将其隐藏在Lib1.csproj中。