首页 > 解决方案 > 无法嵌入互操作类型“ProjectKinds”。改用适用的接口

问题描述

我正在开发一个视觉工作室扩展,但不幸的是我无法检查项目类型,请查看以下代码:

 if (project.Kind == EnvDTE80.ProjectKinds.vsProjectKindSolutionFolder)
            {
                list.AddRange(GetSolutionFolderProjects(project));
            }
            else
            {
                list.Add(project);
            }

在此处输入图像描述

标签: c#visual-studio-2017envdtevisual-studio-templates

解决方案


在网上找到的常见建议是将“嵌入互操作类型”设置为 false,以便 EnvDTE80 引用为 false。然而,这对我不起作用。我不确定这对于 VS 2017 是否是新的。

我发现这个 MSDN 页面对我有帮助:https ://blogs.msdn.microsoft.com/mshneer/2009/12/07/vs-2010-compiler-error-interop-type-xxx-cannot-be-embedded-use -the-applicable-interface-instead/

基本上,

  1. 找到的定义ProjectKinds(您可以通过右键单击并选择“转到定义”来完成)
  2. 在您的项目中ProjectKinds使用不同的名称(即。 )制作副本EnvDteProjectKinds
  3. EnvDteProjectKinds在您本来会使用的项目中使用ProjectKinds

推荐阅读