Tha*_*lia 7 c# add-in visual-studio-2010 envdte
我试图通过代码获取有关c + =程序的一些信息.我在EnvDTE上取得了一些成功,现在我需要使用VCProject和VCCodeModel,我遇到了投射问题(希望这就是全部...)
在工人阶级,我"application"从Connect传递了DTE .
我有:
EnvDTE.Project project = application.SelectedItems.Item(1).Project;
EnvDTE.Solution sol = (EnvDTE.Solution)application.Solution;
我想使用"项目",而不是解决方案中的第一个项目作为我在网络上找到的例子 - 如下所示 - 但大多数情况下,我希望有一些先行的.
对于VCProject,我尝试过(关闭Microsoft的网站以及所有其他Web示例):
VCProject vcProject = (VCProject)application.Solution.Projects.Item(1).Object;
MessageBox.Show(vcProject.ProjectDirectory);
要不就
VCProject vcProject = (VCProject)project.Object;
对于VCCodeModel,我翻译为c#http : //msdn.microsoft.com/en-us/library/microsoft.visualstudio.vccodemodel.vccodeinclude.aspx:
public void GetAllIncludes()
{
  VCCodeModel vcCM = (VCCodeModel)application.Solution.Item(1).CodeModel;
  foreach (VCCodeInclude vcInclude in vcCM.Includes)
  {
    MessageBox.Show(vcInclude.DisplayName);
  }    
}
两者都给予例外:
"unable to cast com object of type 'system.__comobject' to interface type Microsoft.VisualStudio.VCCodeModel"
"unable to cast com object of type 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectShim' to type Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProject"
我怎么设置它?最好使用"项目"......或application.SelectedItems......有可能吗?
有人可以给我一个想法吗?谢谢.
| 归档时间: | 
 | 
| 查看次数: | 1762 次 | 
| 最近记录: |