我最近工作的小型软件团队获准升级到Visual Studio 2010(我们目前正在使用VS 2005)。我们在生产中有几个ASP.NET 2.0和WinForms(在.NET 2.0中)项目。
我的任务是下载VS 2010并了解它与我们当前的项目有多好。在VS 2010中定位旧应用程序时,我应该注意哪些问题?如果我在VS 2010中打开一个VS 2005项目,当我的队友回到VS 2005中打开项目时,它还会很好吗?我们是否必须升级项目才能在VS 2010中工作(假设项目本身未升级到.NET 4)?我可以使用VS 2010编辑旧版VB6应用程序(开玩笑)吗?
我很高兴能够使用最新的软件,但我们担心在已经正常工作的生产应用程序上遇到开发障碍。
注意:我开始获得赏金,希望能够更详细地回答这个问题。也许答案真的像已经提供的那样简单,但我对从使用VS 2005过渡到VS 2010的选项的更多反馈感兴趣。
答案 0 :(得分:7)
您肯定必须“升级”您的项目和解决方案文件。这使得在VS2k5和VS2k10上组建混合团队变得很困难。在升级后,Visual Studio的先前版本中无法再打开解决方案文件和项目文件。
你可以通过拥有每个解决方案和项目文件的两个副本来解决这个问题,但这很笨拙,因为显然需要将对一个的更改手动复制到另一个。
In addition, it seems that you won't be able to use any pre-.NET 4.0 nit test projects with VS2010。如果您使用MSTest来测试4.0之前的应用程序,这是反对在所有移动到VS2k10 的论据。您需要将应用移植到4.0,或将测试移植到例如NUnit的。
Beta 1中有一些关于解决方案资源管理器布局的错误。 Connect上列出的所有内容都是“固定的”,但值得注意的是,升级向导可能会出错,您必须手动修复。假设您的整个团队正在迁移到vs2k10,那么这个问题并不是什么大问题,因为如果出现问题就很明显,很容易修复,只发生一次。
答案 1 :(得分:5)
我们的公司从2005年到2008年从未将任何问题转移到我们的ASP.NET项目中,所以我不会预见到任何特定问题(尽管我们还没有搬到2010年,所以没想到这一点)。我认识的大多数人都有had the same experience。正如其他人所提到的那样,an automatic upgrade wizard可以为您提供升级服务,而且对于我升级过的所有项目,它总能完美运行。但是,您将无法在以前版本的Visual Studio中打开新升级的解决方案文件(如果您想要保留它们,请先备份这些文件 - 尽管如果真的有必要可以hack the .sln files to go back)。
但是,您可以同时安装多个版本的Visual Studio(但请记住,只有一个版本可以使用与之关联的默认文件扩展名,这可能是您安装的最新版本)。顺便提一下,如果您对无法在没有转换的情况下无法在新版本中打开旧解决方案感兴趣,那么read this official VS Blog entry.
但请记住,Visual Studio 2010允许您target any previous version of the .NET Framework。因此,如果由于某种原因,您希望您的项目保持在.NET 2.0,您可以这样做。然而,实际上我没有真正的优势。就个人而言,我认为你只需要咬紧牙关并升级所有东西 - 人们在同一解决方案中使用不同的版本并不实际。
答案 2 :(得分:3)
您必须升级项目。
这将更改解决方案文件,因此此解决方案只能在升级后在VS2010上打开。
除此之外我不会指望任何问题。
答案 3 :(得分:2)
除了提到的内容之外,请查看.NET Framework 4 Migration Issues。
答案 4 :(得分:2)
将项目从VS 2005转换为2008或从VS 2008转换为2010时,将修改解决方案文件和项目文件。但是,虽然解决方案文件不能再使用早期版本打开,但项目文件可以。
因此,升级的最佳方式是:
升级完成后,您将能够在VS 2010(使用Original.sln)或VS 2008(使用OriginalVs2008.sln)中打开解决方案。
请记住,您需要保持解决方案同步;如果将项目添加到一个项目,则需要将其添加到另一个项目中。但我已经使用这种技术在VS 2005和VS 2008之间共享项目,并且它工作正常。我已经确认在VS 2008中创建的项目,然后转换为VS 2010,仍然可以在VS 2008中使用兼容的解决方案文件。
答案 5 :(得分:2)
我们正在将2005年的解决方案迁移到2010年,我们打开了解决方案并在完成升级后的向导后将.Net版本更改为4.0,当我们说构建时,它开始抛出100多个错误:
<强> 1。第一次错误:
已导入具有相同标识'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e'的程序集。
解决方案:在记事本中打开您的csproj文件并在
中找到<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> and
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
add <NoStdLib>true</NoStdLib> and
then find Reference Tag and add <Reference Include="mscorlib" />.
<强> 2。第二个错误:
无法删除文件“bin \ Debug \&lt;&gt;”。访问路径'&lt;&gt;'被拒绝。
哪个没有解决...我们已经尝试了http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/40ed753e-47af-4638-8a72-1d607102a05c中存在的解决方案,但仍然没有解决问题,我们必须关闭VS 2010然后手动删除文件然后说项目中的构建,如果我们说干净或重建然后它将给出相同的上述错误。
第3。第三个错误是:
当我们在2010年执行迁移向导之后,我们看到所有项目引用(不是dll引用)都消失了,所以我们必须打开所有项目并再次为所有项目添加项目引用是最乏味的工作。
答案 6 :(得分:1)
它将修改项目文件,因此在旧版本的Visual Studio中无法再打开而不编辑该文件(或确保每个VS版本都有副本)。
答案 7 :(得分:1)
我在几天前从2005年到2010年提出了解决方案。没有任何问题,尽管它是一个包含大量小型,简单的测试项目的解决方案。一旦完成转换,您将无法在2005年打开解决方案。