2015-03-25 15 views
5

Come aggiungere un comando personalizzato "Esegui/Debug in X" a Visual Studio 2012?Comando/plug-in "Esegui/Debug in X" per Visual Studio

Ho un'applicazione C# /. NET, chiamiamola "X", che supporta plugin caricabili. Per scrivere un plug-in, creo un nuovo progetto Libreria di classi C# in Visual Studio, faccio riferimento a un determinato assembly e scrivo il mio codice. Per testare il plugin, ho bisogno di copiare la DLL del plugin compilato in una particolare directory di runtime, scrivere un file di configurazione XML ed eseguire X. Posso automatizzare parte di questo usando un evento post-build e le proprietà di debug del progetto ("Start external programma").

Ma quello che voglio veramente è fare clic su Debug e quindi fare clic su un comando personalizzato "Esegui in X" (o "Debug in X") che richiama un qualche tipo di plugin o script per fare tutto questo. Lo script gestirà la creazione di un file di configurazione X, la directory di runtime, la copia della DLL, l'avvio dell'applicazione X e il collegamento del debugger.

Sono disposto a scrivere un plug-in di Visual Studio per realizzare questo, ma non so da dove iniziare.

risposta

0

Il modo più semplice a cui posso pensare è configurare il build Debug per eseguire un evento post-build di PowerShell e avviare l'applicazione esternamente.

Creare un file "Debug.ps1" nel progetto e impostarlo su BuildAction = Content, Copy = Copy Always. Script qui i tuoi prerequisiti per il debugging.

Get-ChildItem | Copy-Item -Destination C:\ExternalApp\Plugins -Force 
#build config, etc here 

chiamata questo nella vostra Debug post-generazione eventi C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File Debug.ps1

Hit F5, e la vostra applicazione esterna lancerà con l'ultima copia del vostro plugin caricato e debugger.

0
  • Scrivi un modello T4 che fa tutto il lavoro pesante (la creazione del file di configurazione, directory, spostare il dll, e l'avvio X)

  • fare riferimento alla this answer per come eseguire il modello su ogni generazione . Impostare questo come un Inserisci Evento accumulo

  • Build ->Attach to X

Se vuoi seguire questa strada, mi sento di raccomandare tempaltes predefinite del EnityFramework come un tutorial per ciò che si vuole realizzare. Usano un modello di utilità, con classi che dimostrano come sfruttare C# per generare e modificare un file. Da lì è banale controllare se esiste un file, spostare un file o anche avviare X (Process.Start("X.exe");).

È possibile trovare quei modelli EF predefiniti a %ProgramFiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\.