项目参考使我能够使用其他从属项目中的代码,而无需明确的项目参考

时间:2018-12-31 19:46:04

标签: asp.net-core .net-core visual-studio-2017

这是我面临的问题,我认为只有在使用.net Core和Visual Studio 2017时才会发生

我的解决方案中有3个项目。

  • ProjectA-Web项目
  • ProjectB-类库项目
  • ProjectC-测试项目

ProjectA有一个对ProjectB的项目引用, ProjectC有一个对ProjectA的项目引用

由于ProjectC没有对ProjectB的明确项目引用,所以我不应该在ProjectC中引用ProjectB的代码。如果我尝试在ProjectC中使用ProjectB中的任何代码,那我会得到编译错误。但这不是事实了。我的解决方案编译成功,没有任何错误。我在这里想念什么吗?

1 个答案:

答案 0 :(得分:2)

如果引用的项目引用了另一个项目,则会自动添加这些引用。如果您的项目A引用了项目B,则在项目C中引用项目A时,将自动添加对项目B的引用。

如果您想禁用传递引用行为,可以在ProjectA.csproj(WebProject)中将PrivateAssets =“ All”添加到您的引用中

<ItemGroup>
    <ProjectReference Include="..\ClassLibrary1\ClassLibraryProject.csproj" PrivateAssets="All"/>
</ItemGroup>

enter image description here