EnvDTE 循环访问解决方案中的子文件夹
本文关键字:文件夹 解决方案 循环 访问 EnvDTE | 更新日期: 2023-09-27 17:55:14
在
VS解决方案中具有以下结构:
现在,我想获取对"目录"文件夹的引用并将其存储在变量中:
//Solution_Name
// ConfigurationObjects
// Catalogs
// Documents
foreach (Project item1 in AttachedSolution.Projects)
{
if (item1.Kind == ProjectKinds.vsProjectKindSolutionFolder)
{
if (item1.Name == "ConfigurationObjects")
{
SolutionFolder catalogBaseFolder = (SolutionFolder)item1.Object;
foreach (ProjectItem item2 in item1.ProjectItems)
{
if ( item2.Name == "Catalogs")
{
this.CatalogObjectsFolder = (SolutionFolder)item2;
// raises error here: Unable to cast COM object of type
//'System.__ComObject'
//to interface type 'EnvDTE80.SolutionFolder'.
};
};
};
};
};
感谢您的帮助。
不是第一级的解决方案文件夹建模为 EnvDTE.Project,而不是 EnvDTE80.SolutionFolder。可以使用 projectItem.SubProject 属性从项目项中获取项目。然后使用 Project.Object 获取 EnvDTE80.SolutionFolder
看:
如何:从 Visual Studio .NET 宏或外接程序导航解决方案的文件
如何在另一个解决方案文件夹中创建解决方案文件夹