代码之家  ›  专栏  ›  技术社区  ›  Dan Drews

为什么我的项目引用会传递到其他引用

  •  0
  • Dan Drews  · 技术社区  · 6 年前

    我们已经开始迁移到.NET标准的新项目类型,并使用了Hanselman链接到的工具 this blog post .

    我们注意到的一件奇怪的事情是,一个项目现在接收到对其引用所拥有的项目的引用。我已经设置了一个样本,并确认它不仅仅是我们的主要应用程序。对于主应用程序,假设我们有

    控制台应用:测试一些东西

    Net标准库:Library1

    Net标准库:Library2

    在这种情况下,我们有以下参考资料:

    测试某些内容->库1->库2

    不知为什么, TestingSomeStuff ,它不直接引用 Library2 能够访问 图书馆2 ,这似乎不正确。我在.NET框架应用程序中设置了相同的情况,并且 测试一些东西 无法访问 图书馆2 .

    为了构建一个适当的分层应用程序,我们需要能够 测试一些东西 从访问 图书馆2 作为一个通行证,我找不到任何关于如何接近它的信息。

    我试过设置 IncludeAssets , ExcludeAssets 以及其他类似的选择,但都没有奏效。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Daniel A. White    6 年前

    这对于.NET Core的新MSBuild项目是新的。如果你想隐藏什么,把它标记为 internal 在图书馆2使用 InternalsVisibleTo 属性并授予Library1访问权限。

        2
  •  0
  •   Dan Drews    6 年前

    好吧,我知道这里发生了什么,这完全是我的错,但我要把这个问题留给社区。我在“排除资产”的说法中错了。

    问题是设置比我的示例项目更复杂,实际上我们拥有的是:

    测试一些东西

    -图书馆1

    --图书馆3

    -图书馆2

    --图书馆3

    我只是在Library1上测试ExcludeAssets=All,所以它仍然通过对Library2的引用引用它。