无法嵌入Interop类型'ProjectKinds'。请改用适用的界面

问题描述 投票:4回答:1

我正在开发一个visual studio扩展,但不幸的是我无法检查项目类型,请查看de follow code:

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

enter image description here

c# visual-studio-2017 envdte visual-studio-templates
1个回答
4
投票

在线发现的常见建议是将“嵌入互操作类型”设置为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
© www.soinside.com 2019 - 2024. All rights reserved.