2010-07-21 5 views
3

Dans MSVC, plusieurs opérations (telles que Menu: Build: Build) sont contextuelles pour le projet Solution actuellement sélectionné. Toutefois, ce projet change souvent si vous naviguez dans l'Explorateur de solutions.Macro Visual Studio pour sélectionner le projet de démarrage

Je voudrais écrire une macro qui trouve le projet spécifié comme "projet de démarrage", et le sélectionne pour le rendre actif. Cependant, je n'ai pas trouvé les appels ETTD appropriés.

Répondre

4

Mon principal objectif était de construire le projet de démarrage, que j'ai trouvé une solution à:

Public Sub BuildStartupProject() 
    Dim sb As SolutionBuild = DTE.Solution.SolutionBuild 
    Dim projName As String = sb.StartupProjects(0) 
    DTE.ExecuteCommand("View.Output") 
    sb.BuildProject(sb.ActiveConfiguration.Name, projName, False) 
End Sub 

De l'Chromium project wiki.

1

Voici quelque chose qui devrait vous aider à démarrer, je n'ai pas vérifié si cela fonctionnera lorsque les projets sont imbriqués dans un dossier.

Sub SetStartupProjectasActive() 
    Dim solutionName As String = DTE.Solution.Properties.Item("Name").Value 
    Dim startupProject As String = DTE.Solution.Properties.Item("StartupProject").Value 
    Dim fullItemName As String = String.Format("{0}\{1}", solutionName, startupProject) 

    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate() 
    DTE.ActiveWindow.Object.GetItem(fullItemName).Select(vsUISelectionType.vsUISelectionTypeSelect) 
End Sub 
+1

Thx, mais l'appel à DTE.ActiveWindow.Object.GetItem échoue, il n'y a pas "GetItem" sur cet objet. –

Questions connexes