gpt4 book ai didi

c# - .NET Core 项目依赖 "bleed"

转载 作者:太空狗 更新时间:2023-10-29 20:26:31 27 4
gpt4 key购买 nike

.NET Core 中的引用封装似乎发生了变化,允许一个项目中的引用“渗入”另一个项目。

在 .NET 的早期版本中,项目“X”引用的程序集不会暴露给引用项目“X”的解决方案中的其他项目。

例如,如果您有一个引用了 Entity FrameworkDomain 项目,将对该 Domain 项目的引用添加到另一个项目中您的解决方案不会授予其他项目访问任何 Entity Framework 类的权限。

这是一件好事(至少在我看来)。

今晚正在玩 .NET Core 2.1 应用程序,并创建了一个域项目它利用了 EF Core。

然后我创建了一个单元测试项目(热切期待利用新的 EF Core InMemory 提供程序),并引用了我的领域项目。

让我完全措手不及的是,即使我没有将 EF Core NuGet 包带入单元测试项目,单元测试项目也能够访问 EF Core 类;我唯一的假设是它能够通过我的域项目访问 EF,即:

Example of the reference bleed

这似乎非常不受欢迎;我不太关心我的单元测试中的引用溢出,但我非常关心在我的解决方案中与其他项目(例如 ASP.NET Core Web 项目)一起工作时的这种引用溢出。

有没有办法在我的 Domain 项目中隐藏/屏蔽引用它的其他项目?

最佳答案

这是一件奇怪的事情,我以前从未注意到,

不过看看这个

Controlling dependency assets

PrivateAssets These assets will be consumed but won't flow to the parent project

和标签

compile Contents of the lib folder and controls whether your project can compile against the assemblies within the folder

右击Class library -> Dependencies -> Nuget -> Package,将PrivateAssets设置为compile... I似乎能够在调用 .Net Core 项目中使用(但隐藏依赖项)。

免责声明,我真的只是出于好奇玩这个设置,并不确定这样做是否有任何副作用

关于c# - .NET Core 项目依赖 "bleed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50779242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com