2014-07-09 16 views
17

Sto creando un corridore di prova personalizzato per il mio progetto. Così ho creato un progetto vsix di test che può essere registrato in Visual Studio.Come eseguire il debug di un progetto Vsix

So anche che carico l'estensione tramite F5, quindi viene caricata l'istanza sperimentale di Visual Studio, ma i punti di interruzione non vengono colpiti nell'istanza di Visual Studio in cui ho creato il mio vsix.

Qualcuno sa veramente come debuggarlo?

+1

Il modo in cui esegui il debug, è lo stesso di quello che fai in sostanza. Ad esempio, premere F5 tramite l'istanza sperimentale. Ricostruisci la soluzione, sbarazzati dei vecchi simboli di debug, cancella tutte le cache (registro 12.0Exp, cartella AppData 12.0Exp) –

+0

@Complexity - Hai trovato una buona soluzione per questo? –

+0

Sfortunatamente, non l'ho fatto. – Complexity

risposta

15

Ho creato alcune estensioni di Visual Studio e non ho mai trovato un buon modo per eseguire il debug di un VSIX. È possibile avviare un'istanza sperimentale, ma ho trovato che questa è la possibilità più lenta.

Questo è il flusso di lavoro che uso:

  • Aprire un'istanza di Visual Studio per lo sviluppo. Carica la soluzione.
  • Apportare alcune modifiche, compilare.
  • Installare .vsix (doppio clic sul file vsix in \ bin \ debug)
  • Avviare una nuova istanza di Visual Studio per il test.
  • In Dev Visual Studio, Debug -> Collega a processo e selezionare devenv.exe
  • In Dev Visual Studio, impostare alcuni punti di interruzione.
  • Nel Test Visual Studio, creare/aprire una nuova soluzione e avviare la codifica di test.

Ho trovato che questo è molto più veloce del lancio di VS Experimental Instance. Ma è ancora abbastanza arduo.

L'altra cosa che consiglio vivamente è di astrarre tanto l'API di Visual Studio in quanto è possibile eseguire test di unità e fare solo il minimo di test in Visual Studio. Ad esempio, in un progetto su cui sto lavorando ora, pMixins, ho estratto il sistema degli eventi di Visual Studio (VisualStudioEventProxy) in modo che la mia infrastruttura non abbia una forte dipendenza dall'API dell'evento e posso scrivere un test che simula eventi.

11

Un po 'in ritardo, ma può essere utile per gli altri. suggerimento trovato here mi ha aiutato a risolvere il mio problema con il debug del componente vsix in VS2012. In breve: aggiungi alle proprietà del progetto "avvia programma esterno:" [youre visual studio path], aggiungi a "Argomenti della riga di comando" /rootsuffix Exp