2013-06-05 2 views
5

Я пытаюсь создать элемент проекта программно. У меня этот кодVisual Studio: программно создавать объекты проекта в каталоге проекта

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

Но я хотел бы создать элемент в указанной директории внутри проекта (это создает элемент в корне проекта). Является ли это возможным? Спасибо за помощь!

ответ

1

Это примерно то, как я добавляю свой файл cpp, не должен отличаться в вашем случае.

Код добавит файл в «SourceFiles \ SomeFolder» в проект, а также в папку «Исходные файлы» в дереве просмотра проекта (он уже должен быть там).

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); 

Пожалуйста, не ждите, что код для компиляции сразу и запустить - некоторые проверки для недопустимого состояния не выполняются здесь.