【问题标题】:Project reference is enabling me to use code from other dependent projects without explicit project reference项目参考使我能够使用来自其他依赖项目的代码,而无需明确的项目参考
【发布时间】:2019-05-28 04:36:52
【问题描述】:

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

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

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

ProjectA 具有对 ProjectB 的项目引用,并且 ProjectC 有对 ProjectA 的项目引用

由于 ProjectC 没有对 ProjectB 的明确项目引用,我应该无法在 ProjectC 中引用 ProjectB 的代码。如果我尝试在 ProjectC 中使用来自 ProjectB 的任何代码,我会遇到编译错误。但现在情况不再如此。我的解决方案编译成功,没有任何错误。我这里有什么遗漏吗?

【问题讨论】:

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


【解决方案1】:

如果您引用的项目包含对另一个项目的引用,这些引用将被自动添加。在您的情况下,当您的项目 A 引用项目 B 时,当您在项目 C 中引用项目 A 时,将自动添加对项目 B 的引用。

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

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

【讨论】:

  • @RSvitukha - 感谢您的回复,我知道 .net 核心项目就是这种情况。但在标准 .net 框架项目的情况下,情况并非如此。有什么方法可以在 .net 核心项目中实现类似的行为。
  • @NarendraChava 添加了更新如何禁用传递引用行为。
  • 太棒了!这回答了我的问题。谢谢 !!这是同一个问题的链接,具有更好的清晰度:) stackoverflow.com/questions/42428571/…
猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 2017-01-19
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
相关资源
最近更新 更多