我编写了一些代码分析规则,并创建了一个规则集文件,其中包含一些自定义规则和一些微软规则。这些规则是在MS Visual studio 2010上开发和构建的,运行得很好。当我试图在MS Visual Studio 2012中使用的自定义规则集无法加载时,没有任何警告。
我试图构建相同的项目VS 2012,并使用相同的程序集与新的规则集,但仍然自定义规则未能加载。
这是一个引用问题。
您的自定义规则使用对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>