12

我工作的小型软件团队最近获准升级到 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 的选项的反馈感兴趣。

4

8 回答 8

7

您当然必须“升级”您的项目和解决方案文件。这使得在 VS2k5 和 VS2k10 上很难有一个混合团队。解决方案文件和项目文件在升级后无法再在以前版本的 Visual Studio 中打开。

您可以通过将每个解决方案和项目文件复制两个副本来解决此问题,但这很笨拙,因为显然对一个所做的更改需要手动复制到另一个。

此外,您似乎无法将任何 pre-.NET 4.0 nit 测试项目与 VS2010 一起使用。如果您使用 MSTest 测试 4.0 之前的应用程序,那根本就是反对迁移到 VS2k10 的论据。您需要将您的应用程序移植到 4.0,或将您的测试移植到例如 NUnit。

Beta 1 中有一些关于解决方案资源管理器布局的错误。Connect 上列出的所有内容都是“已修复的”,但值得注意的是,升级向导可能会出现您必须手动修复的错误。假设您的整个团队正在迁移到 vs2k10,那么这种问题并不是什么大问题,因为如果出现问题很明显,很容易修复,并且只发生一次。

于 2010-04-26T15:50:22.747 回答
5

我们公司在将 ASP.NET 项目从 2005 年迁移到 2008 年时从未遇到任何问题,因此我不会预见到任何特殊问题(尽管我们还没有迁移到 2010 年,所以请记住这一点)。我认识的大多数人都有过同样的经历。正如其他人所提到的,有一个自动升级向导可以为您处理升级,并且对于我升级的所有项目,它总是完美无缺。但是,您将无法在以前版本的 Visual Studio 中打开新升级的解决方案文件(因此,如果您想保留它们,请先备份它们 - 尽管如果真的可以破解 .sln 文件以返回必要的)。

但是,您可以同时安装多个版本的 Visual Studio(但请记住,只有一个版本可以具有与之关联的默认文件扩展名,这可能是您安装的最新版本)。顺便说一句,如果您对为什么无法在不转换的情况下在新版本中打开旧解决方案感兴趣,请阅读此官方 VS 博客条目。

但请记住,Visual Studio 2010 允许您以任何先前版本的 .NET Framework 为目标。因此,如果出于某种原因您希望您的项目保留在 .NET 2.0 上,您可以这样做。但是,实际上我看不到真正的优势。就我个人而言,我认为您只需要硬着头皮升级所有东西 - 人们为相同的解决方案使用不同版本是不切实际的。

于 2010-04-28T09:16:25.087 回答
3

您将不得不升级项目。

这将更改解决方案文件,因此该解决方案只能在升级后在 VS2010 上打开。

除此之外,我预计不会有任何问题。

于 2010-04-23T12:57:35.487 回答
2

除了提到的内容之外,请查看.NET Framework 4 迁移问题

于 2010-04-28T09:39:06.913 回答
2

当您将项目从 VS 2005 转换为 2008 或从 VS 2008 转换为 2010 时,解决方案文件和项目文件都会被修改。但是,虽然解决方案文件不能再用早期版本打开,但项目文件可以。

因此,最好的升级方式是:

  1. 在文件系统中导航到您的原始解决方案 (Original.sln)。
  2. 制作该解决方案文件的副本。
  3. 重命名副本,以便您知道它是 VS 2008(例如 OriginalVs2008.sln)。
  4. 现在在 VS 2010 中进行升级过程。

升级完成后,您将能够在 VS 2010(使用 Original.sln)或 VS 2008(使用 OriginalVs2008.sln)中打开您的解决方案。

请记住,您需要使解决方案保持同步;如果您将一个项目添加到其中一个,则需要将其添加到另一个。但我已经使用这种技术在 VS 2005 和 VS 2008 之间共享项目,并且效果很好。我已经确认在 VS 2008 中创建的项目,然后转换为 VS 2010,仍然可以在 VS 2008 中使用兼容的解决方案文件。

于 2010-09-29T16:13:29.250 回答
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\<>”。拒绝访问路径“<>”。

这没有解决......我们已经尝试了http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/40ed753e-47af-4638-8a72-1d607102a05c中的解决方案,但问题仍然不是解决了,我们必须关闭VS 2010,然后手动删除文件,然后说在项目中构建,如果我们说清理或重建,那么它会给出与上述相同的错误。

3. 第三个错误是:

之后我们在 2010 年执行迁移向导时,我们看到所有项目引用(不是 dll 引用)都消失了,所以我们必须打开所有项目并再次为所有项目添加项目引用,这是最乏味的工作。

于 2010-10-09T18:37:19.107 回答
1

它将修改项目文件,因此如果不编辑该文件(或确保每个 VS 版本都有副本),就无法在旧版本的 Visual Studio 中打开。

于 2010-04-23T12:58:10.183 回答
1

几天前,我将解决方案从 2005 年移至 2010 年。完全没有问题,尽管它是一个包含大量小型、简单测试项目的解决方案。完成转换后,您将无法在 2005 年打开解决方案。

于 2010-04-28T09:27:15.277 回答