2012-05-13 56 views
5

Estoy creando un paquete de extensión de Visual Studio 2010 (Microsoft.VisualStudio.Shell.Package) que necesita analizar todos los proyectos y las referencias de esos proyectos. Supongo que esto se hace con un servicio (por ejemplo, Package.GetService(typeof(IMenuCommandService))). Lo que necesito es la interfaz que contiene la funcionalidad para obtener una lista de proyectos y referencias para esos proyectos. Además, cualquier consejo sobre dónde encontrar una referencia que contenga las interfaces disponibles dentro del estudio visual sería muy apreciado.Obtenga una lista de proyectos/referencias dentro de una Extensión de Visual Studio 2010

Tenga en cuenta que he visto a varias personas tratando de hacer algo similar utilizando DTE de una macro. Eso no es lo que trato de hacer. Estoy tratando de hacer lo mismo desde una extensión de Visual Studio.

Respuesta

7

Por lo tanto, aunque lo hace como parte de una extensión, igual deberá usar las API de DTE para obtener toda la información que desee. Puede parecer al revés, pero así es como funciona. Debería tomar el objeto DTE a través del (EnvDTE.DTE)Package.GetService(typeof(SDTE)). Una vez que tenga un EnvDTE.Project, acceda a su miembro Object y transfiéralo a un VSLangProj.VSProject si se trata de un proyecto C# o VB. Esto tiene la información de referencia que necesita.

+0

Esto parece un poco extraño, pero he confirmado su respuesta. ¡Gracias! –

+0

Sí, la única manera de obtener la información de manera confiable es a través del DTE. Es tonto y al revés, pero así es como funciona. –

+0

A veces no obtendrá todos los proyectos: http://stackoverflow.com/questions/33209589/project-names-in-visual-studio-solution-sometimes-are-empty – alerya

Cuestiones relacionadas