Bagaimana cara memaksa file solusi (SLN) untuk dibuka di Visual Studio 2013?

102

Mencoba membuka solusi VS 2012 (file SLN) secara eksplisit di VS 2013 berhasil. Cukup klik dua kali di Windows Explorer masih membukanya di VS 2012 sebagai gantinya.

Saya telah membaca " Visual Studio 2012 tidak mengubah solusi vs2010? " Dan mengikuti saran untuk "Simpan Sebagai ..." file solusi .

Masih terbuka di VS 2012 secara default.

Pertanyaan saya:

Bagaimana cara mengubah file SLN untuk memaksa dibuka di Visual Studio 2013?

Uwe Keim
sumber

Jawaban:

123

The .slnberkas menunjukkan dimaksudkan versi sebagai salah satu baris awal - misalnya:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

atau:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

Namun - ini hanya dapat menggunakan ini jika aplikasi default untuk .slnfile adalah "Microsoft Visual Studio Version Selector". Tidak jarang .slnaplikasi default menjadi versi tertentu . Di windows 8:

masukkan deskripsi gambar di sini

Anda dapat membedakan mana yang default karena dikatakan "tetap menggunakan":

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Marc Gravell
sumber
2
@Unitaputrii_ itu bukan pengalaman saya; dengan pemilih versi sebagai default, bagi saya yang benar versi devenv dimuat per file SLN - apakah mungkin bahwa Anda telah dimuat mereka solusi ke VS2013 pada titik apapun? yang akan meningkatkannya
Marc Gravell
2
Nah, saran Anda lebih dari cukup bagi saya. Suka lagi ikon folder kuning, dibandingkan dengan yang gelap di VS 2012!
Uwe Keim
2
@UweKeim jika Anda melihat di file sln, baris kedua memberitahukan IDE mana yang harus dibuka: # Visual Studio 2013vs# Visual Studio 2012
Marc Gravell
1
@UweKeim Saya membayangkan itu memiliki fallback "jika saya tidak mengenali nilainya, atau bahwa IDE tidak diinstal, gunakan IDE terbaru yang diinstal"
Marc Gravell
6
bagi saya peluncur default sudah ditetapkan ke "Microsoft Visual Studio Version Selector" tetapi meluncurkan solusi yang dibuat di visual studio 2013 di ide 2012 !!. Tetapi menerapkan ulang "Microsoft Visual Studio Version Selector" sebagai default memperbaikinya. Sekarang 2012 dibuka pada ide 2012 dan 2013 dibuka pada ide 2013. (Saya menggunakan windows 7 64bit)
Peter Flannery
35

Perhatikan bahwa Anda juga dapat memaksa peningkatan versi file .sln atau .proj dengan menggunakan baris perintah, di mana devenv adalah versi IDE target:

devenv "MyProject.sln" /upgrade

Contoh:

"%programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" "D:\Source\MySolution.sln" /upgrade

Perhatikan bahwa ini tidak membuka Visual Studio. Alternatifnya adalah, dari dalam IDE, pilih "Simpan Sebagai" untuk file solusi Anda dan timpa atau simpan solusi dengan nama baru.

Baca lebih lanjut: http://msdn.microsoft.com/en-us/library/w15a82ay.aspx

zumey
sumber
1
INI karena itu scriptable dan non-hacky.
CAD bloke
2
Sayangnya, teknik ini tidak selalu memperbarui file solusi.
Theophilus
Setelah itu devenv "MyProject.sln" /upgrade, Anda juga harus mengedit file .sln, periksa @Zac's ans.
Wei Guo
22

Sepertinya OP sudah memiliki jawaban yang berfungsi ... tetapi bagi saya masalahnya berbeda. Saya memiliki solusi VS 2012 (beberapa sebenarnya) dan ingin mengubahnya menjadi 2013 (yang saya mengerti adalah perubahan sepele ke file .sln, tetapi saya ingin itu dilakukan secara otomatis jika ada beberapa logika peningkatan rahasia yang tidak saya sadari) .

Jadi saya pikir saya akan membukanya di VS2013, itu akan secara otomatis ditingkatkan seperti yang diharapkan, dan kemudian saya akan mengatur untuk mengklik dua kali solusi dan melihatnya di VS2013 ke depan. Tetapi membuka di VS2013 TIDAK meningkatkan solusi untuk saya secara otomatis seperti yang diharapkan dan saya tidak dapat menemukan cara eksplisit untuk memaksa peningkatan setelah membuka file di VS2013. Saya dapat bekerja dengan solusi, menyimpan perubahan saya, dan menutup VS2013, tetapi .sln akan tetap tidak berubah dan tidak ditingkatkan.

Ternyata masalah saya adalah bagaimana saya membuka solusi ... sebagai kebiasaan saya klik kanan file dan pilih "buka dengan" untuk memilih program yang ingin saya gunakan untuk membuka file. Saya sering melakukan ini. Catatan Saya TIDAK berbicara tentang mengubah default program "buka dengan" tetapi hanya membuka file dengan program tertentu sekali. Jadi saya akan mengklik kanan file .sln ... terbuka dengan Visual Studio 2013 ... dan tidak ada yang akan diupgrade.

Akhirnya saya berpikir untuk masuk ke VS2013, lalu lakukan File> Open dan pilih file .sln (ini asing bagi saya karena saya hampir tidak pernah membuka sesuatu dengan cara ini, mungkin Anda juga sama). Pokoknya itu mengupgrade file solusi secara instan.

Setelah memutakhirkan, baris 2-3 dari file .sln berubah dari ini:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

untuk ini:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1

Jadi dari pengalaman saya, untuk secara otomatis memperbarui VS2012 .sln ke VS2013, Anda harus membuka VS2013 dan memilih .sln dari File> Buka dialog. Menggunakan shell explorer untuk memaksa file .sln dibuka di VS2013 tidak memanggil logika peningkatan (tampaknya).

Sebagai catatan lebih lanjut, saya menguji dengan solusi lain, dan setelah melakukan perubahan melalui Pengelola Konfigurasi (yang jelas "menyentuh" ​​file .sln) ia meningkatkan VS2012 ke VS2013, bahkan setelah membukanya melalui klik kanan buka dengan.

TCC
sumber
1
Inilah yang sebenarnya saya coba lakukan. Saya memiliki Pembaruan 3, dan satu proyek diperbarui secara otomatis, tetapi yang lain hanya akan berubah ketika saya membuka Pengelola Konfigurasi. Terima kasih atas tipnya!
Erica
2
Saya bahkan membuka vs 2012 .sln dari dalam VS 2013 tetapi bagi saya itu TIDAK ditingkatkan. Aneh.
PositiveGuy
4
Bukan pembukaan solusi di VS 2013 yang memicu peningkatan, melainkan tindakan yang mengubah solusi, seperti mengubah pengaturan di konfigurasi aktif.
pengembara pada
saya mencoba untuk meningkatkan dari vs2013 ke vs2015 dan berhasil.
Dingxin Xu
7

Saya memiliki solusi yang sebelumnya berhasil ditingkatkan dari 2010 ke 2013 tetapi masih menunjukkan .sln yang terkait dengan 2010.

Saya menguji semua metode yang diberikan di thread ini dan satu-satunya yang berhasil mengoreksi .sln adalah membuka Visual Studio 2013 saja, lalu buka solusi yang masih terkait dengan 2010 di IDE, lalu gunakan [File]> [Save (name) .sln as] untuk menimpa file .sln yang ada.

Mengatur file assoc dari .sln menjadi "pemilih versi Visual Studio" tidak membuat perubahan dan solusi terus terbuka pada tahun 2010.

Metode devenv (name) .sln / upgrade tidak mengubah file .sln saya.

Meretas teks mentah dari file .sln merusak milik saya dan itu tidak akan terbuka sama sekali.

Jeff
sumber
Cheers Jeff, aku baru saja mengalami situasi yang sama denganmu. Saya harus mengatakan meskipun bagus bahwa Microsoft memutuskan bahwa VS 2013 tidak mencoba memutakhirkan semua yang disentuhnya, tidak seperti versi VS sebelumnya! Biasanya sebaliknya, dan saya mencoba untuk mencegah VS IDE saya yang berbeda untuk saling mengupgrade file .proj dan .sln :)
Simon Brangwin
@SimonBrangwin yang merupakan penyempurnaan, kecuali jika Anda secara eksplisit memanggil / meningkatkan sesuai jawaban lain, Anda akan berharap bahwa itu benar-benar akan melakukan peningkatan yang diminta!
stannius
Jeff terima kasih! Ini adalah satu-satunya cara yang dapat saya temukan untuk memutakhirkan VS 2013 sln saya agar terbuka secara default dengan 2015. Saya juga harus membuka penjelajah solusi dan secara manual memilih simpul solusi di bagian atas pohon penjelajah untuk melihat 'Simpan (nama ) .sln sebagai 'di menu File.
ToastyMallows
6

Untuk mengatasi masalah ini, saya baru saja mengubah baris berikut dari file .sln:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

menjadi ini:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

Baris komentar harus diubah saat diurai oleh pemuat solusi.

Zac
sumber
4

Ini mungkin berhasil bagi pembaca yang mencoba meningkatkan file solusi ke Visual Studio 2015. (Saya memutakhirkan solusi VS 2012.)

  1. Buka solusinya di VS 2015.
  2. Tambahkan proyek baru ke solusi. (Saya menambahkan proyek uji.)
  3. Hapus proyek.
  4. Simpan solusinya.

Anda mungkin ingin menghapus folder proyek yang dihapus saat ini karena langkah 3 tidak menghapusnya.

Ini berhasil bagi saya ketika tidak ada jawaban zumey maupun TCC .

EDIT

Metro Smurf memiliki jawaban yang serupa, tetapi lebih mudah daripada jawaban saya untuk pertanyaan serupa . Langkahnya adalah:

  1. Buka solusi di VS 2015
  2. Solusi klik kanan> Tambahkan> Folder Solusi Baru (nama tidak masalah)
  3. Simpan solusi
  4. Hapus folder solusi yang baru ditambahkan
  5. Simpan solusi
Teofilus
sumber
Saya hanya mengganti nama proyek dan mengembalikannya setelah itu. Dengan cara ini tidak ada folder yang dibuat
Andy