【问题标题】:Temporary disable dependency validation in Visual Studio 2017在 Visual Studio 2017 中临时禁用依赖项验证
【发布时间】:2018-03-06 01:03:36
【问题描述】:

当我在解决方案中破坏不需要的依赖项时,我需要暂时禁用验证,因为由于某种原因,这对我来说绝对是个谜,当依赖项验证发现没有为特定项目声明的依赖项时,它会停止构建依赖项。我希望在构建整个解决方案之后进行验证,但事实并非如此。

我尝试过的选项:

  1. 在我的主(唯一实际)层上设置Build Action 属性 依赖项目中的图表到None
  2. 在配置管理器的构建中排除依赖项项目
  3. 从解决方案中排除依赖项项目(如果编译成功,稍后将其包含回来)

这些都不起作用,这让我很生气。我该如何解决?

【问题讨论】:

    标签: .net visual-studio dependencies visual-studio-2017


    【解决方案1】:

    您可以通过转到Tools -> Options -> Dependency Validation来禁用它,在那里您可以通过找到所需的语言将其设置为False。


    如果您想启用它,请转到Tools -> Options -> Text Editor -> C# -> Advance -> Enable full solution analysis。

    【讨论】:

    • 我想这是不同的东西。它已经设置为false,我仍然看到很多“属性'X'不应该直接或间接引用'Foo',因为'Bar'层不依赖'Baz'层” 错误。
    • 您能否尝试在第二个选项中取消对full solution analysis 的破解。
    • 没勾选,我没打开过。
    • 这是一个例外情况,我会向开发者社区报告:(
    • 谢谢你,@Asif.Ali!你知道是否有办法告诉 Visual Studio 将 DVxxxx 错误报告为警告。这将部分帮助我解决这个问题。
    【解决方案2】:

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

    我希望在构建整个解决方案后进行验证 但事实并非如此。

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

    改用 Roslyn 分析器意味着每个项目在构建时都会得到验证。这也意味着如果一个项目没有被编译(例如,因为 MSBuild 发现没有文件被更改),那么分析器将不会被调用,因此不会报告任何错误。

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

    在this blog post中有更多关于VS2015和VS2017之间变化的细节。

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多