Dapatkah Visual Studio 2012 diinstal berdampingan dengan Visual Studio 2010?

103

Akankah Visual Studio 2012 mengganggu / merusak .NET 4 dan / atau Visual Studio 2010 jika diinstal secara berdampingan pada contoh Windows yang sama?

Chris Pietschmann
sumber
1
ya, keduanya bekerja, bahkan pada waktu yang sama. Saya mencoba.
Eric Yin
3
Visual Studio dapat diinstal secara berdampingan, tetapi sadari bahwa VS 2012 hadir dengan .NET 4.5, yang menimpa .NET 4.0. Tidak masalah kecuali Anda masih perlu mengembangkan untuk mesin .NET 4.0.
Vaccano
4
Anda masih dapat mengembangkan untuk mesin .NET 4.0. Anda hanya perlu tahu bahwa, saat Anda menguji aplikasi .NET 4.0 di mesin VS2012, Anda akan menguji versi .NET yang berbeda dari pelanggan yang belum pernah menginstal .NET 4.5. Jadi uji pada mesin seperti yang akan digunakan pelanggan Anda, dan Anda akan baik-baik saja.
John Saunders
ahhhh kemewahan pelanggan yang menyediakan lingkungan pengujian yang berguna! Semoga berhasil dengan itu: P
JumpingJezza
11
Merupakan kesalahan untuk berpikir bahwa .NET 4.5 sepenuhnya kompatibel dengan .NET 4.0, sebenarnya tidak, dan pada kenyataannya, dalam kasus kami, ini telah merusak beberapa solusi kami.
Stefan Z Camilleri

Jawaban:

32

Seperti yang dikatakan Reigo, ya. Berikut tautan ke halaman resmi Microsoft dengan informasi yang diberikan Reigo, dan detail selengkapnya: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx

Niklas Söderberg
sumber
36
Ini "dapat" dipasang di sepanjang sisi, yang berarti penginstal akan berhasil berjalan. Namun, Anda tidak boleh melakukan ini kecuali jika Anda ingin menghabiskan dua hari mencopot Visual Studio, .NET 4.5, memperbaiki kerangka kerja .NET 4.0 Anda (yang TIDAK langsung diubah oleh penginstalan beta 4.5), dan menghapus sebagian besar alat SQL Server 2012 satu per satu. Semua setelah kode 4.0 Anda yang sebelumnya berfungsi mulai meledak dengan kesalahan "Referensi Objek" pada baris yang hanya berisi komentar.
mclark1129
8
Ini sangat berbahaya jika Anda berencana untuk terus mengembangkan .net 4.0. Ini karena mesin pengembangan Anda akan menggunakan binari .net 4.5 (karena .net 4.5 adalah peningkatan di tempat). Biner ini memiliki perbaikan bug yang akan "disembunyikan" dari Anda saat men-debug penargetan .net 4.0. Tetapi ketika Anda menyebarkan ke mesin yang hanya menjalankan .net 4.0 (yaitu windows xp) maka bug tersebut tidak diperbaiki untuk pengguna Anda . Lihat posting ini untuk lebih jelasnya: social.msdn.microsoft.com/Forums/en-US/wpf/thread/…
Vaccano
2
Cobalah di mesin virtual. Saya dapat mengonfirmasi masalah yang dijelaskan Mike C. Saya berasumsi VS2012 akan aman untuk dicoba. Saya mengalami begitu banyak masalah yang mengganggu sehingga saya akhirnya tidak mempercayai mesin saya dan menginstal ulang Windows.
kenchilada
2
Apakah masalah ini masih ada dengan VS 2012 RTM?
Tim Friesen
1
@TimFriesen - Masalah yang saya jelaskan masih di RTM. Ini adalah cacat desain dengan rencana peningkatan "di tempat" yang telah diadopsi Microsoft untuk .NET 4.5.
Vaccano
30

Rilis .net 4.5 adalah peningkatan di tempat.

Ini berarti bahwa binari untuk .net 4.0 akan DIGANTI oleh binari untuk .net 4.5 .

Microsoft telah mencoba untuk mengurangi masalah yang disebabkan ini dengan membuat fitur "Target .net 4.0". Tapi ini sangat berbeda dengan penargetan versi .net sebelumnya (yang sudah bersebelahan sejak .net 2.0).

Karena ini adalah peningkatan di tempat, "Target .net 4.0" tidak dapat benar-benar menargetkannya. Hal terbaik yang dapat mereka lakukan adalah mencoba menghapus beberapa "fitur" secara manual. Mereka telah melakukan ini (Scott Hanselman memiliki posting blog yang membahas ini).

Tapi jangan biarkan ini membodohi Anda dengan berpikir bahwa Anda benar-benar menggunakan .net 4.0. Setiap bug yang diperbaiki oleh .net 4.5 akan diperbaiki pada mesin pengembangan Anda dan bukan untuk pengguna .net 4.0 Anda.

Jadi, jika Anda sedang mengembangkan aplikasi "penargetan .net 4.0" dan Anda telah menginstal .net 4.5, maka Anda berisiko. Jika Anda tidak sengaja menggunakan bug tetap, bug tersebut tidak akan rusak saat Anda melakukan debug.

Ketika Anda menerapkan aplikasi Anda ke mesin yang hanya menjalankan .net 4.0 (yaitu windows xp) maka bug tersebut tidak diperbaiki untuk pengguna Anda .

Untuk semua maksud dan tujuan, bug yang diperbaiki tersebut sekarang disebut "Bug Tersembunyi" (untuk pengembang yang masih perlu menargetkan .net 4.0.

Bagian terbaiknya adalah tidak masalah jika Anda menggunakan VS 2010 atau VS 2012. Setelah .net 4.5 diinstal, bug akan disembunyikan.

Lihat posting ini untuk lebih jelasnya: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

Vaccano
sumber
Maaf, tapi ini menyembunyikan inti masalahnya. Masalahnya hanya ada jika Anda bergantung pada pengujian Anda pada mesin pengembangan untuk memberi tahu Anda saat aplikasi Anda berfungsi. Jika Anda dapat menguji di lingkungan yang akan digunakan pelanggan Anda (dan menurut saya sebagian besar pengembang berada dalam posisi ini), maka Anda tidak memiliki masalah ini. Jika Anda memiliki mesin kedua untuk diuji, termasuk mesin virtual, maka ini bukan masalah.
John Saunders
4
@JohnSaunders - Kami memiliki seluruh departemen QA yang menguji platform target kami. Tetapi banyak penelitian telah menunjukkan bahwa berbagai jenis pengujian menangkap berbagai jenis bug. Hal-hal yang saya cari saat men-debug bukanlah tingkat bug yang sama yang akan ditemukan oleh tim QA saya. Sekali lagi, pengujian otomatis saya tidak akan memperhatikan semua hal yang akan saya perhatikan saat debugging. Dan terakhir, menulis fitur yang bergantung pada bug yang tidak dapat Anda perbaiki harganya $$$. Ketika bug ditemukan, semakin jauh dari mesin pengembangan saya, semakin mahal biayanya. (Terutama jika saya telah "menyelesaikan" fitur tersebut.)
Vaccano
"Masalahnya hanya muncul jika Anda bergantung pada pengujian Anda pada mesin pengembangan untuk memberi tahu Anda saat aplikasi Anda berfungsi" - Apakah Anda menyiratkan bahwa Anda tidak menguji kode Anda di mesin pengembangan? - Ini masalah nyata. Apalagi bagi yang belum mengetahuinya. (Dan karena Microsoft tidak akan mengumumkannya secara publik, itu banyak pengembang.)
Vaccano
Tes yang saya lakukan di mesin pengembangan saya tidak menentukan apakah kode saya berfungsi atau tidak. Mereka hanya menentukan seberapa besar kemungkinan departemen QA akan menemukan bug saya dalam lima menit pertama atau tidak. Saya menguji di mesin saya sendiri untuk mengurangi rasa malu. Ini adalah pengujian unit otomatis dalam build, dan pengujian nyata oleh QA yang menentukan apakah kode saya dikirimkan ke pelanggan atau tidak. Pengujian tersebut akan mencakup pengujian di lingkungan seperti lingkungan pelanggan. Dalam kasus ini, itu akan mencakup Windows XP dan .NET 4.0.
John Saunders
Maaf, tetapi jika Anda memiliki departemen QA, saya tidak melihat masalah Anda sama sekali. Saya tidak dapat membayangkan ada begitu banyak bug .NET 4.0 yang diperbaiki oleh .NET 4.5 yang akan menghabiskan banyak uang jika Anda kebetulan menulis kode yang bergantung pada bug tersebut. Jika Anda merasa Anda akan mengalami masalah itu, maka uji lebih awal dan sering-seringlah pada Windows XP dan .NET 4.0. Para pengembanglah yang tidak akan pernah melihat bug yang memiliki risiko terbesar.
John Saunders
10

Saya telah dibakar dengan parah oleh VS beta, tidak pernah mengalami masalah buruk untuk menghapusnya. Microsoft membuat perangkat lunak yang bagus tetapi penginstal tampaknya selalu menjadi hal terakhir yang diurus. Masalah yang saya lihat adalah uninstall tidak menghapus komponen yang kemudian mengacaukan edisi ritel dan penginstal tidak menghitung produk Microsoft lain yang diinstal dan menghancurkan konfigurasi mereka.

Yang satu ini jauh sebelum versi beta, jangan tidak menginstalnya pada mesin yang Anda butuhkan untuk mendapatkan pekerjaan Anda selesai. Yang cukup banyak menghalangi menginstal VS2008. VM baik-baik saja tentu saja.

Hans Passant
sumber
2
Saya baru saja memposting sesuatu di forum [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/… karena tampaknya penginstalan tersebut menggantikan rakitan .NET Framework 4.0 (saya pikir saya pasti gila tetapi membuka System.Core di Reflector mengungkapkan bahwa System.Runtime.CompilerServices.ExtensionAttribute tidak ada). Singkatnya, berhati-hatilah di luar sana
Damian
@ Damian: Ini adalah beberapa masalah seperti pada 3.0 dan 3.5: Keduanya pada dasarnya hanya merupakan fitur tambahan berdasarkan runtime 2.0 tetapi keduanya datang bersama dengan paket layanan 2.0 (yang dapat diunduh secara terpisah untuk instalasi 2.0 saja) yang memang berubah beberapa hal di bawah tenda. Melihat 4.0 bahkan lebih buruk: Microsoft diam-diam mengirimkan beberapa versi baru melalui Pembaruan Windows - asli 4.0.30319.1 diganti dengan .225, .235 dan .237 - masing-masing memperbaiki dan memperkenalkan bug atau setidaknya perilaku yang berbeda di daerah tertentu.
springy76
7

Saya menginstal RC kemarin, dan menemukan yang berikut:

Ini menyebabkan VS2010 berhenti saat menjalankan pengujian unit (ini dapat diatasi dengan menggunakan 2012, atau mstest pada baris perintah untuk menjalankan pengujian unit Anda)

Ini menyebabkan VS2010 tidak dapat mengkompilasi proyek C ++, gagal dengan kesalahan tautan . Bahkan setelah menghapus VS2012 RC, masalah ini masih berlanjut ... jadi saya sangat menyarankan untuk tidak menginstalnya sekarang

Orion Edwards
sumber
1
Saya memiliki masalah yang sama dengan menjalankan tes unit di VS 2010 setelah saya menginstal VS 2012 RC. Untuk memperbaikinya, hapus testimpactdata.sdf dari root solusi Anda dan aktifkan Test Impact di setelan pengujian Anda.
Sergey Sirotkin
2
Saya mengalami masalah pengujian yang Anda jelaskan juga. Solusi yang saya temukan adalah memutakhirkan ke Visual Studio 2010 Paket Layanan 1. Tampaknya itu masalah pada 2010, bukan 2012, tetapi itu hanya dipicu dengan menginstal kandidat rilis 2012. Anda harus dapat menginstal paket layanan bahkan setelah VS 2012 diinstal, dan masalah tetap diperbaiki. Saya tidak melakukan banyak hal dengan C ++ akhir-akhir ini, jadi saya tidak dapat berkomentar jika sudah diperbaiki juga. VS 2010 SP1 dapat ditemukan di sini: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker
6

Jadi membaca semua jawaban, hasilnya adalah ini:

  • Setelah menginstal VS2012, .NET 4.5 akan menimpa .NET 4.0.
  • Anda masih dapat menggunakan VS2010, tetapi akan dikompilasi terhadap .NET 4.5 (karena .NET 4.0 diganti).
  • Bahaya: Anda tidak dapat lagi menerapkan proyek Anda dengan aman di komputer yang menjalankan .NET 4.0.
Jenny O'Reilly
sumber
5

Ya Anda bisa, tetapi selalu disarankan untuk menginstal versi sebelumnya terlebih dahulu. Dan jika Anda ingin membuka proyek Visual Studio 2010 di VS 11, dan kemudian kembali lagi, pastikan Anda tidak menggunakan fitur baru Visual Studio 11

Reigo Hein
sumber
2

Ini dapat diinstal secara berdampingan tetapi bahkan bukan versi beta ..! Jangan berharap itu benar-benar berhasil!

Lihat ini masalah kami mengalami, dan ini disebutkan oleh Damian dalam komentar lain.

Telinga Anjing
sumber
2

Saya melakukannya kemarin, dan mencopotnya hari ini ...

Rupanya, ada yang tidak beres karena beberapa aplikasi yang saya buat sebelumnya mulai memberikan kesalahan aneh terkait "tidak dapat memuat modul bla bla bla ...", jadi saya mencopot semuanya, memaksa penginstalan ulang .NET Framework 4.0 dan sekarang semuanya berfungsi dengan baik lagi!

Pedro Lamas
sumber
2

Ini pasti bisa menimbulkan masalah. Sebagai contoh:

Di .NET 4.0, setiap kali seseorang mencoba untuk menyimpan nilai enum di LINQ-2-Entities, jup, Anda dapat menebaknya: ERROR ketika Anda memiliki 4.0 SUKSES BESAR ketika bekerja pada mesin dengan 4.5 terpasang (ya meskipun perakitan menargetkan klien 4.0 Profil!)

Jadi perhatikan saat menggunakan fitur baru yang bagus ini yang tidak memiliki kompatibilitas mundur sama sekali.

Rvcl
sumber
2

Ini berfungsi dengan baik pada mesin 32-bit yang menginstal secara berdampingan tetapi kadang-kadang Anda bisa mendapatkan kesalahan tetapi menginstal ulang atau menghapus instalasi sebelumnya, itu dapat diinstal. Saya melakukannya di tengah proyek dan itu tidak mempengaruhi pekerjaan sebelumnya juga.

chandrabhan gurjar
sumber
0

Seperti yang telah dinyatakan, secara resmi Anda bisa tetapi itu bisa menimbulkan masalah.

Jika Anda ingin menjalankan Visual Studio 2012, menurut saya cara yang paling aman adalah dengan menggunakan VMplayer WMWare gratis dan menginstal Windows 8 di dalamnya kemudian menginstal Visual Studio 2012 di sana. Anda membutuhkan setidaknya 4 GB RAM tetapi bekerja lebih baik dengan 8 GB atau lebih. Itu yang saya lakukan.

Adam Mendoza
sumber
Bisakah Anda lebih spesifik tentang masalah apa yang Anda maksud?
John Saunders
0

Masalah utama saya adalah bahwa seseorang tidak dapat lagi menjalankan pengujian unit dari VS2010 setelah menginstal VS2012 RTM! Itu hanya hang selamanya. Bahkan tidak bisa menghentikannya.

Jadi untuk saat ini saya akan mengatakan, MS melakukannya lagi, berdampingan tidak berfungsi.

Saya pikir ini mungkin karena ini adalah instalasi VS2010 tanpa penerapan SP1.

nietras
sumber
Dapatkah Anda menjelaskan secara spesifik tentang "tes dari VS2010" yang Anda maksud?
John Saunders
saya juga memiliki masalah ini - mencoba untuk melihat hasil keluaran tes dalam bentuk hang yang dapat direproduksi di vs2010 dan vs2013 (semua tambalan / pembaruan terbaru). saya berharap lebih baik dari Anda microsoft.
fusi
0

Kabar baiknya adalah pemasangan membuat titik pemulihan sistem. Pencadangan hard drive eksternal adalah solusi untuk ini sampai versi asli keluar atau Anda memulai proyek dari awal.

MvcCmsJon
sumber
0

Saya perhatikan bahwa solusi Web & Loadtesting tampak rusak setelah pemasangan VS2012. Telah mengambil salinan dan meningkatkan ke 2012 dan mereka bekerja dengan baik. Hanya saja VS2010 tidak dapat lagi memulai uji coba.

Big Ian
sumber
-1

Ya, Anda juga dapat dengan mudah membuka proyek dari tahun 2012 di tahun 2010 tanpa masalah. asalkan masih menggunakan .net 4.0.

JGilmartin
sumber