Как создать надстройку Visual Studio на основе F #?

Даже если F # установлен, Visual Studio 2008 (и, возможно, 2010) предоставляет только шаблоны проектов надстройки для С#, VB.NET и С++.

Итак, как создать надстройку на основе F #?

Я попытался создать проект библиотеки классов F # с новым классом, реализующим IDTExtensibility2, установив правильные ссылки (EnvDTE, Extensibility,...), скопировав несколько атрибутов проекта из надстройки С# (главным образом, в командной строке для отладки) и создание файла манифеста .AddIn вручную, но без успеха. Когда VS запущен, моя надстройка не указана в доступных.

Каковы недостающие шаги? Где-то какая-то регистрация COM?

Ответ 1

Наконец-то я нашел, что пошло не так: я просто забыл поместить файл .AddIn в каталог AddIn (мастер С# делает это автоматически).

Итак, чтобы создать надстройку F # для Visual Studio:

  • Создайте новый проект библиотеки классов F #
  • Добавить несколько эталонных сборок в проект (в основном EnvDTE, EnvDTE80, EnvDTE90, Расширяемость)
  • Создайте новый класс, реализующий IDTExtensibility2
  • Скопируйте свойства отладки проекта Add-In на основе С# в проект F #
  • Скопируйте файл манифеста .AddIn и измените его в соответствии с вашим проектом F # *.. и не забудьте скопировать этот новый файл в каталог AddIn для сеанса пользователя.
  • наслаждайтесь!

Ответ 2

Я не пробовал этот точный сценарий, но общая стратегия, с которой мне повезло, - это начать с шаблона С#, переименовать .csproj в .fsproj и изменить <Import> для F # и заменить <Compile> кода С# с кодом F # и оттуда.

Шаблоны часто имеют для них различную важную логику для сборки/развертывания, поэтому начните с рабочего шаблона для С# и настройте его для F #.