هل يمكنني إنشاء ماكرو Visual Studio لبدء مشروع معين في مصحح الأخطاء؟
-
01-07-2019 - |
سؤال
يحتوي مشروعي على مكونات العميل والخادم في نفس ملف الحل.عادةً ما أقوم بتعيين مصحح الأخطاء لبدء تشغيلهما معًا عند تصحيح الأخطاء، ولكن غالبًا ما يكون هذا هو الحال عندما أقوم ببدء تشغيل الخادم خارج مصحح الأخطاء حتى أتمكن من بدء تشغيل العميل وإيقافه حسب الحاجة عند العمل على الأشياء من جانب العميل فقط.(وهذا أسرع بكثير).
أحاول أن أنقذ نفسي من متاعب البحث في 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);