c# – .NET核心项目依赖“流血”

.NET Core中的引用封装似乎已经改变,允许一个项目中的引用“流血”到另一个项目中.

在.NET的早期版本中,项目“X”引用的程序集未公开给引用项目“X”的解决方案中的其他项目.

因此,例如,如果您有一个引用实体框架的域项目,则将该域项目的引用添加解决方案中的另一个项目将不会授予其他项目访问任何实体框架类的权限.

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

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

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

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

这似乎非常不受欢迎;我对单元测试中的引用流失并不太在意,但在我的解决方案中使用其他项目(例如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

右键单击类库 – >依赖关系 – > Nuget – >打包,并将PrivateAssets设置为单词compile …我似乎能够在调用.Net Core项目中使用(并隐藏依赖项).

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...