Fxcop 针对 VS 2010 设计的自定义代码不适用于 VS 2012
Posted
技术标签:
【中文标题】Fxcop 针对 VS 2010 设计的自定义代码不适用于 VS 2012【英文标题】:Fxcop Custom code designed targeting VS 2010 not working for VS 2012 【发布时间】:2014-06-24 06:58:10 【问题描述】:我已经编写了一些代码分析规则并创建了一个规则集文件,其中包含一些自定义规则和一些是 Miscrosoft 规则。这些规则是在 MS Visual Studio 2010 上开发和构建的,并且运行良好。当我尝试在 MS Visual Studio 2012 中使用的相同规则集自定义规则无法加载而没有任何警告时。
我尝试构建针对 VS 2012 的相同项目并使用具有新规则集的相同程序集,但仍然无法加载自定义规则。
【问题讨论】:
我面临着完全相同的问题。似乎 VS2012(甚至 VS2013)不尊重规则的相对路径。该问题发布在here as well。您能找到任何解决方案/解决方法吗? 【参考方案1】:这是一个参考问题。
您的自定义规则使用对 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>
【讨论】:
已添加相对路径。我认为 VS studio 无法加载 .dll。 在 Visual Studio 2012 中加载您的自定义规则项目。导航到参考并检查它检测到的版本。如果是10.0
,你没有使用相对路径。
@TUSWAY 我猜他指的是自定义规则 dll 没有被加载。而不是 FxCop 或 CCI dll。以上是关于Fxcop 针对 VS 2010 设计的自定义代码不适用于 VS 2012的主要内容,如果未能解决你的问题,请参考以下文章