Visual Studio:以编程方式在项目目录中创建项目项

时间:2013-06-05 19:06:37

标签: c# visual-studio solution envdte

我正在尝试以编程方式创建项目项。我有这个代码

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

但我想在项目内的指定目录中创建项目(这会在项目的根目录中创建项目)。可能吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

这大致是我添加cpp文件的方式,在你的情况下应该没有什么不同。

代码将在项目中的“SourceFiles \ SomeFolder”下添加文件,并在项目视图树的“Source Files”文件夹中添加(它应该已经存在)。

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

请不要指望代码直接编译并运行 - 这里不会执行一些无效状态检查。