如何从扩展程序运行时获取解决方案名称?

时间:2010-12-12 20:56:56

标签: visual-studio mef

我正在使用托管扩展性框架(MEF)编写C#中的扩展 如何获取当前打开的解决方案名称或项目名称?

我深入研究的课程是IWpfTextView,但我没有找到它。

1 个答案:

答案 0 :(得分:6)

如果程序集中有Package类,则可以执行以下操作:

DTE2 = Package.GetGlobalService(typeof(SDTE))为DTE2;  string fullName = dte.Solution.FullName;

否则你可以通过以下方式获得DTE:  DTE dte = System.Runtime.InteropServices.Marshal.GetActiveObject(“VisualStudio.DTE”)作为DTE;  string fullName = dte.Solution.FullName;

我看到人们谈论更多以'MEF'为导向的DTE方式,但我没有尝试过..

获得DTE对象后,您可以使用解决方案遍历项目。

参考:VSIX: Getting DTE object 参考:http://msdn.microsoft.com/en-us/library/envdte.solution.aspx