5

Posso creare un'estensione per Visual Studio che viene eseguita in background non appena l'utente apre l'IDE di Visual Studio? Ad esempio, sto costruendo un'estensione che ottiene l'attuale indirizzo di file attivo in Visual Studio (con C#), ma vorrei che questa estensione funzionasse sempre in background senza dover essere attivata dall'utente facendo clic su un pulsante o premendo un tasto combinazione.Esegui automaticamente il codice di estensione in Visual Studio all'avvio

questo è possibile, e se sì, qual è il modo migliore di farlo?

Qualsiasi aiuto sarebbe molto apprezzato! Cordiali saluti, Erfan

+0

A seconda di cosa si sta tentando di fare, è possibile specificare l'estensione da caricare per determinati tipi di file. –

risposta

4

Poiché hai taggato la tua domanda con visual-studio-2010 presumo tu stia lavorando su un "componente aggiuntivo" piuttosto che su un "VSPackage Extensions".

In questo caso, è possibile utilizzare il gestore OnConnection eventi.

Se si sta lavorando su un Extensions VSPackage, è possibile utilizzare l'attributo ProvideAutoLoad.

Basta cercare questi, troverete informazioni sufficienti. Entrambi i modi sono descritti brevemente here under "How can I run my add-in code in a VSPackage?"

2

Per VS 2010 e versioni successive l'approccio di estensibilità consigliato è un pacchetto (VS 2015 non consentirà aggiunte).

per ottenere il pacchetto caricato quando Visual Studio è caricato vedere HOWTO: Autoload a Visual Studio package.

Una volta caricato, il pacchetto potrebbe essere interessato a due diversi tipi di eventi di modifica di selezione:

  • a ricevere la notifica quando la selezione in Esplora soluzioni cambia, ottenere l'interfaccia IVsMonitorSelection e chiamare il AdviseSelectionEvents/UnadviseSelectionEvents e fornire una classe che implementa l'interfaccia IVsSelectionEvents.
  • a ricevere la notifica quando cambia finestra attiva (che può essere una finestra del documento o un toolwindow), implementano l'interfaccia IVsWindowFrameNotify.
1

Per Estensione aggiungere il seguente attributo alla classe Pacchetto, questo caricherà l'estensione quando una soluzione non è aperta in Visual Studio. L'ho provato con VS 2015 e 2017

[ProvideAutoLoad(UIContextGuids80.NoSolution)] 
Problemi correlati