在Visual Studio 2017中临时禁用依赖项验证

3
我需要在解决方案中断不需要的依赖项时临时禁用验证,因为出于某种我完全不明白的原因,当它发现特定项目未声明任何依赖项时,依赖项验证会停止构建相关项目。我希望验证在构建整个解决方案之后进行,但情况并非如此。
我尝试了以下选项:
1. 将依赖项项目中唯一的层图的 "Build Action" 属性设置为 "None" 2. 在 "配置管理器" 中排除依赖项项目的构建 3. 从解决方案中排除依赖项项目(如果编译成功,则稍后将其包含在内)
但以上方法均无效,令我苦恼。请问该如何解决?
2个回答

0

在VS2017中,依赖项验证现在使用Roslyn分析器进行,因此您可以像使用任何其他Roslyn分析器一样打开和关闭规则,并使用规则集控制严重性。

我希望验证发生在构建整个解决方案之后,但事实并非如此。

这是在VS2017之前发生的情况。以前,验证是使用单独的可执行文件执行的,该文件在解决方案中的所有其他项目构建完成后运行。

切换到使用Roslyn分析器意味着每个项目在构建时都会进行验证。这也意味着,如果未编译项目(例如,因为MSBuild看到没有更改文件),则不会调用分析器,因此不会报告错误。

要保证在IDE外构建时看到所有错误,您必须重新构建,即msbuild /t:rebuild。要在IDE中查看所有错误,请打开Roslyn 完整解决方案分析选项。

有关VS2015和VS2017之间更改的详细信息,请参阅此博客文章


0

我猜那是另一回事。它已经被设置为“false”,但我仍然看到很多“属性'X'不应直接或间接地引用'Foo',因为层'Bar'没有对层'Baz'的依赖”的错误信息。 - UserControl
你可以尝试在第二个选项中取消勾选“完整解决方案分析”。 - user1773603
它是未选中的,我从未打开它。 - UserControl
这是一个异常情况,我会向开发者社区报告它 :( - user1773603
谢谢你,@Asif.Ali!你知道有没有办法告诉Visual Studio将DVxxxx错误报告为警告。这会在某种程度上帮助我解决问题。 - UserControl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接