我编写了一些代码分析规则并创建了一个包含一些自定义规则的规则集文件,其中一些是Miscrosoft规则。这些规则是在MS Visual Studio 2010上开发和构建的,并且工作正常。当我尝试在MS Visual Studio 2012中使用相同的规则集时,自定义规则无法加载而没有任何警告。
我尝试构建针对VS 2012的相同项目,并使用与新规则集相同的程序集,但仍无法加载自定义规则。
答案 0 :(得分:0)
这是一个引用问题。
您的自定义规则使用对FxCopSDK.dll和Microsoft.CCI.dll的引用。每次发布新的Visual Studio时,它们的版本都会更改。
Visual Studio 2010使用版本10.0
的位置,Visual Studio 2012使用版本11.0
。
您可以在.csproj
- 文件中添加相对路径。这允许在每个新的Visual Studio版本中进行即时重建:
<Reference Include="Microsoft.Cci">
<HintPath>$(CodeAnalysisPath)\Microsoft.Cci.dll</HintPath>
</Reference>
<Reference Include="FxCopSdk">
<HintPath>$(CodeAnalysisPath)\FxCopSdk.dll</HintPath>
</Reference>