2010-10-05 3 views
1

Я играл с написанием надстройки 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

ответ

2

Я не су повторите то, что происходит в вашей ситуации, но я подтвердил, что это работает в F #. Вот мои шаги

  1. Новый F # приложений
  2. добавить ссылку на расширяемости DLL

Затем я добавил следующий код для проверки ссылок. Он компилируется чисто.

open Extensibility 
let x : IDTExtensibility2 = null 
printfn "foo" 

Путь я использовал для расширяемости DLL является

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Tools Visual Studio для Office \ PIA \ Common \ Extensibility.dll

+0

Спасибо, Джаред. Что произойдет, если вы поместите «открытую расширяемость» в пространство имен? Все в порядке? –

+0

@Onorio да, что работает. – JaredPar

+0

@ Jared - рискуя быть раздражающим - какая у вас версия Extensibility.dll? Версия, которая у меня есть (7.0.3300.0), живет совсем по другому пути: C: \ Program Files \ Common Files \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Extensibility.dll –

Смежные вопросы