Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么是Microsoft.DependencyValidation.Analyzer?为什么Visual Studio 2017强制安装该软件包?_C#_Asp.net_Visual Studio_Visual Studio 2017 - Fatal编程技术网

C# 什么是Microsoft.DependencyValidation.Analyzer?为什么Visual Studio 2017强制安装该软件包?

C# 什么是Microsoft.DependencyValidation.Analyzer?为什么Visual Studio 2017强制安装该软件包?,c#,asp.net,visual-studio,visual-studio-2017,C#,Asp.net,Visual Studio,Visual Studio 2017,我刚刚安装了Visual Studio 2017(在新的Windows 10虚拟机上),为2015年的升级路径表单做准备。我们现有的项目使用.NET4.5.2。(ASP.NET经典版/非核心版) VS 2017似乎坚持将Microsoft.DependencyValidation.Analyzer包依赖项添加到我当前解决方案中的每个项目中 这种依赖性是什么? 为什么是被迫进入项目?撤消签出并没有帮助,它只是直接返回并再次添加它。 如果我签入带有更改的package.config文件,假设团队成员

我刚刚安装了Visual Studio 2017(在新的Windows 10虚拟机上),为2015年的升级路径表单做准备。我们现有的项目使用.NET4.5.2。(ASP.NET经典版/非核心版)

VS 2017似乎坚持将Microsoft.DependencyValidation.Analyzer包依赖项添加到我当前解决方案中的每个项目中

这种依赖性是什么? 为什么是被迫进入项目?撤消签出并没有帮助,它只是直接返回并再次添加它。
如果我签入带有更改的package.config文件,假设团队成员没有进行任何更新,它会破坏VS2015吗?

如果您有一个数据访问项目,该项目被认为完全不知道数据持久性框架,如实体框架、ADO.NET或其他技术,如何确保甚至没有编写一行依赖于这些依赖关系的代码?您可以编写接口,这样就完全不可知了,但是如何阻止开发人员添加对ADO.NET的引用呢

这就是Microsoft.DependencyValidation.Analyzer将为您提供的功能。构建时,它将分析所有项目,并确保它不依赖于您指定的程序集

这确保了您的体系结构不仅是一个漂亮的图表,而且您的开发人员实际上也遵循它。这不仅限于ADO.NET和其他主要程序集,甚至包括您自己构建的程序集

您可以告诉VisualStudio在体系结构损坏时发出警告或编译失败

这并不是什么新鲜事,而且已经出现了,但我想VS2017会让执行这些规则变得更容易。这是否是一个好主意,取决于项目。如果我正在编写一个快速的一次性应用程序或POC,那么我会将其关闭。但是对于一个需要几个月的开发和几个月到几年的维护的项目来说,它是非常有用的。然而,有些人可能不同意我的观点。重要的是,如果我们需要它,它可以作为一种工具


更多信息

事实证明,VisualStudio的黑暗用户界面模式已经跃跃欲试

以下是Microsoft.DependencyValidation.Analyzer如何神奇地安装的高度戏剧化版本。。。好吧,几乎不可思议。(上面的问题也有答案)

在一个新的虚拟机上,您刚刚从源代码管理下载了解决方案并第一次启动了它,您希望Nuget警告您需要重新加载依赖项。因此,你可以快速阅读VS 2017上出现的信息,嘿,你已经使用它20年了,你希望它们不断改进,对吗,它们支持你?从您的眼角可以看到solution manager顶部以黄色突出显示的“Dependency”和“Update”两个词

你是做什么的?点击更新(以为你的Nuget软件包被下载了…笨蛋!!!)轰

30分钟后,您的63个项目都已签出,它们似乎有相同的package.config更改

你疯了。尝试撤消签出。。。对不起,伙计,你回来了。。。它还原代码,重新加载项目并再次添加依赖项)

你首先不知道发生了什么。你愤怒,你咆哮你重做同样的事情一个小时,最后你把你的笔记本电脑扔出窗外,深夜痛哭。< /P> 过了一会儿,你慢慢地站起来,把笔记本电脑拿回来,穿过破裂的屏幕,你决定关闭VisualStudio,重新打开它,然后尝试代码的另一个分支

这一次,你会更仔细地阅读黄色小标签,并产生怀疑,所以你不会点击更新按钮。你点击链接进入一个普通页面,在那里你必须使用Bing err Ctrl+F来查找一个简单的普通博客文章的主题。不过,一切都很好。然后事情发生了。多亏了从破碎的窗户里吹来的冷风,你颤抖着,但欣喜若狂地发现你已经“修好”了它,你把所有的东西都抛到空中,然后结束了这个夜晚

第二天早上,您再次启动VisualStudio。您不加载任何解决方案。相反,您可以打开源代码管理资源管理器,撤消签出所有内容,然后万岁,所有内容都将恢复,不再对解决方案进行烦人的更改

快乐和哭泣(成功的喜悦或破裂屏幕的悲伤,以及从笔记本电脑中溢出的肠子)你打开你的解决方案,砰的一声!那个奇怪的黄色警告又回来了。。。你站在那里不知所措。。。你在尖叫。。。在你的脑海里。。。为什么?我有一个由3人组成的开发团队,我可以直接走到某个人面前,告诉他们你不应该添加那个引用,因为它打破了一个深奥的模式。但是没有。。。我已经为MSDN许可证支付了数百万英镑,因此我的“企业”软件将坚持要做的事情

  • 为团队中的其他人打破一切(VS2017依赖巫毒与VS2015版本不同)
  • 让你的虚拟机慢下来爬行(它确实耗尽了内存,崩溃了两次,只是试图构建)
  • 给我的错误信息比我关心的要多。实际上我不再看错误面板了,因为我不知道Visual Studio是认真对待一个错误,还是仅仅因为应用程序似乎正常工作而拉扯我的链条(耶,剃刀语法检查!!!)
在这一点上,你只是在哭泣。。。你不知道为什么

咆哮结束

如果有人从VisualStudio读到这里,这就是我想要从VisualStudio得到的(20年过去了)

  • 快速加载(是的,我的解决方案中有63个项目,我希望它们快速加载,不,我不会将它们拆分为不同的解决方案)
  • 快速编译(我用的是C#和Typescript,但你懂的)我有无数GB的内存,用它吧
  • 一致的智能感知(自动完成,可能借鉴V