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

В моем текущем проекте VSIX я получаю следующую ошибку:

Interop type 'ProjectKinds' cannot be embedded. Use the applicable interface instead

Естественно, я погуглил его, и почти все SO ответы предлагают перейти к справочнику проекта - в моем случае envDTE80 - и установить для "Embed Interop Types" значение false. Однако я уже проверил это, и это не решает проблему.

Я также проверил «похожие» ссылки (EnvDTE, EnvDTE100 и EnvDTE90), и для всех их «Типов встроенного взаимодействия» установлено значение false.

Код, который я пытаюсь сделать:

private static string test = ProjectKinds.vsProjectKindSolutionFolder;

РЕДАКТИРОВАТЬ # 1: Я также проверил .csproj и подтвердил, что свойство ложно

<Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
  <EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>

РЕДАКТИРОВАТЬ # 2: Microsoft, кажется, предлагают скорее .. Хакерское решение в качестве крайней меры. Мне не кажется чистым, но это работает в конце дня.

https://blogs.msdn.microsoft.com/mshneer/2009/12/07/vs-2010-compiler-error-interop-type-xxx-cannot-be-embedded-use-the-applicable-interface-instead/

...