2013-06-05 1 views
5

J'essaie de créer un élément de projet par programmation. J'ai ce codeVisual Studio: créer par programme des éléments de projet dans le répertoire du projet

  string itemPath = currentSolution.GetProjectItemTemplate("ScreenTemplate.zip", "csproj"); 
     currentSolution.Projects.Item(1).ProjectItems.AddFromTemplate(itemPath, name); 
     currentSolution.Projects.Item(1).Save(); 

Mais je voudrais créer l'élément dans un répertoire spécifié dans le projet (ce qui crée l'élément à la racine du projet). C'est possible? Merci pour l'aide!

Répondre

1

C'est à peu près comment j'ajoute mon fichier cpp, ne devrait pas être différent dans votre cas.

Le code ajoutera le fichier sous "SourceFiles \ SomeFolder" dans le projet et également dans le dossier "Source Files" dans l'arborescence de la vue du projet (il devrait déjà être là).

Project project = null; // you should get the project from the solution or as active project or somehow else 
string fileName = "myFileName.cpp"; 
string fileRelativePath = "SourceFiles\\SomeFolder\\" + fileName; 

// First see if the file is already there and delete it (to create an empty one) 
string fileFullPath = Path.GetDirectoryName(project.FileName) + "\\" + fileRelativePath; 
if (File.Exists(fileFullPath)) 
    File.Delete(fileFullPath); 

// m_applicationObject here is DTE2 or DTE2 
string templatePath = (m_applicationObject.Solution as Solution2).ProjectItemsTemplatePath(project.Kind); 

ProjectItem folderItem = project.ProjectItems.Item("Source Files"); 
ProjectItem myFileItem = folderItem.ProjectItems.AddFromTemplate(templatePath + "/newc++file.cpp", fileRelativePath); 

S'il vous plaît ne vous attendez pas le code pour compiler et exécuter immédiatement - certains contrôles pour état non valide ne sont pas effectuées ici.

Questions connexes