.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