2012-08-13 11 views
5

Sto sviluppando un pacchetto VS e parte della funzionalità che devo implementare è aggiungere un file agli elementi della soluzione correntemente aperta.Come si aggiunge un file a una soluzione al livello di programmazione?

Questa è esattamente la stessa azione che verrebbe eseguita manualmente se si fa clic con il pulsante destro del mouse su una soluzione e si seleziona Aggiungi> Elemento esistente. Quindi selezionato un file su disco.

Ho dato una buona occhiata alle interfacce DTE e DTE2 e posso vedere le operazioni per aggiungere e manipolare i progetti ma non sembrano esserci operazioni per aggiungere singoli file.

Grazie.

risposta

9

Ok, mi sono reso conto che potevo semplicemente registrare una Macro per acquisire l'operazione, quindi esaminare il codice nell'IDE Macro VS.

Il codice richiesto per fare ciò è.

DTE.ItemOperations.AddExistingItem(filePath); 
+0

Come si consegna effettivamente il file nel vstemplate? È possibile? – tofutim

+0

@tofutim Non sono sicuro di cosa stia chiedendo il tuo commento. Questa domanda non ha nulla a che fare con VS Templates. Forse hai bisogno di iniziare la tua domanda specifica? – Martyn

2

Per fare questo è necessario per accedere al ProjectItems membro del Progetto e chiamare AddFromFile()

ProjectItem pi = project.ProjectItems.AddFromFile(filePath); 
+0

Grazie per la risposta. Sto cercando di aggiungere l'elemento alla soluzione e non a un progetto specifico – Martyn

+0

Soluzione ha [AddFromFile] (http://msdn.microsoft.com/en-us/library/envdte.solution_members%28v=vs.90% 29) anche –

+1

No, quella chiamata non funziona. Si aspetta che un progetto sia fornito nel percorso che tu dai. L'ho appena capito. Vedi la mia risposta sopra. – Martyn

-1

È necessario AddFromFile alla raccolta ProjectItems di un Project

http://msdn.microsoft.com/en-us/library/envdte.projectitems.addfromfile(v=vs.100).aspx

edit:

Per aggiungere a una Solutio n, AddFromFile contro Solution

+0

Grazie per la risposta. Sto cercando di aggiungere l'elemento alla soluzione e non a un progetto specifico – Martyn

+0

Quindi chiamare 'AddFromFile' contro' Solution' – podiluska

+2

No, la chiamata non funziona. Si aspetta che un progetto sia fornito nel percorso che tu dai. L'ho appena capito. Guardami rispondere sopra. – Martyn

Problemi correlati