【问题标题】:Can Visual Studio 2012 be installed side-by-side w/ Visual Studio 2010?Visual Studio 2012 可以与 Visual Studio 2010 并排安装吗?
【发布时间】:2011-09-15 03:15:06
【问题描述】:

如果将 Visual Studio 2012 并排安装在同一个 Windows 实例上,是否会干扰/破坏 .NET 4 和/或 Visual Studio 2010?

【问题讨论】:

  • 是的,两者都有效,甚至在同一时间。我试过了。
  • Visual Studio 可以并排安装,但要意识到 VS 2012 附带 .NET 4.5,它会覆盖 .NET 4.0。除非您仍然需要为 .NET 4.0 机器进行开发,否则这不是问题。
  • 您仍然可以为 .NET 4.0 机器进行开发。您只需要知道,当您在 VS2012 机器上测试 .NET 4.0 应用程序时,您将测试的 .NET 版本与从未安装过 .NET 4.5 的客户不同。因此,在您的客户将使用的机器上进行测试,您会没事的。
  • 啊啊啊啊提供有用的测试环境的客户真是太奢侈了!祝你好运:P
  • 认为 .NET 4.5 与 .NET 4.0 完全兼容是错误的,事实并非如此,事实上,它破坏了我们的一些解决方案。

标签: .net visual-studio-2010 visual-studio visual-studio-2012 .net-4.5


【解决方案1】:

正如雷戈所说,是的。这是 Microsoft 官方页面的链接,其中包含 Reigo 提供的信息以及更多详细信息:http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx

【讨论】:

  • 它“可以”安装在旁边,这意味着安装程序将成功运行。但是,除非您想花两天时间卸载 Visual Studio、.NET 4.5、修复您的 .NET 4.0 框架(确实会被 4.5 测试版安装直接修改)并卸载过多的 SQL Server 2012 工具,否则您不应该这样做逐个。在您之前工作的 4.0 代码开始在仅包含注释的行上出现“对象引用”错误之后开始轰炸。
  • 如果你打算继续为 .net 4.0 开发,这是非常非常危险的。这是因为您的开发机器将使用 .net 4.5 二进制文件(因为 .net 4.5 是就地升级)。这些二进制文件包含错误修复,在针对 .net 4.0 进行调试时,这些错误修复将对您“隐藏”。但是,当您部署到仅运行 .net 4.0(即 windows xp)的机器上时,那些错误并没有为您的用户修复。有关详细信息,请参阅此帖子:social.msdn.microsoft.com/Forums/en-US/wpf/thread/…
  • 在虚拟机中试试。我可以确认 Mike C 描述的问题。我认为 VS2012 可以安全地尝试。我遇到了很多烦人的问题,最终不信任我的机器并重新安装了 Windows。
  • VS 2012 RTM 还存在这些问题吗?
  • @TimFriesen - 我描述的问题仍在 RTM 中。这是 Microsoft 为 .NET 4.5 采用的“就地”升级计划的设计缺陷。
【解决方案2】:

.net 4.5 版本是就地升级。

这意味着.net 4.0 的二进制文件将被 .net 4.5 的二进制文件替换

Microsoft 已尝试通过制作“Target .net 4.0”功能来缓解由此引起的问题。但这与以前的 .net 版本(自 .net 2.0 以来一直并存)有很大不同。

因为它是就地升级,“Target .net 4.0”不能真正针对它。他们能做的最好的事情就是尝试手动删除一些“功能”。他们已经做到了(Scott Hanselman 有一个 blog post 报道了这一点)。

但不要让这让您误以为您真的在使用 .net 4.0。 .net 4.5 修复的任何错误都将在您的开发机器上修复,而不是为您的 .net 4.0 用户修复。

因此,如果您正在开发“面向 .net 4.0”的应用程序并且安装了 .net 4.5,那么您将面临风险。如果您不小心使用了已修复的错误,则在调试时它不会为您中断。

当您将应用程序部署到仅运行 .net 4.0(即 windows xp)的机器上时,这些错误并没有为您的用户修复

出于所有意图和目的,这些已修复的错误现在是“隐藏错误”(适用于仍需要以 .net 4.0 为目标的开发人员。

最好的一点是,无论您使用 VS 2010 还是 VS 2012,都没有关系。安装 .net 4.5 后,错误就会被隐藏。

查看这篇文章了解更多详情:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

【讨论】:

  • 抱歉,这隐藏了问题的关键。仅当您依赖开发机器上的测试来告诉您应用程序何时工作时,才会存在问题。如果您可以在客户将使用的环境中进行测试(而且我认为大多数开发人员都处于这个位置),那么您就不会有这个问题。如果您有任何第二台机器要测试,包括虚拟机,那么这不是问题。
  • @JohnSaunders - 我们有一个完整的 QA 部门在我们的目标平台上进行测试。但许多研究表明,不同类型的测试会捕获不同类型的错误。我在调试时寻找的东西与我的 QA 团队要寻找的错误级别不同。同样,我的自动化测试不会注意到我在调试时会注意到的所有事情。最后,编写一个依赖于您无法修复的错误的功能需要花费 $$$。当发现错误时,离我的开发机器越远,它的成本就越高。 (特别是如果我已经“完成”了这个功能。)
  • “只有当您依赖开发机器上的测试来告诉您应用程序何时工作时,才会出现问题”——您是否暗示您不在开发机器上测试您的代码? ——这是一个真正的问题。特别是对于那些不知道它的人。 (而且由于微软不会公开宣布它,所以有很多开发者。)
  • 我在开发机器上执行的测试并不能确定我的代码是否有效。他们只确定 QA 部门在前五分钟内发现我的错误的可能性有多大。我在自己的机器上进行测试以减少尴尬。构建中的自动化单元测试和 QA 的真实测试决定了我的代码是否交付给客户。这些测试将包括在与客户类似的环境中进行的测试。在这种情况下,这将包括 Windows XP 和 .NET 4.0。
  • 很抱歉,如果您有 QA 部门,那么我根本看不到您的问题。我无法想象.NET 4.5 修复了如此多的 .NET 4.0 错误,如果您碰巧编写依赖于这些错误的代码,那将花费您很多钱。如果您认为自己会遇到这个问题,那么请尽早并经常在 Windows XP 和 .NET 4.0 上进行测试。那些永远不会看到错误的开发人员面临着最大的风险。
【解决方案3】:

我被 VS 测试版深深地烧伤了,卸载它们时从来没有遇到过令人讨厌的问题。微软制作精美的软件,但安装程序似乎总是最后一件事。我看到的问题是卸载没有删除组件,然后搞砸了零售版,安装程序没有指望其他已安装的 Microsoft 产品并破坏它们的配置。

此版本远未发布测试版,请不要将其安装在完成工作所需的机器上。这几乎排除了安装 VS2008 的可能性。虚拟机当然没问题。

【讨论】:

  • 我刚刚在论坛中发布了一些内容 [social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/…,因为安装似乎替换了 .NET Framework 4.0 程序集(我想我一定是疯了,但在 Reflector 中打开 System.Core 显示系统.Runtime.CompilerServices.ExtensionAttribute 丢失)。总之要小心那里
  • @Damian:这是 3.0 和 3.5 的一些问题:两者本质上只是基于 2.0 运行时的附加功能它们都带有 2.0 服务包(可以单独下载仅用于 2.0 的安装)确实改变了一些事情。看看 4.0,情况更糟:微软只是默默地通过 Windows 更新发布了一些新版本——原来的 4.0.30319.1 被 .225、.235 和 .237 取代——每个版本都修复并引入了错误或至少在特定领域。
【解决方案4】:

我昨天安装了RC,发现如下:

它会导致 VS2010 在运行单元测试时冻结(这可以通过使用 2012 来解决,或者在命令行上运行 mstest 来运行单元测试)

导致 VS2010 无法编译 C++ 项目,failing with a link error。即使卸载了VS2012 RC,这个问题仍然存在......所以我强烈建议不要现在安装它

【讨论】:

  • 安装 VS 2012 RC 后,我在 VS 2010 中运行单元测试时遇到了同样的问题。要解决此问题,请从解决方案的根目录中删除 testimpactdata.sdf 并在测试设置中打开测试影响。
  • 我也遇到了您描述的测试问题。我找到的解决方案是升级到 Visual Studio 2010 Service Pack 1。显然这是 2010 年的问题,而不是 2012 年的问题,但它只是通过安装 2012 候选版本触发的。即使在安装了 VS 2012 之后,您也应该能够安装服务包,并且仍然可以解决问题。这些天我用 C++ 做的不多,所以我不能评论它是否也修复了。 VS 2010 SP1 可以在这里找到:microsoft.com/en-us/download/details.aspx?id=23691
【解决方案5】:

所以阅读所有答案,归结为:

  • 安装VS2012后,.NET 4.5会覆盖.NET 4.0。
  • 您仍然可以使用 VS2010,但它会针对 .NET 4.5 进行编译(因为 .NET 4.0 被替换)。
  • 危险:您无法再将项目安全地部署在运行 .NET 4.0 的机器上。

【讨论】:

    【解决方案6】:

    可以,但始终建议先安装早期版本。 如果您想在 VS 11 中打开 Visual Studio 2010 项目,然后再返回,请确保您没有使用 Visual Studio 11 的新功能

    【讨论】:

      【解决方案7】:

      它可以并排安装,但它甚至不是测试版..! 不要指望它真的有效!

      请参阅我们遇到的this 问题,以及Damian 在另一条评论中提到的this

      【讨论】:

        【解决方案8】:

        我昨天做了,今天卸载了...

        显然,出了点问题,因为我之前构建的一些应用程序开始给出关于“无法加载模块 bla bla bla ...”的奇怪错误,所以我卸载了所有内容,强制重新安装 .NET Framework 4.0,现在一切正常又好了!

        【讨论】:

          【解决方案9】:

          这肯定会导致问题。 例如:

          在 .NET 4.0 中,每当尝试在 LINQ-2-Entities 中保存枚举值时,您都猜到了: 当你有 4.0 时出错 在安装了 4.5 的机器上工作时取得了巨大的成功(是的,即使程序集以 4.0 客户端配置文件为目标!)

          所以在使用这个没有任何反向兼容性的好新功能时要注意。

          【讨论】:

            【解决方案10】:

            它在并排安装的 32 位机器上运行良好,但有时您可能会出错,但重新安装或卸载以前的安装可以安装它。我是在项目中期完成的,它也不影响以前的工作。

            【讨论】:

              【解决方案11】:

              如前所述,官方可以,但可能会导致问题。

              如果你想运行 Visual Studio 2012,我认为最安全的方法是使用免费的 WMWare VMplayer 并在其上安装 Windows 8,然后在那里安装 Visual Studio 2012。您需要至少 4 GB 的 RAM,但使用 8 GB 或更多时运行得更好。反正我就是这么做的。

              【讨论】:

              • 您能更具体地说明您指的是什么问题吗?
              【解决方案12】:

              我的主要问题是安装 VS2012 RTM 后无法再从 VS2010 运行单元测试!它只是永远挂起。甚至无法阻止它。

              所以现在我想说,MS 又做了一次,并排不起作用。

              我认为这可能是因为这是一个没有应用 SP1 的 VS2010 安装。

              【讨论】:

              • 您能否具体说明您所指的“VS2010 测试”是什么?
              • 我也有这个问题 - 尝试查看任何测试输出会导致 vs2010 和 vs2013(所有最新补丁/更新)中的可重现挂起。我期待你的微软做得更好。
              【解决方案13】:

              好消息是安装会创建一个系统还原点。外部硬盘备份是解决此问题的方法,直到真正的版本出来或您从头开始一个项目。

              【讨论】:

                【解决方案14】:

                我注意到安装 VS2012 后 Web 和负载测试解决方案出现故障。已复制并升级到 2012,它们工作正常。只是VS2010不能再启动试运行了。

                【讨论】:

                  【解决方案15】:

                  是的,您还可以在 2010 年轻松打开 2012 年的项目,而不会出现问题。只要它还在使用 .net 4.0。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-12-28
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-02-19
                    • 2012-08-17
                    • 1970-01-01
                    相关资源
                    最近更新 更多