2010-08-17 1 views
2

J'écris une page de démarrage WPF personnalisée pour VS2010. Je l'ai affichant une liste de solutions communes utilisées par moi dans une vue.Comment ouvrir une solution à partir d'une page de démarrage VS2010 personnalisée

Maintenant, je veux ouvrir la solution dans VS quand elle est sélectionnée.

Des idées? Je regarde les choses du DTE, mais j'ai très peu de succès. Avant de creuser trop profondément, l'ETTD est-il la bonne voie à suivre ou existe-t-il un autre moyen? Vous ne pouvez pas simplement l'exécuter avec le chemin d'accès à la solution comme argument?

Répondre

3

J'ai trouvé la solution.

Dans la classe Utilitaires générée par le modèle Visual Studio il y a la méthode statique suivante:

public static DTE2 GetDTE(object dataContext) 
{ 
    ICustomTypeDescriptor typeDescriptor = dataContext as ICustomTypeDescriptor; 
    Debug.Assert(typeDescriptor != null, "Could not get ICustomTypeDescriptor from dataContext. Was the Start Page tool window DataContext overwritten?"); 
    PropertyDescriptorCollection propertyCollection = typeDescriptor.GetProperties(); 
    return propertyCollection.Find("DTE", false).GetValue(dataContext) as DTE2; 
} 

En passant dans le DataContext de mon contrôle dans la méthode GetDTE() Je peux le faire:

var dte = Utilities.GetDTE(dataContext); 
dte.Solution.Open(fullPathToSolution); 
0

Quelque chose comme:

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = vsdir; 
startInfo.Arguments = pathtosolution; 
Process.Start(startInfo); 

(si je vous comprends bien)

+0

Non, parce que je suis déjà dans Visual Studio, je ne veux pas générer une nouvelle instance. – DaveShaw

+0

Oh, désolé, bien heureux de voir que vous avez trouvé votre réponse :) – Blam

Questions connexes