无法嵌入互操作类型“ ProjectKinds”。改用适用的界面

Igo*_*iro 4 c# envdte visual-studio-templates visual-studio-2017

我正在开发Visual Studio扩展程序,但很遗憾,我无法检查项目类型,请查看以下代码:

 if (project.Kind == EnvDTE80.ProjectKinds.vsProjectKindSolutionFolder)
            {
                list.AddRange(GetSolutionFolderProjects(project));
            }
            else
            {
                list.Add(project);
            }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Rob*_*and 5

在线找到的常见建议是将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 -适用接口代替/

基本上,

  1. 查找的定义ProjectKinds(您可以通过右键单击并选择“转到定义”来执行此操作)
  2. 在您的项目中ProjectKinds使用其他名称(即EnvDteProjectKinds)进行复制
  3. EnvDteProjectKinds在您本该使用的项目中使用ProjectKinds