我刚刚从Subversion检查了一个解决方案,ReSharper告诉我它有191个文件有错误.事实上,它构建完美.
它的大多数问题似乎是"未知符号",它不识别名称空间或类名.纵观这些错误,至少它似乎与哪些错误不一致.
既然ReSharper完全错了,有没有办法可以告诉它重新开始分析,希望这次能做到正确吗?
我有VS 2010 Professional(与Premium不同,它不包括访问IDE中的代码分析配置),以及包含许多项目的C#4解决方案.我想做静态代码分析作为解决方案编译的一部分.
我在SO和Google的帮助下确定的可能方式是:
编辑.csproj解决方案中的每个内容,以包含独立FxCop 10作为Post-build事件的调用.优点:每次编译时都会重建每个重建的项目.缺点:必须采取额外措施以确保新项目具有此指定
由于项目依赖性,创建一个新项目,或识别始终最后构建的现有项目.给(仅)项目一个Post-build事件,该事件在(公共)输出文件夹中的所有程序集上运行FxCop.优点:只有一个文件需要更新,未来项目未被分析的可能性较小.缺点:构建依赖关系的变幻莫测可能意味着这实际上不起作用
使用在任何构建之后运行FxCop的加载项或宏更新所有开发人员的VS实例.根本不喜欢这个想法.
还有其他选择,明显优于上述任何选项吗?我需要注意哪些警告或观察才能完成上述工作之一?
我还希望FxCop作为MSBuild 4.0构建服务器上的动态构建的一部分运行.哪个选项允许我在桌面编译和bulid服务器编译之间重用代码分析规则集?
我已经阅读了相关但不完全相同的已有问题,包括:
我正在使用Visual Studio 2008团队系统.我有C项目.我去了项目属性和代码分析部分.我想知道什么意思
`suppress results from generated code`
Run Code Online (Sandbox Code Playgroud)
当我设置是或否时,有人可以解释这个选项的作用吗?谢谢
在查看可能的工具后,我需要分析Objective-C静态代码,主要是AST,我发现LLVM中的Clang工具可以转储AST,所以我使用终端使用这个命令测试它:
clang -cc1 -ast-dump ~/SomeTest.m
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
In file included from /Users/myusername/SomeTest.m:9:
/Users/myusername/SomeTest.h:9:9: fatal error: 'UIKit/UIKit.h' file not found
#import <UIKit/UIKit.h>
^
typedef __int128_t __int128_t;
typedef __uint128_t __uint128_t;
typedef SEL *SEL;
typedef id id;
typedef Class *Class;
struct __va_list_tag {
unsigned int gp_offset;
unsigned int fp_offset;
void *overflow_arg_area;
void *reg_save_area;
};
typedef struct __va_list_tag __va_list_tag;
typedef __va_list_tag __builtin_va_list[1];
@interface just4testViewController@end
@implementation just4testViewController
- (void) dealloc (CompoundStmt 0x7f86b183b110 </Users/myusername/SomeTest.m:14:1, line:16:1>)
- (void) didReceiveMemoryWarning (CompoundStmt 0x7f86b183b2a0 </Users/myusername/SomeTest.m:19:1, line:24:1>)
- (void) viewDidUnload (CompoundStmt 0x7f86b183b430 …Run Code Online (Sandbox Code Playgroud) parsing code-analysis objective-c clang abstract-syntax-tree
我正在使用以下命令来测试我的perl代码:
perl -MB :: Lint :: StrictOO -MO = Lint,all,oo -M-circular :: require -M-indirect -Mwarnings :: method -Mwarnings :: unused -c $ file
在perl版本低于5.10的系统上,我也使用uninit.
我也使用Perl :: Critic和Perl :: Tidy,并根据自己的喜好设置了合适的rc文件.
这些模块在帮助我打破首次学习perl时学到的一些坏习惯方面做得非常出色.
当我陷入困境时,还有更多的模块或pragma会让我恢复直线和狭窄吗?
使用测试,并指出了Test ::*系列模块和一些好书.这些新信息让我重新考虑了有关测试和代码技能构建之间关系的一些假设.这些都受到赞赏,并且已经在研究和投入使用.
在我看来,这些是整体的两个独立部分.'perl -c',Perl :: Critic和Perl :: Tidy在编写代码和执行代码之前都有所帮助.Devel :: Cover,Devel :: NYTProf和测试在执行代码期间和之后发生.
良好的开发决定了迭代过程,因此测试将会运行,代码会反复开发,但我们仍然存在这种分离.
在我看来,答案的重点是代码的"执行期间和执行后".再次,非常感谢.我可以假设我的'写作和预执行'部分很好吗?至少,就像pragma,模块和实用程序一样.
我可以使用什么工具.Net/C#项目来捕获类之间的运行时依赖关系?我发现这个问题非常有用,但建议的工具捕获静态依赖图.我只是想看看类的实例化图.
我正在使用VS 2008(但如果需要可以安装其他版本).
UPD:我的目标是这样的.我有很大的旧代码库.它有(例如)500个类但由于DB驱动的工作流程多年来发生了变化(例如)现在使用了100个类.这就是静态依赖性分析太难以消化的原因.
在我在Visual Studio中的项目设置中,我将"将警告视为错误"设置为"全部".警告级别设置为4.我通过故意引入违反CA1305的代码对此进行了测试,但是它成功构建(和重建),返回警告.我所期望的是构建将失败并返回错误.我的理解错了吗?
我的构建服务器上出现代码分析错误,错误是
... NETFramework,Version = v4.6.AssemblyAttributes.cs(3,1):错误CS8019:不必要的using指令.
这是Visual Studio创建的Temp文件.
在我的项目中,我有" 从生成的代码中抑制结果(仅限管理) ".我原以为这就足够了.
但我仍然得到服务器上的错误,本地我没有.
有任何想法吗?
我想从命令行运行VS 2015提供的代码分析工具,就像我能够生成FxCop报告一样,如下所示:
FxCopCmd.exe /console /project *Project* /out:*ReportFile*
Run Code Online (Sandbox Code Playgroud)
请注意,我不想使用FxCop工具,而是想启动代码分析工具来生成报告,类似于我选择时生成的报告:
分析 - >运行代码分析解决方案
知道如何实现这一点吗?
更新:
经过一些研究,我发现运行代码分析实际上执行位于的FxCopCmd.exeC:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe
我使用与Ubuntu包管理器一起安装的python-vtk 6.2.0在python 2.7中编码.我使用eclipse + pydev作为IDE,我可以在shell和Eclipse中成功运行代码.
我唯一烦人的问题是代码分析器不断发布类型的错误:Undefined variable from import: vtkxxxxxx每当我这样做
import vtk
vtk.vtkTransformPolyDataFilter
vtk.vtkActor
vtk.vtkWhatever
Run Code Online (Sandbox Code Playgroud)
我试图重置解释器,我也尝试手动将库.so文件添加到PYTHONPATH,没有运气.
我也可以在系统库下的项目树中看到vtk包,我没有错误 import vtk
是否有一种特殊的方式在pydev中包含vtk库?我做了一些我看不到的傻事吗?
谢谢你们!