我有一个小型vs外挂程式,可在解决方案中寻找项目,并做一些处理。我收集这样的项目:
Application.DTE.Solution.Projects.OfType<Project>();
但是,一旦我引入了一个解决方案文件夹并在其中放置了一个项目,突然就找不到该项目了。所以,我试过了
private IEnumerable<Project> getProjectsRecursive(IEnumerable<Project> iEnumerable)
{
foreach (var item in iEnumerable)
{
yield return item;
foreach (var child in getProjectsRecursive(item.ProjectItems.OfType<Project>()))
{
yield return child;
}
}
}
public IEnumerable<Project> EveryProject { get { return getProjectsRecursive(Application.DTE.Solution.Projects.OfType<Project>()); } }
该项目仍然不存在。所以我已经手动检查了,在
直接在解决方案内部的
item is Project
中找到了它)是 FALSE !!!!! (当然,显式转换也会引发错误)到底是什么?
如果不将其强制转换为
folder.ProjectItems
,即使将其强制转换为dynamic,我也无法在其上调用Project
,FullName
和许多其他东西。请帮忙! 最佳答案
答案在这里:http://www.wwwlicious.com/2011/03/29/envdte-getting-all-projects-html/
只需几处更改:
if (project.Kind == EnvDTE.Constants.vsProjectKindSolutionItems)
关于visual-studio-2010 - VS2010 DTE插件: project inside solution folder is not “Project” ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6410911/