首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.NET核心项目依赖项“出血”

.NET核心项目依赖项“出血”
EN

Stack Overflow用户
提问于 2018-06-10 07:01:41
回答 1查看 576关注 0票数 9

.NET核心中的引用封装似乎已经发生了变化,允许一个项目中的引用“出血”到另一个项目中。

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

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

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

今晚玩了一个.NET Core2.1应用程序,并创建了一个利用EF Core的域项目。

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

完全让我猝不及防的是,即使我没有将EF核心NuGet包带到单元测试项目中,单元测试项目仍然能够访问EF核心类;我唯一的假设是它能够通过我的域项目访问EF,即:

这似乎非常不可取;我并不太关心单元测试中的引用溢出,但在处理我的解决方案中的其他项目(如ASP.NET Core Web项目)时,我确实非常关心这种引用溢出。

有没有办法隐藏/屏蔽我的项目中的这些包引用,使其不被其他引用它的项目所引用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 08:31:24

这是一件奇怪的事情,我以前从来没有注意到过,

然而,看看这个。

Controlling dependency assets

PrivateAssets这些资产将被使用,但不会流向父项目

和标签

编译库文件夹的内容,并控制项目是否可以针对该文件夹中的程序集进行编译

右键单击Class library -> Dependencies -> Nuget -> Package,并将PrivateAssets设置为单词compile...我似乎能够在一个调用.Net核心项目中使用(但又隐藏了依赖关系)。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50779242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档