我已经编写了几十个自定义代码分析规则。这些规则是针对 Visual Studio 2010 开发的。根据需要,程序集引用了 FxCopSdk、Microsoft.Cci 和 Microsoft.VisualStudio.CodeAnalysis 的 10.0 版。它们在 Visual Studio 2010 中正确运行并在 TFS 2010 中正确构建。
我想迁移到 Visual Studio 2012。但是,当我使用 VS 2012 在现有解决方案上运行自定义规则时,出现 CA0062 错误。根本原因是加载自定义规则程序集时出现 CA0053 错误。我知道这些对三个程序集的引用需要更新到 Visual Studio 2012 的版本 11。这可以使用配置文件中的版本重定向来完成。我可以通过重定向 Visual Studio 2012 IDE 和 FxCopCmd 二进制文件来使其在本地工作,但是在将代码检入 TFS 2010 时遇到了麻烦。
我们已经考虑了两种明显的解决方案,但都不是很可口。第一种是要求每个开发者在本地进行重定向,然后修改 TFS 构建代理也进行重定向。二是维护自定义代码分析规则的两个分支,一个针对版本 10(VS2010),另一个针对版本 11(VS2012)。
有没有更好的方法来做到这一点,还是我们需要同时升级到 TFS 2012 和 Visual Studio 2012?