Visual Studio 2013 में खोली जाने वाली समाधान फ़ाइल (SLN) को कैसे बाध्य करें?


102

वीएस 2012 समाधान (एसएलएन फ़ाइल) को वीएस 2013 में स्पष्ट रूप से खोलने की कोशिश सफल होती है। बस इसे विंडोज एक्सप्लोरर में डबल-क्लिक करने पर भी वीएस 2012 में इसके बजाय खुल जाता है।

मैंने पढ़ा है " विज़ुअल स्टूडियो 2012 बनाम2010 समाधान को परिवर्तित नहीं करता है? " और समाधान फ़ाइल को "इस रूप में सहेजें ..." सुझाव का पालन ​​किया ।

फिर भी यह डिफ़ॉल्ट रूप से वीएस 2012 में खुलता है।

मेरा प्रश्न:

Visual Studio 2013 में इसे खोलने के लिए मजबूर करने के लिए SLN फ़ाइल को कैसे बदलें?

जवाबों:


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 संस्करण चयनकर्ता" है। इसके बजाय डिफ़ॉल्ट .slnएप्लिकेशन के लिए विशिष्ट संस्करण होना असामान्य नहीं है । विंडोज 8 में:

यहां छवि विवरण दर्ज करें

आप बता सकते हैं कि कौन सा डिफ़ॉल्ट है क्योंकि यह कहता है कि "उपयोग करते रहें":

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


2
@ युवीकेम हम्म; यह मेरा अनुभव नहीं है; संस्करण चयनकर्ता डिफ़ॉल्ट के रूप में, मेरे लिए devenv का सही संस्करण प्रति स्लन फ़ाइल लोड किया गया है - क्या यह संभव है कि आपने किसी भी बिंदु पर उन समाधानों को VS2013 में लोड किया हो? उन्हें अपग्रेड होगा कि
मार्क Gravell

2
वैसे, आपका सुझाव मेरे लिए पर्याप्त है। वीएस 2012 में उन अंधेरे वाले की तुलना में अब फिर से पीले फ़ोल्डर आइकन से प्यार करें!
उवे कीम

2
: @UweKeim अगर आप SLN फ़ाइल में देखो, दूसरी पंक्ति यह बताता है जो IDE के साथ खोलने के लिए # Visual Studio 2013बनाम# Visual Studio 2012
मार्क Gravell

1
@UweKeim मैं कल्पना यह "अगर मैं मूल्य पहचान नहीं है, या आईडीई स्थापित नहीं है कि, का उपयोग सबसे हाल ही में आईडीई स्थापित" का एक fallback है
मार्क Gravell

6
मेरे लिए डिफ़ॉल्ट लॉन्चर पहले से ही "Microsoft विज़ुअल स्टूडियो वर्जन सेलेक्टर" पर सेट था, लेकिन यह 2012 के विचारधारा में विज़ुअल स्टूडियो 2013 में बनाए गए समाधान लॉन्च कर रहा था। लेकिन "Microsoft Visual Studio संस्करण चयनकर्ता" को फिर से लागू करने के रूप में डिफ़ॉल्ट इसे तय किया। अब 2012 ide में 2012 में खुलता है और 2013 ide में 2013 खुलता है। (मैं विंडोज़ 7 64 बिट का उपयोग कर रहा हूं)
पीटर फ्लेनरी

35

ध्यान दें कि आप कमांडलाइन का उपयोग करके एक .sln या .proj फ़ाइल के उन्नयन को भी बाध्य कर सकते हैं, जहाँ devenv लक्ष्य IDE संस्करण है:

devenv "MyProject.sln" /upgrade

उदाहरण:

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

ध्यान दें कि यह Visual Studio नहीं खोलता है। आईडीई के भीतर से एक विकल्प है, अपनी समाधान फ़ाइल के लिए "इस रूप में सहेजें" का चयन करें और नए नाम के तहत समाधान को अधिलेखित करें या सहेजें।

और पढ़ें: http://msdn.microsoft.com/en-us/library/w15a82ay.aspx


1
यह क्योंकि यह स्क्रिप्ट योग्य और गैर-हैकरी है।
सीएडी

2
अफसोस, यह तकनीक हमेशा समाधान फ़ाइल को अपडेट नहीं करती है।
थियोफिलस

आपके बाद devenv "MyProject.sln" /upgrade, आपको .sln फ़ाइल को भी संपादित करना चाहिए, @ Zac की ans की जाँच करें।
वी गुओ

22

ऐसा लगता है कि ओपी के पास पहले से ही काम का जवाब है ... लेकिन मेरे लिए समस्या अलग थी। मेरे पास वीएस 2012 समाधान था (कई वास्तव में) और उन्हें 2013 में परिवर्तित करना चाहता था (जो मुझे समझ में आता है कि .sln फ़ाइल में एक तुच्छ परिवर्तन है, लेकिन मैं चाहता था कि यह अपने आप हो जाए अगर कुछ गुप्त उन्नयन तर्क से मैं अनजान था) ।

इसलिए मैंने सोचा कि मैं इसे VS2013 में खोलूंगा, यह स्वतः ही उम्मीद के मुताबिक अपग्रेड हो जाएगा, और फिर मैं समाधान पर डबल क्लिक करने और इसे VS2013 में आगे बढ़ने के लिए सेट करूँगा। लेकिन VS2013 में खोलना मेरे लिए उम्मीद के मुताबिक समाधान को अपग्रेड नहीं कर रहा था और मुझे VS2013 में फाइल खोलने के बाद अपग्रेड के लिए बाध्य करने का कोई स्पष्ट तरीका नहीं मिला। मैं समाधान के साथ काम कर सकता हूं, अपने परिवर्तनों को बचा सकता हूं, और VS2013 को बंद कर सकता हूं, लेकिन एसएलएन अपरिवर्तित और अन-अपग्रेड नहीं रहेगा।

मेरी समस्या यह बताती है कि मैं समाधान कैसे खोल रहा था ... एक आदत के रूप में मैं फ़ाइलों को राइट क्लिक करता हूं और "ओपन विथ" का चयन करता हूं उस प्रोग्राम का चयन करने के लिए जिसे मैं एक फाइल खोलने के लिए उपयोग करना चाहता हूं। मैं अक्सर ऐसा करता हूं। नोट मैं डिफ़ॉल्ट "प्रोग्राम के साथ खुले" को बदलने के बारे में बात नहीं कर रहा हूं, लेकिन केवल एक बार एक विशिष्ट प्रोग्राम के साथ एक फ़ाइल खोल रहा हूं। इसलिए मैं सही .sln फ़ाइल ... दृश्य स्टूडियो 2013 के साथ खुला ... पर राइट क्लिक करूंगा और कुछ भी अपग्रेड नहीं होगा।

आखिरकार मैंने VS2013 में जाने का सोचा, फिर File> Open करें और .sln फ़ाइल चुनें (यह मेरे लिए विदेशी है क्योंकि मैं शायद ही कभी इस तरह से कुछ भी खोलूं, शायद आप भी उसी तरह से हों)। वैसे भी जिसने समाधान फ़ाइल को तुरंत अपग्रेड किया था।

अपग्रेड करने के बाद, .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 का चयन करना होगा। VS2013 में खोलने के लिए .sln फ़ाइल को मजबूर करने के लिए एक्सप्लोरर शेल का उपयोग करके अपग्रेड लॉजिक (जाहिरा तौर पर) को लागू नहीं किया जाता है।

एक और नोट के रूप में, मैंने एक अन्य समाधान के साथ परीक्षण किया, और कॉन्फ़िगरेशन प्रबंधक के माध्यम से परिवर्तन करने के बाद (जो स्पष्ट रूप से .sln फ़ाइल को "छूता है"), इसने VS2012 को VS2013 में अपग्रेड किया, भले ही इसे राइट-क्लिक के माध्यम से खोला हो।


1
यह वही है जो मैं करने की कोशिश कर रहा था। मेरे पास अपडेट 3 है, और एक परियोजना स्वचालित रूप से अपडेट हो गई है, लेकिन दूसरा केवल तभी बदल जाएगा जब मैंने कॉन्फ़िगरेशन मैनेजर खोला था। सुझावों के लिए धन्यवाद!
एरिका

2
मैंने वीएस 2013 के भीतर से एक बनाम 2012 भी खोल दिया था, लेकिन मेरे लिए यह अपग्रेड नहीं हुआ। अजीब।
पॉजिटिव

4
यह वीएस 2013 में समाधान का उद्घाटन नहीं है जो उन्नयन को ट्रिगर करता है, यह एक क्रिया है जो समाधान को संशोधित करता है, जैसे कि सक्रिय कॉन्फ़िगरेशन में सेटिंग बदलना।
ब्लैटर नोव

मैंने इसे vs2013 से vs2015 में अपग्रेड करने की कोशिश की और यह काम करता है।
डिंगक्सिन जू

7

मेरे पास एक समाधान था जिसे पहले 2010 से 2013 तक सफलतापूर्वक अपग्रेड किया गया था लेकिन फिर भी .sln 2010 के साथ जुड़ा हुआ था।

मैंने इस थ्रेड में दिए गए सभी तरीकों का परीक्षण किया और केवल एक ही जिसने सफलतापूर्वक सही किया था .sln को केवल Visual Studio 2013 को खोलना था, फिर उस समाधान को खोलें जो अभी भी IDE में 2010 से जुड़ा हुआ था, तो [फाइल]> [सहेजें] का उपयोग करें (नाम) .sln के रूप में] मौजूदा .sln फ़ाइल को अधिलेखित करने के लिए।

.Sln के फ़ाइल दृश्य को "विज़ुअल स्टूडियो संस्करण चयनकर्ता" के रूप में सेट करने से कोई परिवर्तन नहीं हुआ और 2010 में समाधान जारी रहा।

Devenv (नाम) .sln / उन्नयन विधि ने मेरी .sln फ़ाइल में कोई परिवर्तन नहीं किया।

.Sln फ़ाइल के कच्चे पाठ को हैक करने से खदान दूषित हो जाती है और यह बिल्कुल नहीं खुलेगी।


चीयर्स जेफ, मैं सिर्फ आप के रूप में एक ही स्थिति में चलाता हूं। मुझे कहना होगा कि हालांकि यह अच्छा है कि Microsoft ने फैसला किया कि VS 2013 पिछले संस्करण के विपरीत सब कुछ छूने की कोशिश नहीं करता है। आमतौर पर यह दूसरा तरीका है, और मैं अपने अलग-अलग VS IDE को एक-दूसरे से अपग्रेड करने से रोकने की कोशिश कर रहा हूं। .proj और .sln फाइलें :)
सिमोन ब्रानगविन

@SimonBrangwin जो एक सुधार है, सिवाय इसके कि यदि आप स्पष्ट रूप से दूसरे उत्तर के अनुसार अपग्रेड / अपग्रेड करते हैं, तो आप उम्मीद करेंगे कि यह वास्तव में अनुरोधित अपग्रेड को पूरा करेगा!
स्टेनियस

जेफ धन्यवाद! यह एकमात्र तरीका है जो मैं अपने वीएस 2013 एसएन को अपग्रेड करने के लिए डिफ़ॉल्ट रूप से 2015 तक खोल सकता हूं। मुझे समाधान एक्सप्लोरर भी खोलना था और 'सेव (नाम) देखने के लिए एक्सप्लोरर ट्री के शीर्ष पर समाधान नोड को मैन्युअल रूप से चुनना था। )। फाइल मेनू में विकल्प के रूप में।
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

यह विज़ुअल स्टूडियो 2015 के लिए एक समाधान फ़ाइल को अपग्रेड करने का प्रयास करने वाले पाठकों के लिए काम कर सकता है (मैंने वीएस 2012 समाधान को अपग्रेड किया है।)

  1. वीएस 2015 में समाधान खोलें।
  2. समाधान के लिए एक नई परियोजना जोड़ें। (मैंने एक परीक्षण परियोजना जोड़ी।)
  3. प्रोजेक्ट निकालें।
  4. समाधान बचाओ।

आप इस समय हटाए गए प्रोजेक्ट फ़ोल्डर को हटाना चाह सकते हैं क्योंकि चरण 3 ने इसे हटाया नहीं था।

यह मेरे लिए तब काम आया जब न तो जुमे के दिन और न ही टीसीसी के उत्तरों ने ऐसा किया।

संपादित करें

मेट्रो स्मर्फ में एक समान प्रश्न के लिए मेरा एक समान, लेकिन आसान उत्तर था । उनके कदम थे:

  1. वीएस 2015 में खुला समाधान
  2. समाधान पर राइट-क्लिक करें> जोड़ें> नया समाधान फ़ोल्डर (नाम कोई फर्क नहीं पड़ता)
  3. समाधान बचाओ
  4. नए जोड़े गए समाधान फ़ोल्डर को हटाएं
  5. समाधान बचाओ

मैंने बस एक परियोजना का नाम बदला और इसे बाद में वापस किया। इस तरह से कोई फ़ोल्डर नहीं बनाया जाता है
एंडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.