- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经安装了 StyleCop CheckIn 策略(来自 here)并且效果很好。但是,我已经编写了一些自定义规则,我希望将其作为 checkin 策略的一部分执行(Visual Studio 2008、Team Explorer 2008、TFS 2005)。
当我右键单击项目并单击“StyleCop 设置”时,自定义规则在设置文件中显示正常。但是,当我添加我的 CheckIn 策略并尝试导入相同的 settings.StyleCop 文件时,我的自定义规则不会出现在编辑器窗口中。
另一个可能相关的问题是,当我从 Visual Studio 打开编辑器时,我的自定义规则出现在 StyleCop 设置编辑器中。但是,如果我通过双击 Windows 资源管理器中的设置文件打开编辑器,我的规则将无处可见。
现在谁能告诉我是否真的可以将自定义规则作为 checkin 策略的一部分,如果可以的话,如何在添加 checkin 策略时让它们出现在 StyleCop 设置编辑器窗口中。
谢谢,
尼尔
最佳答案
是的,绝对有可能!
要让它全部正常工作可能有点棘手,但了解一些关键的事情应该会有很大帮助。
第一步是让 StyleCop 使用自定义规则在开发人员机器上正常工作:
1) StyleCop必须安装在开发机器上
2) 自定义规则必须安装在与 StyleCop 相同的目录中(或者,可选地,安装到子目录中)。如果它们安装在其他任何地方,那么它们不太可能正常工作,即使它们能正常工作。
3) 该安装目录中的 Settings.StyleCop 文件、包含正在分析的项目的目录以及该目录之上的所有目录必须合并才能启用您的自定义规则。最好通过双击项目目录中的 Settings.StyleCop 文件并确保在编辑器中启用您的规则来验证这一点。
下一点更棘手,让 StyleCop 在构建机器上正常工作。
这三点几乎相同,但在将运行 StyleCop 以获取 checkin 策略的构建机器上。因此,构建机器必须安装 StyleCop、安装自定义规则和所有正确的 Settings.StyleCop 文件,以便在构建机器上创建与开发机器上相同的总体 StyleCop 规则设置。这是最容易打破的,只是没有意识到构建机器必须在其上安装 StyleCop。即使安装了 StyleCop,StyleCop 也可以通过 VS 集成(您一定很熟悉)或 StyleCop via MSBuild integration 运行。 (这种情况不太常见,通常也不太好理解)。构建机器通常设置为使用 MSBuild 集成,这意味着自定义规则需要安装在 %Program Files%\MSBuild\Microsoft\StyleCop\v4.3 目录中,而不是您安装的 %Program Files%\StyleCop 目录中可能在期待。此外,如果您修改了 %Program Files%\StyleCop 目录中的基本 Settings.StyleCop 文件,则必须将该文件复制到 %Program Files%\MSBuild\Microsoft\StyleCop\v4.3 目录中为了在构建机器上获得相同的效果。请注意,使用来自开发人员机器的经过验证的工作 Settings.StyleCop 文件进行复制/粘贴是确保构建机器具有正确设置的最佳方法。 StyleCop 对这些 XML 文件非常挑剔,最轻微的拼写错误都可能导致奇怪的行为,需要数天时间才能进行调试。不要手动编辑。你被警告了。 8)
所以肯定有很多方法不能完全正确,并且在你做到这一点之前,你会看到你所描述的陌生感。幸运的是,通过牢记我列出的三点以及“构建机器上的 StyleCop”和“开发机器上的 StyleCop”之间的区别,最终应该可以让它顺利运行。好吧,它至少对我一直有效。
祝你好运!
关于visual-studio-2008 - 为 TFS 上的 checkin 策略强制执行自定义 stylecop 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327324/
我有以下内容,我收集到应该在特定代码行上禁用 stylecop 规则。 [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules",
我已将以下导入语句添加到 csproj 文件中: 这项工作很好,但是我只希望样式 cop 分析在 Debug 版本上运行,而不是在 Release 版本上运行。我的 Google Fu 今天让我失望
StyleCop 规则 SA1642 坚持要求我的构造函数文档头必须以“初始化...的新实例”开头。 虽然我同意规则本身,但我就是无法让自己接受 StyleCop 强制执行我认为丑陋的拼写。它是用“s
是否有可能让 StyleCop 说这是使用花括号的正确方法? if (request.Query == string.Empty) { return SearchResponse.Empty;
我收到如下屏幕截图所示的警告,我不明白为什么会这样对待。我经常需要“区域化”我的代码。 你觉得怎么样? 最佳答案 虽然这个 StyleCop 规则确实只是一个建议,但我不会禁用它。这些#region
有人根据 IDesign 编码标准定制 StyleCop 规则吗? 最佳答案 你可能想尝试Code Style Enforcer 。它管理基于 iDesign 标准的规则。 我认为您可以为开发时完成的
我在 StyleCop 规则 SA1503 (CurlyBracketsMustNotBeOmitted) 上遇到了困难。 在我的代码中,我经常有一个模式: public void SomeFunct
我想使用 TeamCity 7.1 中的 StyleCop 构建运行器插件来测试我的项目中的 StyleCop 规则。每个项目都有自己的 StyleCop 设置文件,从 Visual Studio 进
我想将 StyleCop SuppressMessageAttribute 添加到某些代码中,但我不想要求安装 StyleCop。 我的项目是否需要引用 StyleCop 二进制文件?如果需要,引用哪
基于几篇好文章,我已经能够成功地创建一些自定义 StyleCop 规则。作为引用,这里列出了一些我发现对这个主题非常有用的文章: How to Implement a Custom StyleCop
我正在寻找设置文件以手动更改设置 - 但找不到。 我按照以下说明安装:http://stylecop.codeplex.com/wikipage?title=Setting%20Up%20StyleC
我正在我的 VS2015 中将 stylecop classic 升级到最新版本 (StyleCop.Analyzers 1.0.0),根据 GitHub 的介绍,我不能再使用 Settings.St
我被要求以如下方式将 StyleCop 集成到我们的 CI 构建过程中: 我们的单个项目文件 (大)解决方案不受影响 我不必使用任何 3rd 方 工具 第一个要求(我还没有完全理解这一点)是因为我们不
是否可以在一个项目中仅对1个文件运行StyleCop? 最佳答案 是的,通过从.cs文件的上下文菜单中而不是从“工具”菜单或项目的上下文菜单中选择“运行StyleCop”。 http://cleart
是否有任何方法可以配置 StyleCop 以忽略属性文档?我只想保留方法、构造函数和类的规则。我知道我们可以通过“包含字段”选项禁用字段。 最佳答案 规则 SA1609 和 SA1610 涵盖属性文档
如何对自定义规则使用抑制? 最佳答案 您可以使用 SuppressMessageAttribute 来抑制违反自定义规则的行为,其方式与对作为 StyleCop 的一部分发布的规则所做的完全相同。例如
我有一个非常简单的问题。是否打算同时运行 StyleCop 和 ReSharper? StyleCop 提供代码分析,但 Re-Sharper 也提供代码分析......它们真的都是必需的吗? 提前致
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我刚刚将 StyleCop 从 4.7.36.0 升级到 4.7.37.0(后者现在包括拼写支持)。 它在我的本地机器上运行良好。 但是,当它在 TeamCity 中运行时(以前在那里工作过),我现在
我在使用 StyleCop 时遇到了问题,这让我很抓狂。我最近在一台新机器上安装了它,每次我去编辑主设置文件(通过 Visual Studio 或 StyleCop 编辑器)时,我都会收到以下错误:
我是一名优秀的程序员,十分优秀!