2012-11-21 14 views
5

Mi è stato assegnato il compito di sviluppare alcune estensioni per Visual Studio per il nostro uso interno. Questi dovranno supportare un paio di versioni differenti di Visual Studio (VS2008, 2010 e 2012 - VS2005 sarebbe bello da avere ma non essenziale). Mi piacerebbe svilupparli nel modo più coerente possibile, riutilizzando il maggior numero possibile di codice, inserendolo nella struttura di progetto esistente per questi tipi di strumenti, che è un .sln di Visual Studio 2012.Sviluppo di componenti aggiuntivi di Visual Studio per più versioni di Visual Studio

Qual è il modo migliore/più semplice per sviluppare questo tipo di estensione? Un progetto VSPackage? Posso creare un VSPackage compatibile con il 2008 sviluppato in VS2012?

Le funzionalità di cui ho bisogno per le estensioni che sto scrivendo al momento sono piuttosto semplici: ho bisogno di creare comandi del menu Strumenti, possibilmente una finestra degli strumenti personalizzata. Le mie esigenze potrebbero cambiare in seguito, ma al momento non ho bisogno di decorazioni per gli editor o qualcosa del genere.

vidi this domanda che potrebbe sembrare di essere un duplicato, ma la risposta che è stata accettata non rispondere alla domanda, in modo da ...

risposta

3

tutto dipende da ciò che è proprio interno intenzione di fare.

VS2008 non supporta le estensioni (.vsix) e sarà necessario scrivere VSPackage distribuito come msi per esso. Inoltre, non avrai accesso a molte nuove funzionalità introdotte in VS2010 (integrazione editor semplificata e accesso ai servizi tramite MEF), ma elementi di base come la manipolazione di soluzioni/progetti/file dovrebbero essere soddisfacenti e funzionare su tutte le versioni (ad esempio utilizzando DTE dovrebbe essere ok).

Per quanto mi ricordo per VS2008 si dovrà anche a obtain a PLK, che non è più necessaria per il 2010 e il 2012.

Non ho provato in via di sviluppo pacchetto 2008 a VS2012, ma è sicuramente possibile sviluppare 2010 estensione nel 2012.

Ricorda inoltre che VS2008 è .Net 3.5, quindi il tuo codice deve utilizzare .net 3.5 e la versione di C# che supporta per essere portabile.

+0

Le mie richieste al momento sono piuttosto semplici: comandi del menu degli strumenti, forse una finestra degli strumenti (aggiornata la domanda con quelle informazioni). Potrei avere requisiti più avanzati in seguito come adornamenti, ma a quel punto dovremmo essere su VS2012. La cosa PLK può uccidere le possibilità di riutilizzo del codice che – JohnL

+1

PLK è necessario solo per VS2008 per caricare il pacchetto, tuttavia il codice dovrebbe essere comunque riutilizzabile. AFAIK aggiungendo i comandi del menu dello strumento e le finestre degli strumenti funziona allo stesso modo su tutte e tre le versioni di VS. Una cosa che puoi fare è avere diversi progetti per ogni VS che stai bersagliando (VS2010 e VS2012 sarebbero .vsix mentre VS2008 avrebbe una distribuzione MSI) e condividere i file come collegamenti tra loro, questo dovrebbe facilitare la distribuzione/debugging per il 2010-12 (grazie a .vsix) e ogni progetto può avere come target diverse versioni .net (2008-3.5, 2010-4.0, 2012-4.5). –

+0

Sì, conoscevo le diverse tecnologie di implementazione e sono molto esperto in MSI. Riguardo a quel tipo di impostazione del progetto, l'ho visto fatto con altri progetti, anche se il nostro ragazzo non sarà felice :). Anche noi facciamo la condivisione di file-come-link cosa altro e questo confonde il diavolo con VS/TFS. Preferirei avere un progetto per ogni versione VS (tutto nello stesso sln) che contiene riferimenti a un progetto comune che ha il codice di add-on effettivo. Ma ciò che funziona, funziona indovinare – JohnL