จะบังคับให้เปิดไฟล์โซลูชัน (SLN) ใน Visual Studio 2013 ได้อย่างไร


102

การพยายามเปิดโซลูชัน VS 2012 (ไฟล์ SLN) อย่างชัดเจนใน VS 2013 ประสบความสำเร็จ เพียงดับเบิลคลิกใน Windows Explorer ยังคงเปิดขึ้นใน VS 2012 แทน

ผมเคยอ่าน " Visual Studio 2012 ไม่แปลง VS2010 วิธีการแก้ปัญหา? " และปฏิบัติตามคำแนะนำที่ "บันทึกเป็น ..." แฟ้มโซลูชัน

ยังคงเปิดใน VS 2012 ตามค่าเริ่มต้น

คำถามของฉัน:

จะเปลี่ยนไฟล์ SLN เพื่อบังคับให้เปิดใน Visual Studio 2013 ได้อย่างไร

คำตอบ:


123

.slnไฟล์บ่งชี้ตั้งใจรุ่นเป็นหนึ่งในสายต้น - ตัวอย่างเช่น:

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

หรือ:

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

อย่างไรก็ตาม - สามารถใช้ประโยชน์จากสิ่งนี้ได้ก็ต่อเมื่อแอปพลิเคชันเริ่มต้นสำหรับ.slnไฟล์คือ "Microsoft Visual Studio Version Selector" ไม่ใช่เรื่องแปลกที่.slnแอปพลิเคชันเริ่มต้นจะเป็นเวอร์ชันเฉพาะแทน ใน Windows 8:

ใส่คำอธิบายภาพที่นี่

คุณสามารถบอกได้ว่าค่าใดเป็นค่าเริ่มต้นเนื่องจากมีข้อความว่า "ใช้ต่อไป":

ใส่คำอธิบายภาพที่นี่

ใส่คำอธิบายภาพที่นี่


2
@UweKeim อืม; นั่นไม่ใช่ประสบการณ์ของฉัน ด้วยตัวเลือกเวอร์ชันเป็นค่าเริ่มต้นสำหรับฉันเวอร์ชันที่ถูกต้องของ devenv ถูกโหลดต่อไฟล์ sln - เป็นไปได้ไหมว่าคุณได้โหลดโซลูชันเหล่านั้นลงใน VS2013 ณ จุดใด ๆ ที่จะอัปเกรด
Marc Gravell

2
ข้อเสนอแนะของคุณเพียงพอสำหรับฉันแล้ว ชอบไอคอนโฟลเดอร์สีเหลืองอีกครั้งเมื่อเทียบกับไอคอนสีเข้มใน VS 2012!
Uwe Keim

2
@UweKeim ถ้าคุณดูในไฟล์ sln บรรทัดที่สองจะบอกว่า IDE ใดที่จะเปิดด้วย: # Visual Studio 2013vs# Visual Studio 2012
Marc Gravell

1
@UweKeim ฉันคิดว่ามันมีทางเลือก "ถ้าฉันจำค่าไม่ได้หรือไม่ได้ติดตั้ง IDE ให้ใช้ IDE ล่าสุดที่ติดตั้ง"
Marc Gravell

6
สำหรับฉันตัวเรียกใช้เริ่มต้นถูกตั้งค่าเป็น "Microsoft Visual Studio Version Selector" แล้ว แต่มันกำลังเปิดตัวโซลูชันที่สร้างขึ้นใน Visual Studio 2013 ในปี 2012 ide !! แต่การใช้ "Microsoft Visual Studio Version Selector" ซ้ำเป็นค่าเริ่มต้นจะแก้ไขได้ ตอนนี้ 2012 เปิดใน 2012 ide และ 2013 เปิดใน 2013 ide (ฉันใช้ windows 7 64bit)
Peter Flannery

35

โปรดทราบว่าคุณยังสามารถบังคับให้อัพเกรดไฟล์. sln หรือ. proj ได้โดยใช้ commandline โดยที่ devenv คือเวอร์ชัน IDE เป้าหมาย:

devenv "MyProject.sln" /upgrade

ตัวอย่าง:

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

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

อ่านเพิ่มเติม: http://msdn.microsoft.com/en-us/library/w15a82ay.aspx


1
เนื่องจากเป็นสคริปต์และไม่แฮ็ก
CAD bloke

2
น่าเสียใจที่เทคนิคนี้ไม่ได้อัปเดตไฟล์โซลูชันเสมอไป
Theophilus

หลังจากนั้นdevenv "MyProject.sln" /upgradeคุณควรแก้ไขไฟล์. sln ตรวจสอบ ans ของ @ Zac
Wei Guo

22

ดูเหมือนว่า OP จะมีคำตอบที่ใช้งานได้แล้ว ... แต่สำหรับฉันปัญหานั้นแตกต่างออกไป ฉันมีโซลูชัน VS 2012 (จริงหลายอัน) และต้องการแปลงเป็น 2013 (ซึ่งฉันเข้าใจว่าเป็นการเปลี่ยนแปลงเล็กน้อยเป็นไฟล์. sln แต่ฉันต้องการให้มันทำโดยอัตโนมัติในกรณีที่มีตรรกะการอัปเกรดเป็นความลับที่ฉันไม่รู้) .

ดังนั้นฉันคิดว่าฉันจะเปิดใน VS2013 มันจะอัปเกรดโดยอัตโนมัติตามที่คาดไว้จากนั้นฉันจะตั้งค่าให้ดับเบิลคลิกที่โซลูชันและดูใน VS2013 ต่อไป แต่การเปิดใน VS2013 ไม่ได้อัปเกรดโซลูชันสำหรับฉันโดยอัตโนมัติตามที่คาดไว้และฉันไม่พบวิธีที่ชัดเจนในการบังคับให้อัปเกรดหลังจากเปิดไฟล์ใน VS2013 ฉันสามารถทำงานกับโซลูชันบันทึกการเปลี่ยนแปลงของฉันและปิด VS2013 ได้ แต่. sln จะยังคงไม่เปลี่ยนแปลงและไม่ได้อัปเกรด

ปรากฎว่าปัญหาของฉันคือวิธีที่ฉันเปิดวิธีแก้ปัญหา ... ตามนิสัยฉันคลิกขวาที่ไฟล์และเลือก "เปิดด้วย" เพื่อเลือกโปรแกรมที่ฉันต้องการใช้เพื่อเปิดไฟล์ ฉันทำสิ่งนี้บ่อยๆ หมายเหตุฉันไม่ได้พูดถึงการเปลี่ยนโปรแกรม "open with" เริ่มต้น แต่เพียงแค่เปิดไฟล์ด้วยโปรแกรมเฉพาะหนึ่งครั้ง ดังนั้นฉันจะคลิกขวาที่ไฟล์. sln ... เปิดด้วย Visual Studio 2013 ... และไม่มีอะไรจะอัพเกรด

ในที่สุดฉันคิดว่าจะเข้าสู่ VS2013 จากนั้นทำ File> Open และเลือกไฟล์. sln (นี่เป็นสิ่งแปลกปลอมสำหรับฉันเพราะฉันแทบจะไม่เคยเปิดอะไรด้วยวิธีนี้บางทีคุณอาจจะเป็นแบบเดียวกัน) อย่างไรก็ตามที่อัปเกรดไฟล์โซลูชันทันที

หลังจากอัปเกรดบรรทัด 2-3 ของไฟล์. sln เปลี่ยนไปจากนี้:

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

สำหรับสิ่งนี้:

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

จากประสบการณ์ของฉันในการอัปเดต VS2012 .sln เป็น VS2013 โดยอัตโนมัติคุณต้องเปิด VS2013 และเลือก. sln จากกล่องโต้ตอบไฟล์> เปิด การใช้ explorer เชลล์เพื่อบังคับให้เปิดไฟล์. sln ใน VS2013 ไม่เรียกใช้ตรรกะการอัพเกรด (เห็นได้ชัด)

ตามหมายเหตุเพิ่มเติมฉันได้ทดสอบด้วยโซลูชันอื่นและหลังจากทำการเปลี่ยนแปลงผ่านเครื่องมือจัดการการกำหนดค่า (ซึ่งเห็นได้ชัดว่า "แตะ" ไฟล์. sln) มันได้อัปเกรด VS2012 เป็น VS2013 แม้ว่าจะเปิดด้วยการคลิกขวาที่เปิดด้วยก็ตาม


1
นี่คือสิ่งที่ฉันพยายามทำ ฉันมีการอัปเดต 3 และโครงการหนึ่งได้รับการอัปเดตโดยอัตโนมัติ แต่อีกโครงการจะเปลี่ยนแปลงเมื่อฉันเปิดเครื่องมือจัดการการกำหนดค่า ขอบคุณสำหรับเคล็ดลับ!
Erica

2
ฉันยังเปิด vs 2012 .sln จากภายใน VS 2013 แต่สำหรับฉันมันไม่ได้อัปเกรด แปลก.
PositiveGuy

4
ไม่ใช่การเปิดโซลูชันใน VS 2013 ที่ทำให้เกิดการอัปเกรดเป็นการดำเนินการที่แก้ไขโซลูชันเช่นเปลี่ยนการตั้งค่าในการกำหนดค่าที่ใช้งานอยู่
bleater

ฉันลองอัปเกรดจาก vs2013 เป็น vs2015 และใช้งานได้
Dingxin Xu

7

ฉันมีโซลูชันที่ก่อนหน้านี้ได้รับการอัปเกรดจาก 2010 เป็น 2013 เรียบร้อยแล้ว แต่ยังคงแสดง. sln ที่เกี่ยวข้องกับ 2010

ฉันทดสอบวิธีการทั้งหมดที่ระบุในเธรดนี้และวิธีเดียวที่แก้ไข. sln ได้สำเร็จคือการเปิด Visual Studio 2013 เพียงอย่างเดียวจากนั้นเปิดโซลูชันที่ยังคงเชื่อมโยงกับ 2010 ใน IDE จากนั้นใช้ [ไฟล์]> [บันทึก (name) .sln as] เพื่อเขียนทับไฟล์. sln ที่มีอยู่

การตั้งค่าการเชื่อมโยงไฟล์ของ. sln เป็น "ตัวเลือกเวอร์ชัน Visual Studio" ไม่มีการเปลี่ยนแปลงใด ๆ และโซลูชันยังคงเปิดต่อไปในปี 2010

วิธีการ devenv (name) .sln / upgrade ไม่มีการเปลี่ยนแปลงไฟล์. sln ของฉัน

การแฮ็กข้อความดิบของไฟล์. sln ทำให้ฉันเสียหายและจะไม่เปิดขึ้นเลย


ไชโยเจฟฉันเจอสถานการณ์เดียวกับคุณ ต้องบอกว่าเป็นเรื่องดีที่ Microsoft ตัดสินใจว่า VS 2013 ไม่ได้พยายามอัปเกรดทุกสิ่งที่สัมผัสซึ่งแตกต่างจาก VS เวอร์ชันก่อนหน้า! โดยปกติจะเป็นอีกทางหนึ่งและฉันพยายามป้องกันไม่ให้ VS IDE ที่แตกต่างกันของฉันอัปเกรดไฟล์. proj และ. sln ซึ่งกันและกัน :)
Simon Brangwin

@SimonBrangwin ซึ่งเป็นการปรับปรุงยกเว้นว่าถ้าคุณโทรด้วย / อัพเกรดอย่างชัดเจนตามคำตอบอื่น ๆ คุณคาดหวังว่ามันจะทำการอัพเกรดตามที่ร้องขอจริงๆ!
stannius

ขอบคุณเจฟฟ์! นี่เป็นวิธีเดียวที่ฉันจะพบในการอัปเกรด VS 2013 sln ของฉันให้เปิดตามค่าเริ่มต้นด้วย 2015 ฉันต้องเปิดตัวสำรวจโซลูชันและเลือกโหนดโซลูชันที่ด้านบนของแผนผัง explorer ด้วยตนเองเพื่อดู 'บันทึก (ชื่อ ) .sln as 'ในเมนูไฟล์
ToastyMallows

6

เพื่อแก้ปัญหานี้ฉันเพิ่งเปลี่ยนบรรทัดต่อไปนี้ของไฟล์. sln:

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

ในสิ่งเหล่านี้:

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

บรรทัดข้อคิดเห็นจะถูกเปลี่ยนตามที่วิเคราะห์โดยตัวโหลดโซลูชัน


4

สิ่งนี้อาจใช้ได้กับผู้อ่านที่พยายามอัปเกรดไฟล์โซลูชันเป็น Visual Studio 2015 (ฉันอัปเกรดโซลูชัน VS 2012)

  1. เปิดโซลูชันใน VS 2015
  2. เพิ่มโครงการใหม่ในโซลูชัน (ฉันเพิ่มโครงการทดสอบแล้ว)
  3. ลบโครงการ
  4. บันทึกโซลูชัน

คุณอาจต้องการลบโฟลเดอร์โครงการที่ถูกลบออกในขณะนี้เนื่องจากขั้นตอนที่ 3 ไม่ได้ลบออก

สิ่งนี้ได้ผลสำหรับฉันเมื่อทั้งzumeyและTCCไม่ได้รับคำตอบ

แก้ไข

เมโทร Smurfมีคล้ายกัน แต่คำตอบที่ง่ายกว่าฉันสำหรับคำถามที่คล้ายกัน ขั้นตอนของเขาคือ:

  1. เปิดโซลูชันใน VS 2015
  2. คลิกขวาที่โซลูชัน> เพิ่ม> โฟลเดอร์โซลูชันใหม่ (ชื่อไม่สำคัญ)
  3. บันทึกโซลูชัน
  4. ลบโฟลเดอร์โซลูชันที่เพิ่มใหม่
  5. บันทึกโซลูชัน

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