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

标签 visual-studio mef

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

我一直在深入研究的类是 IWpfTextView 但我没有找到它。

最佳答案

如果你的程序集中有一个 Package 类,你可以这样做:

DTE2 = Package.GetGlobalService(typeof(SDTE)) as DTE2; 字符串全名 = dte.Solution.FullName;

否则,您可以通过以下方式获取 DTE: DTE dte = System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE") 作为 DTE; 字符串全名 = dte.Solution.FullName;

而且我看到人们谈论获取 DTE 的更“MEF”导向的方式,但我还没有尝试过..

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

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

关于visual-studio - 从扩展程序运行时如何获取解决方案名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423979/

相关文章:

c# - CloudTableClient.CreateCloudTableClient 抛出 System.IO.FileNotFoundException 类型的异常

c++ - 打印函数地址时 Visual Studio 有问题吗?

c# - MEF - 将默认创建策略更改为 NonShared

c# - 可扩展的 ASP.NET MVC Web 应用程序

visual-studio - 注册程序集时出现错误 MSB3216

macos - 在 Visual Studio for Mac 上运行 xUnit

visual-studio - 如何使用 visual studio 2013 社区创建 ionic 应用程序?

asp.net-mvc - 我们如何使用 ASP.NET MVC 4 和 MEF 2 支持模块化和可测试模式?

silverlight - MEF 可以下载 Dll(不仅是 Xap)文件吗?

.net - 如何解决错误 "Currently composing another batch in this ComposablePartExportProvider. Only one batch can be composed at a time."