Visual studio 2010 VS2010 DTE加载项:解决方案文件夹内的项目不是;项目“;
我有一个小vs插件,它在解决方案中查找项目,并用它做一些事情。我收集的项目如下:Visual studio 2010 VS2010 DTE加载项:解决方案文件夹内的项目不是;项目“;,visual-studio-2010,add-in,projects-and-solutions,Visual Studio 2010,Add In,Projects And Solutions,我有一个小vs插件,它在解决方案中查找项目,并用它做一些事情。我收集的项目如下: Application.DTE.Solution.Projects.OfType<Project>(); Application.DTE.Solution.Projects.OfType(); 然而,当我引入一个解决方案文件夹并在其中放置一个项目时,突然之间,那个项目就找不到了。所以,我试过了 private IEnumerable<Project> getProjectsRecurs
Application.DTE.Solution.Projects.OfType<Project>();
Application.DTE.Solution.Projects.OfType();
然而,当我引入一个解决方案文件夹并在其中放置一个项目时,突然之间,那个项目就找不到了。所以,我试过了
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>()); } }
private IEnumerable getProjectsRecursive(IEnumerable IEnumerable)
{
foreach(iEnumerable中的变量项)
{
收益回报项目;
foreach(getProjectsRecursive(item.ProjectItems.OfType())中的var子级)
{
退换子女;
}
}
}
public IEnumerable EveryProject{get{return getProjectsRecursive(Application.DTE.Solution.Projects.OfType());}
但项目仍然不存在。所以我已经手动检查了,在一个
- 直接在解决方案中进行的项目是真实的
- 直接位于解决方案中的解决方案文件夹为TRUE(小型wtf)
- 解决方案文件夹中的项目(我在
)是FALSE!!!!!(当然,显式强制转换会引发错误)文件夹中找到了它。ProjectItems
Project
,我就无法调用FullName
、Properties()
和许多其他内容,即使我强制转换为dynamic。请帮忙 答案如下:
只有几处变化:
if (project.Kind == EnvDTE.Constants.vsProjectKindSolutionItems)