.Net Core 1.1中的传递引用

在.NET Core 1.1和Visual Studio 2017 RC中开发示例Web应用程序时,我意识到以下内容:

在此处输入图像描述

如你看到的:

  • ClassLibrary3引用了ClassLibrary2,
  • 和ClassLibrary2引用ClassLibrary1

我在ClassLibrary3类的Class3中编写了一个简单的方法,而Intellisense允许我只使用Class1来编写类的名称,我的意思是,没有对ClassLibrary1项目进行显式引用。

我在这里错过了一些观点吗? 我不希望有人只是来看看ClassLibrary2。

谢谢。

可传递的项目到项目引用是Visual Studio 2017和Microsoft.NET.Sdk的新function。 这是故意的行为。

请参阅https://github.com/dotnet/sdk/issues/200 。

如果您对禁用传递引用行为感兴趣,我终于找到了一种方法。

如果您希望项目A引用B和B引用C,但不希望A引用C,则可以将B的ProjectReference中的PrivateAssets="All"添加到C,如下所示:

在B.csproj

    

此设置使C的引用为私有,因此它仅存在于B中。现在引用B的项目将不再引用C.

资料来源: https : //github.com/dotnet/project-system/issues/2313