【发布时间】:2012-12-07 20:21:08
【问题描述】:
我已使用 EnvDTE 列出了我的解决方案中的所有项目,但我在代码中发现了一个错误:我无法获取已卸载的项目。
我找到了跳过卸载项目的方法:
if (string.Compare(EnvDTE.Constants.vsProjectKindUnmodeled, project.Kind, System.StringComparison.OrdinalIgnoreCase) == 0)
continue;
这样,我的代码不会崩溃 - 但我无法通过代码加载缺少的项目,因为它们已经存在。
如何将卸载的项目加载到解决方案中?
我试过了:
project.DTE.ExecuteCommand("Project.ReloadProject");
得到错误:
System.Runtime.InteropServices.COMException (...):命令“Project.ReloadProject”不可用。
所以我试图以某种方式得到
application.DTE.ExecuteCommand("Project.ReloadProject");
但在此之前,我必须从我在 NET 上搜索的每个地方预先选择解决方案中的项目 - 为此,我需要 project.Name(我有)和路径,我没有t(我发现的每个示例都假定解决方案路径与项目路径相同,这在一般情况下极不可能)。
【问题讨论】:
-
application是什么类型(完整命名空间)?
标签: c# projects-and-solutions envdte