UnabletoconvertDTE,projectorsolutiontoVCProjectandVCCodeModel我想通过代码获取一些关于c+=程序的信息。我在EnvDTE上取得了一些成功,现在我需要使用VCProject和VCCodeModel,我在转换方面遇到了问题(希望就这样......)在工人阶级中,我正在从Connect传递DTE“应用程序”。我有:EnvDTE.Projectproject=application.SelectedItems.Item(1).Project;EnvDTE.Solutionsol=(EnvDTE.Solution)application.Solution;我想使用“项目”,而不是解决方案中的第一个项目,就像我在网上找到的示例-如下所示-但大多数情况下我想预先准备一些东西。对于VCProject,我尝试了(在Microsoft的站点和所有其他Web示例之外):VCProjectvcProject=(VCProject)application.Solution.Projects.Item(1).Object;MessageBox.Show(vcProject.ProjectDirectory);或VCProjectvcProject=(VCProject)project.Object;对于VCCodeModel,我翻译成c#http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.vccodemodel.vccodeinclude.aspx:publicvoidGetAllIncludes(){VCCodeModelvcCM=(VCCodeModel)application.Solution.Item(1).代码模型;foreach(VCCodeIncludevcIncludeinvcCM.Includes){MessageBox.Show(vcInclude.DisplayName);两者都给出异常:“无法将‘system.__comobject’类型的com对象转换为接口类型Microsoft.VisualStudio.VCCodeModel”“无法将‘Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectShim’类型的com对象转换为输入Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProject“我该如何设置?最好使用“项目”...或application.SelectedItems...可能吗?有人可以给我一个主意吗?谢谢。当您尝试将CodeModel转换为其他VCCodeModel版本时会出现此问题。每个VS版本都有一个VCCodeModel.dll。以上是C#学习教程:DTE、工程或解决方案不能转换成VCProject和VCCodeModel共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
