标签: code-analysis

你能配置VS2008 Code Analysis来使用英国英语词典吗?

VS2008代码分析将使用IdentifiersShouldBeSpelledCorrectly警告类型标记标识符中的拼写错误.

默认情况下,此过程使用美国字典,因为正在使用英语拼写标记正确拼写的单词.例如,"组织"和"定制"等词......

我知道你可以创建自己的自定义Xml字典文件,其中包含你不想被标记的任何单词,但是,任何人都可以告诉我你是否可以配置代码分析以使用不同的默认(或附加)字典在Windows中可用吗?

code-analysis visual-studio-2008 visual-studio

6
推荐指数
1
解决办法
910
查看次数

Code Analysis是否支持为混合语言拼写检查定义两种语言?

使用JoséAdan在http://social.msdn.microsoft.com/Forums/en-US/vstscode/thread/f6dec8c4-9752-4a9b-82fe-0822808fd386/提供的提示,我能够让代码分析进行拼写检查巴西葡萄牙语.

在巴西,在类型和成员名称上混合葡萄牙语和英语是一种常见的做法.我也在源自欧洲的代码中看到了其他语言的这种做法.

所以我想要做的是启用两种语言.

我没有找到任何东西,我在周围搜索,我做了一些实验,如

<CodeAnalysisCulture>en-US;pt-BR</CodeAnalysisCulture>
Run Code Online (Sandbox Code Playgroud)

和

<CodeAnalysisCulture>en-US&</CodeAnalysisCulture>
<CodeAnalysisCulture>pt-BR&</CodeAnalysisCulture>
Run Code Online (Sandbox Code Playgroud)

都没有奏效.第一个打破了编译错误,第二个使用了最后定义的语言.

我几乎可以肯定Code Analysis不支持这个,但作为最后的手段,我问:

Code Analysis是否支持为混合语言拼写检查定义两种语言?

PS:我已经知道自定义词典了.这是我的备份计划.

code-analysis fxcop visual-studio-2008 static-code-analysis

6
推荐指数
1
解决办法
210
查看次数

使用规则集文件引用自定义代码分析规则库

关于Visual Studio 2010的自定义代码分析规则没有太多易于查找的信息.虽然这是我在我的问题中发现的...

在CodePlex上的示例库中,展示了如何部署自定义代码分析规则库,该规则库使用安装项目将库的DLL转储到程序文件文件夹 - > Microsoft Visual Studio 10.0 - >团队工具 - >静态分析工具 - > FxCop - >规则.

此外,Duke Kamstra的一篇非常有用的how-to 博客文章还建议将库的dll复制到%Program Files%\ Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules中.

我的偏好是避免在这样的全球位置粘贴DLL.我想让DLL相对于我的Visual Studio解决方案,所以当我用一些自定义代码分析规则更改更新DLL时,我不需要采取额外的步骤来保持DLL的依赖关系是最新的.

对我来说一个完美的解决方案是让我的自定义*.ruleset文件知道DLL的相对路径,但我没有成功.

有什么建议?

.net code-analysis visual-studio-2010

6
推荐指数
1
解决办法
3828
查看次数

标记枚举没有两个值的幂

在MSDN文档的Flag属性,说,你应该:

定义2的幂的枚举常量,即1,2,4,8等.这意味着组合枚举常量中的各个标志不重叠.

......当然,我总是试着记住这样做.但是,没有任何强制执行,如果你只是创建一个枚举'基本'的方式,如...

[Flags]
public enum BrokenEnum
{
    None,
    FirstOption,
    SecondOption,
    ThirdOption
}
Run Code Online (Sandbox Code Playgroud)

......它的行为不会像预期的那样.为了解决这个问题,我正在寻找某种静态代码分析(如FxCop),当我的代码中存在类似上面的枚举时,它可以发出警告.我能找到的最接近的警告是' CA1008:Enums应该没有值 ' - 这对于正确设计标志枚举也很有用,但还不够.

在我的代码中找到设计错误的标志枚举的最佳方法是什么?解决方案越自动化越好.

c# enums code-analysis static-analysis

6
推荐指数
2
解决办法
963
查看次数

代码分析CA1060修复

我的应用程序中有以下代码:

[DllImport("user32.dll")]
private static extern int GetWindowLong(IntPtr hwnd, int index);

[DllImport("user32.dll")]
private static extern int SetWindowLong(IntPtr hwnd, int index, int newStyle);

[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter,
               int x, int y, int width, int height, uint flags);

[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hwnd, uint msg,
               IntPtr wParam, IntPtr lParam);
Run Code Online (Sandbox Code Playgroud)

我从Code Analysis(FxCop)收到以下警告:

CA1060:Microsoft.Design:因为它是P/Invoke方法,所以应该在名为NativeMethods,SafeNativeMethods或UnsafeNativeMethods的类中定义'IconHelper.GetWindowLong(IntPtr,int)'.

有人可以告诉我应该把它放在哪个班级吗?我不知道它是Native,SafeNative还是UnsafeNative.

c# code-analysis fxcop

6
推荐指数
2
解决办法
5189
查看次数

为什么Visual Studio 2010 Premium中的项目属性上没有显示"代码分析"选项卡?

要么我疯了,要么Visual Studio中的代码分析选项卡已经消失(或两者都有).

我正在使用Service Pack 1的Visual Studio 2010 Premium(我知道此功能不在VS 2010 Professional中).

我的项目有一个Code Contracts选项卡,但是不应该有Code Code选项卡吗?如果我选择Analyze | 配置代码分析对于[此项目],从菜单中显示项目设置,但只显示之前选择的任何选项卡.

如果我选择Analyze | 从菜单配置Code Analysis For Solution,我会看到一个对话框.

我是否正确地认为项目应该有一个代码分析选项卡?知道什么可能使它不显示?

c# code-analysis visual-studio-2010

6
推荐指数
1
解决办法
5102
查看次数

为什么Cassini和IIS Express for Web Sites之间的代码分析有所不同?

问题详情

我们正在使用IIS Express而不是Cassini,我注意到Code Analysis没有返回相同的结果.在一个网站上我们开始在游戏后期使用代码分析,结果是卡西尼VS的423警告.6个警告使用IIS Express.

有趣的是,在没有任何修改的默认VB ASP.NET网站上,结果是Cassini VS的49个警告.0警告使用IIS Express.

有人可以解释一下.

问题复制:

  1. 打开Visual Studio 2010
  2. 创建一个新的"VB - ASP.NET Web站点"(不是WebApp)
  3. 运行网站代码分析(文件菜单 - >分析 - >运行网站上的代码分析)
    注意输出显示:

    在网站上运行代码分析C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe/o:"\ [OurServer]\sys\user [MyUserName]\My Documents\Visual Studio 2010\Projects\AllLocalTest\AllLocalTest {38557EBD-D900-482B-B048-B527347036D1}\CodeAnalysisLog.xml"/ asp/searchgac/ignoreinvalidtargets/forceoutput/successfile/ignoregeneratedcode/outputCulture:"1033"/ r:"C:\Program Files(x86)\ Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules"/rs:"=MinimumRecommendedRules.ruleset"/ rsd:"C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop ..\Rule Sets"/f:"C:\Users[MyUserName]\AppData\Local\Temp\tmp94D6.tmp.cadir\bin\App_global.asax.dll"/f:" C:\ Users [MyUserName]\AppData\Local\Temp\tmp94D6.tmp.cadir\bin\App_Web_303a5ti3.dll"/ f:"C:\ Users [MyUserName]\AppData\Local\Temp\tmp94D6.tmp.cadir\bin\App_Web_bwgrez5a.dll"/ f:"C:\Users[MyUserName]\AppData\Local\Temp\tmp94D6.tmp.cadir\bin\App_Web_ruo jygvq.dll")

  4. 结果有0个错误和49个警告
  5. 更改站点以使用IIS Express(在路径上右键单击解决方案资源管理器并选择"使用IIS Express ...")接受弹出窗口并等待解决方案资源管理器将路径更改为 http:// localhost...
  6. 运行网站代码分析(文件菜单 - …

.net code-analysis fxcop visual-studio-2010 iis-express

6
推荐指数
1
解决办法
308
查看次数

静态和动态代码分析

我发现了关于这个主题的几个问题,并且所有这些问题都有很多参考,但我仍然没有清楚的想法,因为大多数参考文献都是关于具体工具而不是关于分析的一般概念.因此我有一些问题:

关于静态分析:1.我想有一个参考,或者总结哪些技术是成功的,现在更具相关性.2.他们真正可以做些什么来发现错误,我们可以做一个总结,还是取决于工具?

关于符号执行:1.哪里可以包含符号执行?我想根据方法,我想知道它们是动态分析,还是静态和动态分析的组合,如果可以确定的话.

我找到了区分工具中两种不同技术的问题,即使我认为我知道理论上的差异.

我实际上是在提前与C合作

code-analysis dynamic-analysis static-code-analysis

6
推荐指数
1
解决办法
6992
查看次数

默认情况下,为Visual Studio 2012中的每个项目激活代码分析

有没有办法默认为每个项目激活Visual Studio 2012的代码分析功能?并且,如果可能,默认情况下将规则设置为"Microsoft All Rules".

每次创建新项目时,我都必须在项目属性中手动激活"在构建时启用代码分析",并且必须将规则设置为所有规则.有时我会忘记这样做,并且必须解决更多问题.如果它默认激活我可以防止.

.net code-analysis default visual-studio-2012

6
推荐指数
1
解决办法
1270
查看次数

如何在使用泛型类时修复CA2225(OperatorOverloadsHaveNamedAlternates)

我正在尝试使用以下消息解决CA2225(ContrainedValue<T>下面的WARN):Provide a method named 'ToXXX' or 'FromXXX' as an alternate for operator 'ConstrainedValue<T>.implicit operator T(ConstrainedValue<T>)'.

我还贴了PositiveInteger用来说明用例ConstrainedValue<T>. ConstrainedValue<T>使衍生物能够在构造函数中简单地指定应用于值类型的约束.这似乎是一种非常干净的编码方式.有没有办法解决CA2225警告,因为我正在处理泛型类型?如何提供备用运营商?

  • 也许我可以为所有值类型实现ToInt,ToDouble等等,如果它们from不是同一类型,它们会抛出?但我认为让ToXXX方法抛出是一种不好的做法?
  • 我可以创建在中间层ConstrainedValue<T>和PositiveInteger<T>,一ConstrainedInteger类.我可以ToInt()参加那个班级.但是,为了满足CA2225而创建一个层似乎是错误的,我不认为警告会消失ConstrainedValue<T>,我不得不压制这个警告.

码:

namespace OBeautifulCode.AutoFakeItEasy
 {
    using System.Diagnostics;

    using Conditions;

    /// <summary>
    /// Represents a constrained value.
    /// </summary>
    /// <typeparam name="T">The type of the constrained value.</typeparam>
    [DebuggerDisplay("{Value}")]
    public abstract class ConstrainedValue<T>
        where T : struct
    { …
Run Code Online (Sandbox Code Playgroud)

.net c# generics code-analysis implicit-conversion

6
推荐指数
1
解决办法
354
查看次数