Visual Studio 2012 สามารถติดตั้งเคียงข้างกันกับ Visual Studio 2010 ได้หรือไม่


103

Visual Studio 2012 จะรบกวน / ทำลาย. NET 4 และ / หรือ Visual Studio 2010 หากติดตั้งเคียงข้างกันบนอินสแตนซ์ของ Windows เดียวกันหรือไม่


1
ใช่ทั้งสองงานแม้ในเวลาเดียวกัน ฉันเหนื่อย.
Eric Yin

3
สามารถติดตั้ง Visual Studio เคียงข้างกันได้ แต่โปรดทราบว่า VS 2012 มาพร้อมกับ. NET 4.5 ซึ่งเขียนทับ. NET 4.0 ไม่ใช่ปัญหาเว้นแต่คุณยังต้องพัฒนาสำหรับเครื่อง. NET 4.0
Vaccano

4
คุณยังสามารถพัฒนาสำหรับเครื่อง. NET 4.0 ได้ คุณต้องรู้ว่าเมื่อคุณทดสอบแอปพลิเคชัน. NET 4.0 บนเครื่อง VS2012 ของคุณคุณจะต้องทดสอบ. NET เวอร์ชันที่แตกต่างจากลูกค้าที่ไม่เคยติดตั้ง. NET 4.5 ดังนั้นทดสอบกับเครื่องที่ลูกค้าของคุณจะใช้แล้วคุณจะโอเค
John Saunders

อ่าความหรูหราของลูกค้าที่ให้สภาพแวดล้อมการทดสอบที่เป็นประโยชน์! ขอให้โชคดีนะ: P
JumpingJezza

11
เป็นความผิดพลาดที่คิดว่า. NET 4.5 เข้ากันได้กับ. NET 4.0 อย่างสมบูรณ์ไม่ใช่และในความเป็นจริงในกรณีของเรามันทำให้โซลูชันบางอย่างของเราเสียหาย
Stefan Z Camilleri

คำตอบ:


32

อย่างที่เรโกะบอกใช่ นี่คือลิงค์ไปยังหน้า Microsoft อย่างเป็นทางการพร้อมข้อมูลที่ Reigo ให้มาและรายละเอียดเพิ่มเติม: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx


36
มัน "สามารถ" ติดตั้งด้านข้างซึ่งหมายความว่าโปรแกรมติดตั้งจะทำงานได้สำเร็จ อย่างไรก็ตามคุณไม่ควรทำเช่นนี้เว้นแต่คุณต้องการใช้เวลาสองวันในการถอนการติดตั้ง Visual Studio, .NET 4.5, ซ่อมแซมกรอบงาน. NET 4.0 ของคุณ (ซึ่งได้รับการแก้ไขโดยตรงโดยการติดตั้ง 4.5 เบต้า) และถอนการติดตั้งเครื่องมือ SQL Server 2012 มากมายเหลือเฟือ ทีละคน. ทั้งหมดหลังจากโค้ด 4.0 ที่ใช้งานได้ก่อนหน้านี้ของคุณเริ่มระเบิดออกโดยมีข้อผิดพลาด "Object Reference" ในบรรทัดที่มีเฉพาะความคิดเห็น
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

2
ลองใช้ในเครื่องเสมือน ฉันสามารถยืนยันปัญหาที่ Mike C อธิบายไว้ได้ ฉันคิดว่า VS2012 จะปลอดภัยที่จะลอง ฉันพบปัญหาที่น่ารำคาญมากมายจบลงด้วยการไม่ไว้วางใจเครื่องของฉันและติดตั้ง Windows ใหม่
kenchilada

2
ปัญหาเหล่านี้ยังคงมีอยู่ใน VS 2012 RTM หรือไม่
Tim Friesen

1
@TimFriesen - ปัญหาที่ฉันอธิบายยังอยู่ใน RTM นี่เป็นข้อบกพร่องในการออกแบบด้วยแผนการอัปเกรด "แทน" ที่ Microsoft ได้นำมาใช้สำหรับ. NET 4.5
Vaccano

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/


ขออภัยนี่เป็นการซ่อนประเด็นของปัญหา ปัญหาจะเกิดขึ้นก็ต่อเมื่อคุณขึ้นอยู่กับการทดสอบในเครื่องพัฒนาของคุณเพื่อบอกคุณว่าแอปพลิเคชันของคุณทำงานเมื่อใด หากคุณสามารถทดสอบในสภาพแวดล้อมที่ลูกค้าของคุณจะใช้ (และฉันคิดว่านักพัฒนาส่วนใหญ่อยู่ในตำแหน่งนี้) แสดงว่าคุณไม่มีปัญหานี้ หากคุณมีเครื่องที่สองที่จะทดสอบรวมถึงเครื่องเสมือนแสดงว่านี่ไม่ใช่ปัญหา
John Saunders

4
@JohnSaunders - เรามีแผนก QA ทั้งหมดที่ทดสอบบนแพลตฟอร์มเป้าหมายของเรา แต่การศึกษาจำนวนมากแสดงให้เห็นว่าการทดสอบประเภทต่างๆจับข้อบกพร่องประเภทต่างๆ สิ่งที่ฉันมองหาเมื่อทำการดีบักไม่ใช่จุดบกพร่องในระดับเดียวกับที่ทีม QA ของฉันจะพบ อีกครั้งการทดสอบอัตโนมัติของฉันจะไม่สังเกตเห็นทุกสิ่งที่ฉันจะสังเกตเห็นในขณะที่แก้ไขข้อบกพร่อง และสุดท้ายการเขียนคุณลักษณะที่ขึ้นอยู่กับข้อบกพร่องที่คุณไม่สามารถแก้ไขค่าใช้จ่ายได้ $$$ เมื่อพบข้อบกพร่องยิ่งจากเครื่องพัฒนาของฉันมีค่าใช้จ่ายมากขึ้น (โดยเฉพาะอย่างยิ่งถ้าฉัน "เสร็จสิ้น" คุณสมบัตินี้)
Vaccano

"ปัญหาจะเกิดขึ้นก็ต่อเมื่อคุณขึ้นอยู่กับการทดสอบบนเครื่องพัฒนาของคุณเพื่อบอกคุณว่าแอปพลิเคชันของคุณทำงานเมื่อใด" - หมายความว่าคุณไม่ได้ทดสอบโค้ดของคุณบนเครื่องพัฒนาของคุณหรือไม่? - นี่คือปัญหาที่แท้จริง โดยเฉพาะอย่างยิ่งสำหรับผู้ที่ไม่รู้เรื่องนี้ (และเนื่องจาก Microsoft จะไม่เปิดเผยต่อสาธารณะนั่นก็คือนักพัฒนาจำนวนมาก)
Vaccano

การทดสอบที่ฉันทำในเครื่องพัฒนาของฉันไม่ได้ระบุว่ารหัสของฉันทำงานได้หรือไม่ พวกเขากำหนดความเป็นไปได้ที่แผนก QA จะพบข้อบกพร่องของฉันในห้านาทีแรกหรือไม่เท่านั้น ฉันทดสอบบนเครื่องของตัวเองเพื่อลดความลำบากใจ เป็นการทดสอบหน่วยอัตโนมัติในรุ่นและการทดสอบจริงโดย QA ที่กำหนดว่ารหัสของฉันส่งถึงลูกค้าหรือไม่ การทดสอบเหล่านั้นจะรวมถึงการทดสอบในสภาพแวดล้อมเช่นเดียวกับลูกค้า ในกรณีนี้จะรวมถึง Windows XP และ. NET 4.0
John Saunders

ฉันขอโทษ แต่ถ้าคุณมีแผนก QA ฉันก็ไม่เห็นปัญหาของคุณเลย ฉันนึกไม่ถึงว่ามีข้อบกพร่อง. NET 4.0 จำนวนมากที่แก้ไขโดย. NET 4.5 ซึ่งจะทำให้คุณต้องเสียเงินเป็นจำนวนมากหากคุณเขียนโค้ดขึ้นอยู่กับจุดบกพร่องเหล่านั้น หากคุณคิดว่าคุณจะมีปัญหานั้นให้ทดสอบก่อนและบ่อยครั้งบน Windows XP และ. NET 4.0 เป็นนักพัฒนาที่ไม่เคยเห็นข้อบกพร่องที่มีความเสี่ยงมากที่สุด
John Saunders

10

ฉันถูก VS betas เผาอย่างหนักไม่เคยมีปัญหาที่น่ารังเกียจในการถอนการติดตั้ง Microsoft สร้างซอฟต์แวร์ที่ดี แต่ดูเหมือนว่าโปรแกรมติดตั้งจะเป็นสิ่งสุดท้ายที่ได้รับการดูแลเสมอ ปัญหาที่ฉันเคยเห็นคือการถอนการติดตั้งโดยไม่ถอดส่วนประกอบที่ทำให้สกรูรุ่นขายปลีกและตัวติดตั้งไม่นับผลิตภัณฑ์อื่น ๆ ของ Microsoft ที่ติดตั้งและทำลายการกำหนดค่า

หนึ่งนี้อยู่ไกลก่อนเบต้าที่ไม่ได้ติดตั้งบนเครื่องคุณต้องได้รับงานของคุณทำ ซึ่งค่อนข้างกีดกันการติดตั้ง VS2008 VM นั้นดีแน่นอน


2
ฉันเพิ่งโพสต์บางอย่างในฟอรัม [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/…เพราะดูเหมือนว่าการติดตั้งจะแทนที่แอสเซมบลีของ. NET Framework 4.0 (ฉันคิดว่าฉันคงบ้าไปแล้ว แต่การเปิดขึ้น System.Core ใน Reflector เปิดเผยว่า System.Runtime.CompilerServices.ExtensionAttribute หายไป) ในระยะสั้นโปรดระวัง
Damian

@Damian: เป็นปัญหาบางอย่างเช่นเดียวกับ 3.0 และ 3.5: โดยพื้นฐานแล้วทั้งสองเป็นเพียงคุณสมบัติเพิ่มเติมที่ใช้รันไทม์ 2.0 แต่ทั้งสองอย่างมาพร้อมกับเซอร์วิสแพ็ค 2.0 (ซึ่งสามารถดาวน์โหลดแยกต่างหากสำหรับการติดตั้ง 2.0 เท่านั้น) ซึ่งเปลี่ยนไปอย่างแน่นอน บางอย่างภายใต้ประทุน เมื่อมองไปที่ 4.0 มันแย่กว่านั้น: Microsoft เพิ่งจัดส่งเวอร์ชันใหม่บางรุ่นผ่านทาง Windows Update โดยไม่ได้ตั้งใจ - 4.0.30319.1 ดั้งเดิมถูกแทนที่ด้วย. 225, .235 และ. 237 - แต่ละตัวแก้ไขและแนะนำข้อบกพร่องหรืออย่างน้อยพฤติกรรมที่แตกต่างกันใน พื้นที่เฉพาะ
springy76

7

ฉันติดตั้ง RC เมื่อวานนี้และพบสิ่งต่อไปนี้:

ทำให้ VS2010 ค้างเมื่อเรียกใช้การทดสอบหน่วย (สามารถแก้ไขได้โดยใช้ 2012 หรือ mstest บนบรรทัดคำสั่งเพื่อเรียกใช้การทดสอบหน่วยของคุณ)

มันทำให้เกิด VS2010 ไม่ได้ที่จะสามารถรวบรวมโครงการ C ++ ล้มเหลวด้วยข้อผิดพลาดการเชื่อมโยง แม้ว่าหลังจากถอนการติดตั้ง VS2012 RC แล้วปัญหานี้ยังคงมีอยู่ ... ดังนั้นฉันขอแนะนำอย่างยิ่งให้ไม่ติดตั้งในตอนนี้


1
ฉันมีปัญหาเดียวกันกับการเรียกใช้การทดสอบหน่วยใน VS 2010 หลังจากที่ฉันติดตั้ง VS 2012 RC ในการแก้ไขปัญหานี้ให้ลบ testimpactdata.sdf จากรูทของโซลูชันของคุณและเปิด Test Impact ในการตั้งค่าการทดสอบของคุณ
Sergey Sirotkin

2
ฉันพบปัญหาการทดสอบที่คุณอธิบายด้วย วิธีแก้ปัญหาที่ฉันพบคือการอัปเกรดเป็น Visual Studio 2010 Service Pack 1 เห็นได้ชัดว่าเป็นปัญหาในปี 2010 ไม่ใช่ปี 2012 แต่เพิ่งถูกทริกเกอร์โดยการติดตั้งผู้สมัครรุ่น 2012 คุณควรจะสามารถติดตั้ง service pack ได้แม้จะติดตั้ง VS 2012 แล้วและยังคงได้รับการแก้ไขปัญหา วันนี้ฉันไม่ได้ใช้ C ++ มากนักดังนั้นฉันจึงไม่สามารถแสดงความคิดเห็นได้ว่ามันได้รับการแก้ไขแล้วหรือไม่ VS 2010 SP1 สามารถพบได้ที่นี่: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker

6

ดังนั้นการอ่านคำตอบทั้งหมดมันลงมาดังนี้:

  • หลังจากติดตั้ง VS2012 แล้ว. NET 4.5 จะเขียนทับ. NET 4.0
  • คุณยังคงสามารถใช้ VS2010 ได้ แต่จะคอมไพล์กับ. NET 4.5 (เนื่องจาก. NET 4.0 ถูกแทนที่)
  • อันตราย:คุณไม่สามารถปรับใช้โปรเจ็กต์ของคุณบนเครื่องที่รัน. NET 4.0 ได้อย่างปลอดภัยอีกต่อไป

5

ใช่คุณทำได้ แต่ขอแนะนำให้ติดตั้งเวอร์ชันก่อนหน้านี้ก่อนเสมอ และถ้าคุณต้องการเปิดโครงการ Visual Studio 2010 ใน VS 11 แล้วกลับมาอีกครั้งในภายหลังตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้คุณลักษณะใหม่ของ Visual Studio 11



2

ฉันทำเมื่อวานนี้และถอนการติดตั้งวันนี้ ...

เห็นได้ชัดว่ามีบางอย่างผิดพลาดเนื่องจากแอพบางตัวที่ฉันสร้างขึ้นก่อนเริ่มมีข้อผิดพลาดแปลก ๆ เกี่ยวกับ "ไม่สามารถโหลดโมดูล bla bla bla ... " ฉันจึงถอนการติดตั้งทุกอย่างบังคับให้ติดตั้ง. NET Framework 4.0 ใหม่และตอนนี้ทุกอย่างทำงานได้ดีอีกครั้ง!


2

มันสามารถทำให้เกิดปัญหาได้แน่นอน ตัวอย่างเช่น:

ใน. NET 4.0 เมื่อใดก็ตามที่พยายามบันทึกค่า enum ใน LINQ-2-Entities คุณเดาได้ว่า: ข้อผิดพลาดเมื่อคุณมี 4.0 GREAT SUCCESS เมื่อทำงานกับเครื่องที่ติดตั้ง 4.5 (ใช่แม้ว่าแอสเซมบลีจะกำหนดเป้าหมายไคลเอนต์ 4.0 ข้อมูลส่วนตัว!)

ดังนั้นควรให้ความสนใจเมื่อใช้คุณลักษณะใหม่ที่ดีนี้ซึ่งไม่มีความเข้ากันได้แบบย้อนกลับใด ๆ


2

ทำงานได้ดีกับเครื่อง 32 บิตที่ติดตั้งเคียงข้างกัน แต่บางครั้งคุณอาจได้รับข้อผิดพลาด แต่สามารถติดตั้งใหม่หรือถอนการติดตั้งก่อนหน้านี้ได้ ฉันทำมันในช่วงกลางของโครงการและมันก็ไม่มีผลกับงานก่อนหน้านี้ด้วย


0

ตามที่ระบุไว้อย่างเป็นทางการคุณทำได้ แต่อาจทำให้เกิดปัญหาได้

หากคุณต้องการเรียกใช้ Visual Studio 2012 ฉันคิดว่าวิธีที่ปลอดภัยที่สุดคือใช้ WMWare VMplayer ฟรีและติดตั้ง Windows 8 จากนั้นติดตั้ง Visual Studio 2012 ที่นั่น คุณต้องมี RAM อย่างน้อย 4 GB แต่ทำงานได้ดีกว่าเมื่อใช้ 8 GB ขึ้นไป นั่นคือสิ่งที่ฉันทำต่อไป


คุณสามารถเจาะจงมากขึ้นเกี่ยวกับปัญหาที่คุณอ้างถึงได้หรือไม่?
John Saunders

0

ปัญหาหลักของฉันคือไม่สามารถเรียกใช้การทดสอบหน่วยจาก VS2010 ได้อีกต่อไปหลังจากติดตั้ง VS2012 RTM! มันก็ค้างตลอดไป ไม่สามารถหยุดมันได้

ตอนนี้ฉันจะบอกว่า MS ทำอีกครั้งไม่ทำงานเคียงข้างกัน

ฉันคิดว่านี่อาจเป็นเพราะเป็นการติดตั้ง VS2010 โดยไม่ใช้ SP1


คุณสามารถระบุเจาะจงเกี่ยวกับ "การทดสอบจาก VS2010" ที่คุณอ้างถึงได้หรือไม่
John Saunders

ฉันมีปัญหานี้เช่นกัน - พยายามดูผลลัพธ์ผลลัพธ์การทดสอบใด ๆ ในแฮงก์ที่ทำซ้ำได้ทั้งใน vs2010 และ vs2013 (แพตช์ / อัปเดตล่าสุดทั้งหมด) ฉันคาดหวังสิ่งที่ดีกว่าจากคุณ Microsoft
fusi

0

ข่าวดีคือการติดตั้งทำให้จุดคืนค่าระบบ การสำรองข้อมูลฮาร์ดไดรฟ์ภายนอกเป็นวิธีแก้ปัญหานี้จนกว่าจะมีเวอร์ชันจริงออกมาหรือคุณกำลังเริ่มโครงการตั้งแต่เริ่มต้น


0

ฉันสังเกตเห็นว่าโซลูชัน Web & Loadtesting ไม่ทำงานหลังจากติดตั้ง VS2012 ถ่ายสำเนาและอัปเกรดเป็นปี 2555 และใช้งานได้ดี เป็นเพียง VS2010 ไม่สามารถเริ่มการทดสอบได้อีกต่อไป


-1

ได้คุณยังสามารถเปิดโปรเจ็กต์จากปี 2012 ในปี 2010 ได้อย่างง่ายดายโดยไม่มีปัญหา ตราบเท่าที่ยังคงใช้. net 4.0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.