Tag: stylecop

需要一个C#程序集来松散地引用一个强命名的程序集

所以这就是问题所在。 我正在写一些StyleCop插件组件,供我工作的公司使用。 因此,这些程序集需要引用Microsoft.StyleCop.CSharp.dll,例如强名称。 问题在于,如果我构建它并将其传递给我的组中的开发人员,则它们必须具有相同版本的StyleCop dll(当前为4.3.3.0)或者无法加载。 使我的附加规则DLL更独立的最佳方法是什么? 我应该在GAC中安装我的4.3.3.0版本的那些从属StyleCop dll吗? 程序集(与应用程序)可以使用策略文件吗? 哦,其中一个主要问题是我希望它可以与客户安装的任何版本的StyleCop(或至少4.3.3.0或更高版本)一起使用。 提前谢谢了。

为StyleCop拼写检查指定CustomDictionary文件的路径

对最近版本的StyleCop添加了对注释的拼写检查。 我似乎可以使用StyleCop重用我现有的CustomDictionary文件(我为FxCop创建)。 SA1650规则文档并未说明是可行的。 但在版本4.7.39的发行说明中 ,我看到了 添加对settings.StyleCop文件中指定字典文件夹的支持。 如何配置StyleCop以在我的解决方案的根文件夹中搜索此文件?

StyleCop 4.7是否与C#6.0代码兼容

我安装了StyleCop 4.7来开发自定义规则,以分析我们的C#代码。 我们在Visual Studio 2015中编写代码。我可以分析我的C#5.0(Visual Studio 2013)代码,并得到正确的响应,但是当我分析我的C#6.0(Visual Studio 2015)代码时,StyleCop会为我的规则引发exception。 现在我的问题是: StyleCop 4.7与C#6.0代码兼容吗? 如果没有,我们有任何解决方案吗?

C#StyleCop – 对于像当前类成员这样的基类成员使用“this。”前缀?

StyleCop有一个关于使用“this”的规则。 调用类成员的前缀(SA1101)。 这个规则是否适用于从其基类inheritance的类的成员(例如方法)。 例: class BaseClass { protected void F1() { … } } class ChildClass : BaseClass { protected void F2() { … } protected void F3() { this.F2(); // This is correct acording to SA1101 // F1 is a member of base class and if I dont put this prefix, stylecop will not […]

如何抑制整个命名空间文件的StyleCop警告

我正在使用Style Cop版本4.7。 全局抑制不适用于所选命名空间的每个成员。 我在同一名称空间中有两个文件(StyleCopSample.Test)。 当我在第一个文件中设置抑制消息时,消息仅抑制此文件,但第二个文件仍然会收到警告。 第一个文件的内容: [assembly: SuppressMessage(“CSharp.DocumentationRules”, “*”, Scope = “Namespace”, Target = “StyleCopSample.Test”)] namespace StyleCopSample.Test { class TestFirst {} } 第二个文件的内容: namespace StyleCopSample.Test { class TestSecond {} } 我不想为同一命名空间的每个物理文件描述抑制消息属性。 有任何想法吗? 谢谢你的时间!

将GNU GPL许可证添加到C#App

我知道怎么做但我不知道StyleCop方法是真的/工作的。 通常在StyleCop规则中,您必须将此示例添加到标题(需要编辑): //———————————————————————– // // Copyright (c) Sprocket Enterprises. All rights reserved. // //———————————————————————– 使用StyleCop for ReSharper: // ——————————————————————————————————————– // // // // // Defines the Form1 type. // // ——————————————————————————————————————– 我的最后标题是: // ——————————————————————————————————————– // // // Copyright (C) 2009 {Company} // // This program is free software: you can redistribute it and/or modify // […]

如何在StyleCop设置和并发中的单个“自定义规则”节点下组合多个自定义StyleCop规则

基于几篇好文章,我已经能够成功创建一些自定义StyleCop规则。 作为参考,我在这里列出了一些我发现对这个主题非常有用的文章: 如何实现自定义StyleCop规则 为Microsoft Source Analyzer创建自定义规则 – 第一部分 为Microsoft Source Analyzer创建自定义规则 – 第二部分 为Microsoft Source Analyzer创建自定义规则 – 第III部分 我正在使用Visual Studio 2010 Ultimate版本以及StyleCop版本4.4.0.14。 创建自定义StyleCop规则会调用创建类文件以及相应的XML文件,该文件用于将规则添加到StyleCop设置。 当我这样做时,我的所有自定义规则都会正确执行。 但是,我不喜欢的是,在StyleCop设置树中,您最终会获得多个“自定义规则”节点,每个节点对应一个XML文件。 跳过不同规则的实现细节,这就是我所做的。 让我们沿着相应的XML文件获取以下两个简单的自定义规则类: 文件:CustomRule1.cs namespace StyleCop.CustomRules { [SourceAnalyzer(typeof(CsParser))] public class CustomRule1 : SourceAnalyzer { public override void AnalyzeDocument(CodeDocument document) { Param.RequireNotNull(document, “document”); CsDocument csDocument = document as CsDocument; if ((csDocument.RootElement != […]

有没有办法强制使用制表符而不是空格?

StyleCop提供检查空间的一致使用,但遗憾的是缺乏相反的想法:强制源代码使用选项卡。 有没有办法添加此function? 它不一定是StyleCop,也欢迎其他工具。

从StyleCop分析中排除文件:忽略“自动生成”标记

在C#文件的开头,我添加了: //———————————————————————– // // Copyright © Some Company, 2011 // // //———————————————————————– 我希望StyleCop跳过检查这个文件,所以我使用了其他答案中解释的auto-generated技巧。 但是,在清理并重建我的解决方案后,StyleCop会不断为此文件生成警告。 为什么会这样? 怎么修好? 我使用的是Microsoft Visual Studio 2008专业版和StyleCop v4.3。

从NuGet包实现StyleCop MSBUILD

一个快速的先兆,说我已经在论坛和网络上进行了一般性的搜索,我已经尝试了在这个论坛和其他地方发现的大量建议无济于事。 我遇到的问题是我的公司正在寻求使用StyleCop,ReSharper和JSLint(等等)等工具实现内部自动化同行评审(在某种程度上)。 我们正在使用针对我们内部NuGet包存储库(feed)的自定义NuGet包,以便我们的开发人员获得管理版本的工具(即,在它出现之前,它们无法下载最新的StyleCop,直到它被审查和发布),并添加了我们的自定义规则(StyleCop设置文件)。 因为我们希望使用StyleCop MSBUILD任务在构建时突出显示错误,所以StyleCop的程序集必须精确,因此我们排除了C:\ Program Files \版本的安装,转而支持NuGet版本。 我已经设法创建一个安装到项目(类库,网站等)的NuGet包,复制批准的StyleCop程序集(StyleCop.dll,StyleCop.CSharp.dll和StyleCop.CSharpRules.dll),Settings.StyleCop和StyleCop.Targets到包文件夹,并修改.csproj文件以包含以下节点(当然这只是一个片段): false 如果我将StyleCop安装为C:\ Program Files \并且在C:\ Program Files \ MSBUILD中,那么一切正常,但使用此方法,StyleCop.Targets似乎无法正常工作。 如果文件被删除并且它创建了一个StyleCop.Cache文件,它将被用作Visual Studio 2010引发错误。 StyleCop.Targets文件已更改为指向NuGet包文件夹中的本地DLL,我尝试了几个不同的.Targets文件,包括标准的StyleCop文件(相对文件路径更改)。 即使我在本地覆盖MSBUILD属性它也不起作用,例如OverrideSettingsFile。 StyleCop.Targets文件目前看起来像这样: $(BuildDependsOn);StyleCop StyleCopForceFullAnalysis;$(RebuildDependsOn) $(SourceAnalysisForceFullAnalysis) false $(SourceAnalysisCacheResults) true $(SourceAnalysisTreatErrorsAsWarnings) true $(SourceAnalysisEnabled) true $(SourceAnalysisOverrideSettingsFile) $(SourceAnalysisOutputFile) $(IntermediateOutputPath)StyleCopViolations.xml 0 有谁知道我怎么能这样工作? Visual Studio 2010不会在“输出”窗口中显示任何消息。 干得好!