1

我的公司最近创建了一个 Visual Studio 2010 加载项,它允许我们从 2010、2008 和 2005 年的任何给定 Visual Studio 项目创建 LINT 文件。我们现在想让这个相同的加载项在 Visual Studio 2012 中工作,因为我们知道我们的许多客户将在不久的将来使用它,如果还没有的话。

我们认为它应该是一个简单的“切换”,并且相同的代码应该适用于两者,但是你瞧,VS10 插件在 VS12 中不起作用。所以我将代码(绝对没有更改)复制到 VS12 插件中,令人惊讶的是,它确实有效。自然,我们不希望有相同代码的两个版本。不利于可读性,不利于可维护性,所以我们仍然想找到一种方法让 VS10 插件在 VS12 中工作。

我认为问题在于 Microsoft.VisualStudio.VCProjectEngine 程序集。这在 VS12 中的解释与在 VS10 中的解释不同,这意味着当 VS12 读取加载项时,它不会执行我们希望它执行的操作。

我已经对这个问题进行了一些研究,许多人建议通过使用反射来解决问题,但我对这个概念相当陌生,并且没有足够的信心尝试它并冒着严重破坏加载项的风险。

所以我的问题是:有没有一种简单的方法可以将 Microsoft.VisualStudio.VCProjectEngine 的 VS10 版本读入 VS12?

非常感激 :)

4

1 回答 1

1

后来我找到了这个问题的答案,并意识到它尚未在线程上得到确认。

答案确实在于 VCProjectEngine 程序集。出于某种原因,Visual Studio 2010 中的模块与 Visual Studio 2012 中的模块(具有相同名称)不同,这意味着在 VS2012 中编写时需要该模块的任何代码在 VS2010 中都不起作用,反之亦然。

这很痛苦,因为这意味着我们有两批完全相同的代码,但这就是它必须的方式。

于 2013-05-29T06:47:49.837 回答