Vio*_*ffe 6 c# visual-studio visual-studio-extensions visual-studio-package
我有一个Project实例,我不明白如何找出项目类型/语言.具体来说,我需要检查一个C/C++项目.
该文档似乎缺乏.
以前,另一个人在我的开源VS扩展中添加了以下一些魔法,它在VS2013-2015中有效:
private static bool isVisualCppProject(object project)
{
Type projectObjectType = project.GetType();
var projectInterface = projectObjectType.GetInterface("Microsoft.VisualStudio.VCProjectEngine.VCProject");
return projectInterface != null;
}
...
isVisualCppProject(project.Object);
Run Code Online (Sandbox Code Playgroud)
但它不再适用于VS 2017 RC.而且我很乐意摆脱这种运行时反射魔法和un-typed object而dynamic不是Project- 因为这个代码已经变得不可维护了.
小智 2
您可以通过项目扩展名来确定项目类型,下面的演示供您参考。
DTE2 dte = (DTE2)this.ServiceProvider.GetService(typeof(DTE));
Solution2 solution = (Solution2)dte.Solution;
foreach (Project p in solution.Projects)
{
string[] projectName = p.FullName.Split('.');
if (projectName.Length > 1)
{
string fileExt = projectName[projectName.Length-1];
if (fileExt == "vcxproj")
{
//is c/c++ porject
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |