Я играл над написанием надстройки для Visual Studio на F # и следил за некоторыми вещами, которые Габриэль Калливер и Брайан Макнамара опубликовали в ответ на этот вопрос .
Когда я помещаю следующий код в файл .fs в VS 2010
namespace TestFSharpAddIn
open System
open Extensibility
//open EnvDTE
//open EnvDTE80
do()
При попытке собрать мне выдается следующая ошибка:
The namespace or module 'Extensibility' is not defined
Я добавил ссылку на Extensibility.dll, поэтому я предполагаю, что пространство имен в dll Extensibility не является "Extensibility". Но не представляется возможным открыть dll Extensibility в обозревателе объектов. Я что-то упускаю здесь очевидное? Как я могу узнать, какие пространства имен присутствуют в Extensibility.dll?
Я также пытался сделать это с EnvDTE с почти такой же проблемой.
Проект представляет собой модифицированный шаблон C # (согласно ответу Брайана), и я могу закомментировать все в этом файле .fs, и он создается так, что я думаю, что сам проект / решение в порядке. В проекте есть второй файл .fs, который прекрасно собирается, но, разумеется, он не должен ссылаться ни на одну из сборок EnvDTE или Extensibility.
РЕДАКТИРОВАТЬ:
Дополнительная информация:
Extensibility.dll
Версия 7.0.3300.0
Путь: C: \ Program Files \ Common Files \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Extensibility.dll