Я играл с написанием надстройки Visual Studio в F #, и я следил за тем, что Габриэль Кулливер и Брайан Макнамара опубликовали в ответ на this question.Какое пространство имен для EnvDTE?
Когда я поставил следующий код в файл .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 расширяемости не является «Расширяемость». Но не представляется возможным открыть DLL Расширяемость в Обозревателе объектов. Я пропустил что-то очевидное здесь? Как узнать, какие пространства имен присутствуют в Extensibility.dll?
Я также пробовал это с EnvDTE с почти той же проблемой.
Проект является модифицированным шаблоном C# (за ответ Брайана), и я могу прокомментировать все в этом файле .fs, и он создается, поэтому я думаю, что проект/решение сам по себе. В проекте есть второй файл .fs, который строит отлично, но, конечно же, ему не нужно ссылаться ни на одну из сборников EnvDTE или Extensibility.
EDIT:
Дополнительная информация:
Extensibility.dll
Версия 7.0.3300.0
Путь: C: \ Program Files \ Common Files \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Extensibility.dll
Спасибо, Джаред. Что произойдет, если вы поместите «открытую расширяемость» в пространство имен? Все в порядке? –
@Onorio да, что работает. – JaredPar
@ Jared - рискуя быть раздражающим - какая у вас версия Extensibility.dll? Версия, которая у меня есть (7.0.3300.0), живет совсем по другому пути: C: \ Program Files \ Common Files \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Extensibility.dll –