Ho elencato tutti i progetti nella mia soluzione, utilizzando EnvDTE, ma ho trovato un bug nel mio codice: non riesco a ottenere i progetti che sono Scaricati.Ripristinare i progetti non caricati in EnvDTE
ho trovato un modo per saltare i progetti a vuoto:
if (string.Compare(EnvDTE.Constants.vsProjectKindUnmodeled, project.Kind, System.StringComparison.OrdinalIgnoreCase) == 0)
continue;
In questo modo, il mio codice non va in crash - ma sono in grado di caricare i progetti mancanti tramite il codice, dal momento che esistono già.
Come posso caricare i progetti non caricati nella soluzione?
ho provato:
project.DTE.ExecuteCommand("Project.ReloadProject");
E preso errore:
System.Runtime.InteropServices.COMException (...): Command "Project.ReloadProject" non è disponibile.
così ho cercato di ottenere in qualche modo
application.DTE.ExecuteCommand("Project.ReloadProject");
Ma prima di allora, da ogni luogo ho cercato in rete, devo pre-selezionare il progetto nella soluzione - e per questo, ho bisogno project.Name
(che Ho), e il percorso, che non ho (ogni esempio che ho trovato presuppone che il percorso della soluzione è lo stesso del percorso del progetto, che è altamente improbabile in una situazione generica).
di che tipo (namespace completo) è 'application'? – Kiquenet
http://msdn.microsoft.com/en-us/library/envdte._dte.application.aspx – Thalia