是否可以将Visual Studio 2012与Visual Studio 2010并排安装?


103

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


1
是的,两者都可以,即使是在同一时间。我试过了。
埃里克·尹

3
Visual Studio可以并排安装,但要意识到VS 2012附带了.NET 4.5,它将覆盖.NET 4.0。除非您仍然需要为.NET 4.0计算机开发,否则这不是问题。
瓦卡诺

4
您仍然可以为.NET 4.0计算机进行开发。您只需要知道,当您在VS2012计算机上测试.NET 4.0应用程序时,您将测试的.NET版本不同于从未安装过.NET 4.5的客户。因此,在像您的客户将要使用的机器上进行测试,就可以了。
约翰·桑德斯

ahhhh能够提供有用的测试环境的客户的奢侈品!祝您好运:P
JumpingJezza 2012年

11
认为.NET 4.5与.NET 4.0完全兼容是不对的,实际上,在我们的案例中,它破坏了我们的一些解决方案。
Stefan Z Camilleri 2012年

Answers:


32

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


36
“可以”沿着侧面安装,这意味着安装程序将成功运行。但是,除非您想花两天时间卸载Visual Studio,.NET 4.5,修复.NET 4.0框架(确实会通过4.5 beta安装直接进行修改)以及卸载过多的SQL Server 2012工具,否则您不应该这样做。逐个。在您以前工作的4.0代码开始,所有内容都开始轰炸,并在仅包含注释的行上出现“对象引用”错误。
mclark1129

8
如果您打算继续为.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/…– Vaccano 2012
6

2
在虚拟机中尝试。我可以确认Mike C描述的问题。我认为VS2012是可以安全尝试的。我遇到了很多烦人的问题,最终我不信任我的机器,然后重新安装了Windows。
kenchilada 2012年

2
VS 2012 RTM是否仍然存在这些问题?
蒂姆·弗里森

1
@TimFriesen-我描述的问题仍在RTM中。这是Microsoft为.NET 4.5采用的“就地”升级计划的设计缺陷。
瓦卡诺

30

.net 4.5版本是就地升级。

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

Microsoft已尝试通过制作“ Target .net 4.0”功能来减轻此问题。但这与面向.net的早期版本(自.net 2.0开始并存)有很大不同。

因为它是就地升级,所以“ Target .net 4.0”不能真正以它为目标。他们所能做的最好的就是尝试手动删除一些“功能”。他们做到了(Scott Hanselman的博客文章涵盖了这一点)。

但是,不要让这让您以为自己确实在使用.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/


抱歉,但这隐藏了问题的要点。仅当您依靠开发计算机上的测试来告诉您应用程序何时工作时,问题才存在。如果您可以在客户将使用的环境中进行测试(并且我认为大多数开发人员都处于这一位置),那么您就不会遇到这个问题。如果您要测试第二台计算机(包括虚拟机),那么这不是问题。
约翰·桑德斯

4
@JohnSaunders-我们有一个完整的质量检查部门,可以在目标平台上进行测试。但是许多研究表明,不同类型的测试会捕获不同类型的错误。我在调试时寻找的东西与我的质量检查小组所发现的错误级别不同。同样,我的自动化测试不会注意到调试时会注意到的所有事情。最后,编写一个依赖于无法修复的错误的功能将花费$$$。当发现错误时,离我的开发机器越远,它的成本就越高。(特别是如果我“完成”了该功能。)
Vaccano,2012年

“仅当您依靠开发计算机上的测试来告诉您应用程序何时工作时,问题才会存在” –您是否暗示您不在开发计算机上测试代码?-这是一个真正的问题。特别是对于那些不知道的人。(并且由于Microsoft不会公开宣布它,所以有很多开发人员。)
Vaccano,2012年

我在开发计算机上执行的测试无法确定我的代码是否有效。他们只会确定质量检查部门在前五分钟内是否会发现我的错误。我在自己的机器上进行测试以减少尴尬。是构建中的自动化单元测试以及QA的实际测试确定我的代码是否交付给客户。这些测试将包括在类似客户环境中的测试。在这种情况下,它将包括Windows XP和.NET 4.0。
约翰·桑德斯

很抱歉,但是如果您有质量检查部门,那么我根本看不到您的问题。我无法想象有这么多.NET 4.5修复的.NET 4.0错误,如果您碰巧编写了依赖于这些错误的代码,那将花费您很多钱。如果您认为会遇到问题,请尽早进行测试,并经常在Windows XP和.NET 4.0上进行测试。那些开发人员永远不会看到风险最大的错误。
约翰·桑德斯

10

VS beta令我非常恼火,将它们卸载从未遇到过讨厌的问题。微软制作了出色的软件,但安装程序似乎始终是最后要做的事情。我所看到的问题是,卸载后并没有删除会破坏零售版的组件,并且安装程序没有指望其他已安装的Microsoft产品并破坏其配置。

这个版本比Beta测试版要早得多,请不要将其安装在完成工作所需的计算机上。这几乎排除了安装VS2008的麻烦。VM当然可以。


2
我刚刚在论坛上发布了一些内容[ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread / ...,因为似乎安装取代了.NET Framework 4.0程序集(我以为我一定疯了,但是打开了Reflector中的System.Core显示缺少System.Runtime.CompilerServices.ExtensionAttribute)。简而言之,要小心那里
Damian

@Damian:这是3.0和3.5的问题:本质上,这两个都是基于2.0运行时的附加功能,但是它们都附带了一个2.0 Service Pack(可以单独下载以用于仅2.0的安装),但确实发生了变化引擎盖下的一些东西。看着4.0甚至更糟:Microsoft只是通过Windows Update悄无声息地发行了一些新版本-原始的4.0.30319.1被.225,.235和.237所取代-它们每个都修复并引入了错误或至少在Windows中有不同的行为。具体领域。
springy76 2011年

7

我昨天安装了RC,发现以下内容:

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

这会导致VS2010无法编译C ++项目,并因链接错误而失败。即使在卸载VS2012 RC之后,此问题仍然存在...因此,强烈建议您不要立即安装它


1
安装VS 2012 RC后,在VS 2010中运行单元测试时遇到了相同的问题。要解决此问题,请从解决方案的根目录中删除testimpactdata.sdf,然后在测试设置中启用“测试影响力”。
谢尔盖·西罗特金

2
我也遇到了您正在描述的测试问题。我发现的解决方案是升级到Visual Studio 2010 Service Pack1。显然,这是2010年的问题,而不是2012年的问题,但这只是通过安装2012年发行候选版本而触发的。即使在安装了VS 2012之后,您也应该能够安装Service Pack,并且仍然可以解决问题。这些天我对C ++的工作不多,因此如果此问题也得到解决,我也无法发表评论。VS 2010 SP1可以在这里找到:microsoft.com/en-us/download/details.aspx?
id=23691

6

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

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

5

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


2

它可以并排安装,但不是beta版。不要指望它能真正起作用!

看到我们遇到的这个问题,Damian在另一条评论中提到的。


2

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

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


2

它肯定会引起问题。例如:

在.NET 4.0中,每当有人尝试在LINQ-2-Entities中保存枚举值时,您都会猜到:在安装了4.5的计算机上工作时,如果4.0成功,则会出现错误(即使程序集针对4.0客户端,也是如此个人资料!)

因此,在使用此良好的新功能时,请注意任何反向兼容性。


2

它可以在并行安装的32位计算机上很好地工作,但是有时您会遇到错误,但是可以重新安装或卸载以前的安装。我是在项目中期完成的,它也不会影响以前的工作。


0

如前所述,正式可以,但是会引起问题。

如果您想运行Visual Studio 2012,我认为最安全的方法是使用免费的WMWare VMplayer并在其上安装Windows 8,然后在此处安装Visual Studio 2012。您至少需要4 GB的RAM,但在8 GB或更高的容量下运行效果更好。无论如何我就是这么做的。


您能否更具体地说明所指的问题?
约翰·桑德斯

0

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

因此,现在我要说的是,MS又做了一次,并排不起作用。

我认为这可能是由于这是未安装SP1的VS2010安装。


您能否具体说明所指的“ VS2010中的测试”?
约翰·桑德斯

我也有这个问题-尝试查看任何测试输出会导致vs2010和vs2013(所有最新的修补程序/更新)中的可重现挂起。我希望您对Microsoft有更好的了解。
福西2015年

0

好消息是安装使系统还原点。外部硬盘驱动器备份是解决此问题的方法,直到出现实际版本或您从头开始项目为止。


0

我注意到,VS2012安装后,Web和负载测试解决方案似乎已损坏。已复印并升级到2012,它们可以正常工作。只是VS2010无法再启动测试运行。


-1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.