Наша среда сборки - VS 2015 (в идеале), ориентированная на .net 4.0.
Мы только что переработали наши плагины Visual Studio на основе шаблона проекта расширяемости Visual Studio в VS 2015. В результате VSIX отлично работает в VS 2015 и 2017 RC1.
Однако я хотел бы нацелить VSIX на VS 2010 (а в идеале 2012). Вот тут и начинаются проблемы ....
- VS 2010 использует .net 4.0.
- Сбрасываю компилятор на .net 4.0
- Сборки VS 2015 (4.5) не загружаются (например, Microsoft.VisualStudio.Shell.14.0).
- Ничего страшного, я в них ничего не использую, поэтому я отбрасываю ссылки на них в пользу версий 10.0 (2010).
- Отлично компилируется код.
- Но пакет VSIX не
1> C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets (1820,5): предупреждение MSB3274: основная ссылка «Microsoft.VisualStudio.Imaging, Version = 14.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL "не удалось разрешить, потому что он был создан на основе платформы .NETFramework, Version = v4.5". Это более поздняя версия, чем текущая целевая платформа .NETFramework, Version = v4.0.
Таким образом, проблема, похоже, в том, что если я нацелен на VS 2010, мне нужно, чтобы он создавался как .net 4.0, но для сценария сборки VS 2015 требуется .net 4.5.
Мне интересно, можно ли использовать инструменты сборки VS 2010 в проекте VS 2015? Или мне нужно преобразовать мой проект VS 2015 обратно в VS 2010?
ОБНОВЛЕНИЕ
Начинаю думать, что это невозможно по другим причинам ...
https://docs.microsoft.com/en-us/visualstudio/extensibility/faq-2017
Новый формат VSIX v3 обратно совместим с VSIX v2, поэтому вы по-прежнему сможете иметь один VSIX с одним идентификатором VSIX ID, который поддерживает Visual Studio 2012 и более поздних версий. Новый формат VSIX v3 не поддерживает Visual 2010 и более ранние версии. Для поддержки Visual Studio 2010 и более поздних версий вам потребуется создать отдельное расширение (с отдельным идентификатором VSIX).