我公司最近创建了一个Visual Studio 2010加载项,允许我们从2010年,2008年和2005年开始,从任何给定的Visual Studio项目创建LINT文件。我们现在希望在Visual Studio 2012中使用相同的加载项,因为我们知道很多客户将在不久的将来使用它,如果不是的话。
我们认为它应该是一个简单的“切换”,并且相同的代码应该适用于两者,但是看起来,VS10加载项在VS12中不起作用。所以我将代码(绝对没有变化)复制到VS12加载项中,并且出乎意料的是,它确实有效。当然,我们不希望有两个版本的相同代码;可读性差,可维护性差,所以我们仍然希望找到一种方法让VS10加载项在VS12中工作。
我认为问题在于Microsoft.VisualStudio.VCProjectEngine程序集。这在VS12中的解释与它在VS10中的表现方式不同,这意味着当VS12读取加载项时,它不会按照我们想要的方式执行。
我已经对这个问题进行了一些研究,很多人建议使用反射来创建一个工作,但我对这个概念是相当新的,并且没有足够的信心尝试它并冒着严重破坏加载项的风险
所以我的问题是:有没有一种简单的方法可以将VS.版本的Microsoft.VisualStudio.VCProjectEngine读入VS12?
非常感谢:)
答案 0 :(得分:1)
我后来找到了这个问题的答案,并意识到它没有在帖子中得到证实。
答案确实存在于VCProjectEngine程序集中。出于某种原因,这是Visual Studio 2010中与Visual Studio 2012中的模块(具有相同名称)不同的模块,这意味着在VS2012中编写时需要模块的任何代码在VS2010中都不起作用,反之亦然。
这很痛苦,因为这意味着我们有两批完全相同的代码,但这就是必须的方式。