هل يمكنني إنشاء ماكرو Visual Studio لبدء مشروع معين في مصحح الأخطاء؟

StackOverflow https://stackoverflow.com/questions/96250

سؤال

يحتوي مشروعي على مكونات العميل والخادم في نفس ملف الحل.عادةً ما أقوم بتعيين مصحح الأخطاء لبدء تشغيلهما معًا عند تصحيح الأخطاء، ولكن غالبًا ما يكون هذا هو الحال عندما أقوم ببدء تشغيل الخادم خارج مصحح الأخطاء حتى أتمكن من بدء تشغيل العميل وإيقافه حسب الحاجة عند العمل على الأشياء من جانب العميل فقط.(وهذا أسرع بكثير).

أحاول أن أنقذ نفسي من متاعب البحث في Solution Explorer لبدء مشاريع فردية وأفضل فقط الضغط على زر على شريط الأدوات الذي يستدعي ماكرو يبدأ مصحح الأخطاء للمشاريع الفردية (مع ترك تصحيح الأخطاء من النوع "F5" وحده لـ بدء كلتا العمليتين).

لقد حاولت التسجيل، لكن ذلك لم يسفر عن أي شيء مفيد حقًا.

كل ما تمكنت من فعله حتى الآن هو تحديد موقع عنصر المشروع في مستكشف الحلول:

 Dim projItem As UIHierarchyItem

 projItem = DTE.ToolWindows.SolutionExplorer.GetItem("SolutionName\ProjectFolder\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect)

(يعتمد هذا بشكل فضفاض على كيفية محاولة مسجل الماكرو القيام بذلك.لست متأكدًا مما إذا كان التنقل في نموذج كائن واجهة المستخدم هو النهج الصحيح، أو إذا كان ينبغي لي أن أفكر في الانتقال إلى نموذج كائن الحل/المشروع بدلاً من ذلك).

هل كانت مفيدة؟

المحلول

نعم.يبدو أن هذا يعمل مع معظم سياقات واجهة المستخدم (الكل؟) بشرط تحميل الحل:

 Sub DebugTheServer()
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
    DTE.ActiveWindow.Object.GetItem("Solution\ServerFolder\ServerProject").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.Windows.Item(Constants.vsWindowKindOutput).Activate()
    DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance")
 End Sub

نصائح أخرى

من الوظيفة الإضافية C#، نجح ما يلي بالنسبة لي:

Dte.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate();
Dte.ToolWindows.SolutionExplorer.GetItem("SolutionName\\SolutionFolderName\\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top