Non c'è supporto/API MEF per l'implementazione del supporto per un nuovo sistema di progetto. Esistono due modi per implementare il supporto.
- Implementare direttamente l'API di Visual Studio. Questa opzione è estremamente complicata, ma non ti limita a un particolare sistema di build o formato di file. Se scegli questo, sei praticamente da solo.
- Utilizzare la libreria Managed Package Framework (MPF) come punto di partenza. Questa opzione è molto più semplice, a patto che ti limiti a utilizzare MSBuild per il formato del tuo progetto e il sistema di creazione.
Suppongo che tu stia andando con l'opzione # 2.
La libreria MPF era una volta parte di Visual Studio SDK, ma alla fine è stata spostata in CodePlex nel periodo in cui è stato rilasciato Visual Studio 2010. Piuttosto che usare quello, questo post si concentrerà su una versione di questa libreria che ho modificato e rilasciato su GitHub. Questa versione della libreria presenta molti vantaggi rispetto ad altre versioni precedenti, alcune delle quali sono documentate nel readme che mostra quando si segue questo link.
Managed Package Framework for Visual Studio 2010
per implementare il supporto per la lingua, è necessario effettuare le seguenti operazioni.
Implementare la riga di comando Supporto MSBuild per la tua lingua.
- Creare un file di progetto.
- Creare uno o più MSBuild
*.targets
necessari per la creazione di progetti nella propria lingua.
- Ciò probabilmente implicherà la creazione di un assieme per contenere anche attività di compilazione personalizzate.
Creare un VSPackage per implementare il supporto per il progetto MSBuild all'interno dell'IDE. Ciò consentirà a Visual Studio di aprire/salvare/chiudere i file di progetto con l'estensione scelta.
Creare uno o più "Modelli di progetto" per consentire agli utenti di creare un nuovo progetto per la propria lingua all'interno dell'IDE.
Creare uno o più "modelli di elementi di progetto" per consentire agli utenti di aggiungere facilmente file al progetto.
Questa risposta sfiora solo la superficie in questo momento, ma hai fatto una domanda molto ampia e purtroppo non ho tempo ora per entrare nel dettaglio su tutti gli aspetti di questo.
Modifica: Per quanto riguarda la distribuzione, è possibile e deve includere il VSPackage all'interno di un VSIX. Tuttavia, poiché la tua estensione dovrà installare le estensioni MSBuild in una posizione in cui i progetti utente hanno accesso standard a (C:\Program Files\MSBuild
o C:\Program Files (x86)\MSBuild
), dovrai completare l'intero processo in un programma di installazione per fornire un'installazione personalizzata. Raccomando di usare WiX per questo; non è banale ma è gratuito, funziona in modo eccezionalmente e in modo affidabile, e non è troppo impegnativo da usare una volta capito.
fonte
2013-07-06 19:36:13
Si sta provando a 1) aggiungere un modello di progetto che un utente può utilizzare per creare automaticamente un file '.csproj' e associato (o progetto per un'altra lingua inclusa in Visual Studio), oppure 2) aggiungere il supporto per un intero nuovo sistema di progetto basato su file chiamati '* .myproj' (per esempio). –
Ho davvero bisogno della risposta al mio commento precedente per procedere. Ho creato più estensioni che rientrano in entrambe queste categorie e che saranno in grado di aiutarti, ma non voglio passare un po 'di tempo solo per scoprire che ho risposto alla domanda sbagliata. –
Decisamente il secondo. Sto cercando di integrare una nuova lingua. – Puppy