c# - Open a VS 2005 Solution File (.sln) into memory -
मैं एक मौजूदा .sln फाइल मेमोरी में खोलना चाहूंगा।
एक गैर- विधि:
निजी समाधान 2 OpenSolution (स्ट्रिंग फ़ाइलपथ) {Solution2 sln; sln.Open (filepath); वापसी एसएलएन; }
अगर मेरे पास समाधान 2 का एक उदाहरण है तो मैं विधि को ओपन कॉल कर सकता हूं; लेकिन मुझे समाधान 2 का उदाहरण कैसे मिल सकता है ?
मेरा लक्ष्य तो पर्याप्त प्रोजेक्ट प्राप्त करना और इसकी कुछ सेटिंग्स को पढ़ना है ... लेकिन समाधान का उपयोग करना आसान है ।
पहले से धन्यवाद, लुइस
आप प्रोग्राम की एक छिपी हुई आवृत्ति का निर्माण कर सकते हैं दृश्य स्टूडियो, और उसके बाद अपने समाधान को हेरफेर करने के लिए इसका उपयोग करें। यह उदाहरण दिए गए समाधान में रहने वाली सभी परियोजनाओं को सूचीबद्ध करेगा।
सिस्टम का उपयोग करना; System.Runtime.InteropServices का उपयोग कर; EnvDTE का उपयोग कर; EnvDTE80 का उपयोग कर; नाम स्थान SO_sln {class प्रोग्राम {[STAThread] स्थिर शून्य मुख्य (स्ट्रिंग [] एआरजी) {System.Type टी = System.Type.GetTypeFromProgID ("VisualStudio.DTE.8.0", सच है); डीटीई 2 डीटीई = (एन्वीडी 80। डीटीई 2) सिस्टम। एक्टिवेटर। क्रेएट इंस्टेंस (टी, सच); // MessageFilter के लिए // कोड के लिए http://msdn.microsoft.com/en-us/library/ms228772.aspx देखें - बस इसे so_sln नामस्थान में पेस्ट करें MessageFilter.Register (); dte.Solution.Open (@ "C: \ पथ \ \ my.sln को"); विदेशी परियोजना (डीटी। सोल्यूशन.प्रोजेक्ट में प्रोजेक्ट प्रोजेक्ट) {Console.WriteLine (project.Name); } Dte.Quit (); }} सार्वजनिक वर्ग संदेशफ़िल्टर: IOleMessageFilter {... जारी है http://msdn.microsoft.com/en-us/library/ms228772.aspx
(STAThread और MessageFilter के साथ बकवास "बहु-थ्रेडेड अनुप्रयोगों और विजुअल स्टूडियो के बीच विवाद के मुद्दों को थ्रेड करने की वजह से", इसका मतलब जो भी हो। कोड से चिपकाने से यह काम करता है।)
Comments
Post a Comment