c# - Visual Studio 2019 .netcore 加载项目的整个依赖树
问题描述
让我们采用以下经典架构:(vs 2019 net core 3.1)
- 一个带有接口的项目 (A)
- 一个项目 (B) 与实施
- 一个使用接口和实现进行映射的项目 (C)。
- 一个引用 C 和 A 的网站或 consoleApp (D)
在 D 的代码中,即使我不引用该项目,我也可以使用 B 的具体类而不会出现构建问题。C的引用自动带来B。
我找到了这个线程:在 Visual Studio 中,为什么所有文件都自动成为我的 C# 项目的一部分?显然这是一个新功能,它会让事情变得更容易。但是没有一个解决方案对我有用。
我怎样才能消除这种奇怪的行为?如果我在 D 中使用实现,如果想被迫使用接口并出现构建错误。
当我右键单击我的项目时,有两件事:“加载项目的直接依赖项”和“加载项目的整个依赖项树”这似乎是解决方案,但它只在版本中打开我的 .csproj...
谢谢 !
解决方案
您需要编辑 C 项目的 csproj 并更新:
<PackageReference Include="B" Version="X.X.X" />
经过
<PackageReference Include="B" Version="X.X.X">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
推荐阅读
- ios - iOS 原生用户界面和 Qt 核心代码
- twitter-bootstrap - 如何使用 Vue.js 在第一次单击而不是第二次单击时打开 Bootstrap 4 模式
- networking - 如何在 scapy 中创建自定义顶层第 2 层标头?
- asp.net-core - 从 ASP.NET Core 2.2 中的控制器调用 SignalR 组
- python - 用列表倒退
- algorithm - “合并 2 个包”问题的大 O 时间复杂度
- python - 计算特定列中 0 的数量
- php - 进行 laravel 查询以搜索两次之间的数据
- pygame - 如何修复,Pygame 不会进入下一个文本
- python-3.x - windows7 64位环境下的pypy3.6-v7.1.1-win32