Тип взаимодействия 'ProjectKinds' не может быть встроен. Вместо этого используйте соответствующий интерфейс - PullRequest
0 голосов
/ 28 июня 2018

Я занимаюсь разработкой визуального расширения студии, но, к сожалению, я не могу проверить тип проекта, пожалуйста, следуйте коду:

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

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Visual Studio 2017 версии 15.8 позволил использовать синтаксис PackageReference для ссылки на пакеты NuGet в проектах Visual Studio Extensibility (VSIX). Это значительно упрощает рассуждение о пакетах NuGet и открывает возможность получения полного метапакета, содержащего весь VSSDK.

Установка ниже пакета NuGet решит проблему EmbedInteropTypes .

Install-Package Microsoft.VisualStudio.SDK.EmbedInteropTypes

0 голосов
/ 10 сентября 2018

Общий совет, который можно найти в Интернете, состоит в том, чтобы установить "Типы взаимодействия вставок" в значение 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
...