4

我有一个开源项目,主要是使用MonoDevelop开发的。我去Visual Studio 2010测试它,一切正常。然后,我开始在Visual Studio 2012中测试它,并对我的项目和解决方案进行了“静默”迁移。如何确定Visual Studio 2012是否需要“迁移”Visual Studio 2010项目?

与Visual Studio 2010不同,它没有显示有关所需迁移的任何警告。相反,它只是做了迁移并发布了迁移报告。它也重置我的项目使用.Net 2.0,之前它被设置为使用4.0 ..(易于更改,但仍然)。迁移完成后,它在Visual Studio 2010中正常工作,不会尝试迁移。

但是,我的问题是什么决定它甚至需要做一个迁移?在我的工作中,我们有一个Visual Studio 2010项目,在Visual Studio 2012中完美地工作,没有任何迁移(之后项目文件甚至未被标记为已修改)。这里有什么区别?

回答

3

至少,VS2012将与这样的线路更新您的解决方案文件:

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 2012 

至于你的解决方案/项目的剩余部分,得到什么“迁移”取决于许多因素 - 如果你有VS2010的SP1,那么你将在两个版本的VS之间有更好的可互操作性。数据库项目(.dbproj文件变为.sqlproj)是最大的突出特点,常规类库在任一版本中都应打开。

下面是一个比较全面的MSDN博客文章讨论这个问题:Visual Studio 2012 New Features: Compatibility (aka Project Round-Tripping)

+0

所以格式12的Visual Studio 2012和11是在2010年(不SP1)?我当前的解决方案文件格式为11,为什么我要问 – Earlz

+0

@Earlz VS2010在其标识符(包括SP1)中使用“格式版本11.00”,这在使用VS2012的测试版或RC版时进行了更新。请注意,这些版本与年份无关 - 即使它们很接近。 – slugster

+0

我发现解决方案文件格式仅在您需要重新保存解决方案文件(如添加或移除项目)的解决方案时才会更改。否则解决方案文件似乎停留在2010版本 –