EnvDTE的命名空间是什么?

时间:2010-10-05 20:30:49

标签: visual-studio f#

我正在玩F#中的Visual Studio加载项,我正在跟随Gabriel Culliver和Brian McNamara发布的回复this question的一些内容。

当我将以下代码放入VS 2010中的.fs文件

namespace TestFSharpAddIn
    open System
    open Extensibility
    //open EnvDTE
    //open EnvDTE80
    do()

当我尝试构建时,它给出了以下错误:

The namespace or module 'Extensibility' is not defined

我添加了对Extensibility.dll的引用,所以我假设Extensibility dll中的命名空间不是“Extensibility”。但似乎无法在对象浏览器中打开扩展性dll。我错过了一些明显的东西吗?如何找出Extensibility.dll中存在哪些命名空间?

我也和EnvDTE一起尝试过这个问题。

该项目是一个经过修改的C#模板(根据Brian的回答),我可以注释掉这个.fs文件中的所有内容并构建它,所以我认为项目/解决方案本身是可以的。在项目中有第二个.fs文件构建正常,但是,当然,它不需要引用任何EnvDTE或Extensibility程序集。


编辑:

其他信息:

Extensibility.dll

版本7.0.3300.0

路径:C:\ Program Files \ Common Files \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Extensibility.dll

1 个答案:

答案 0 :(得分:2)

我不确定你的情况是怎么回事,但我已经证实这在F#中有效。这是我的步骤

  1. 新F#应用程序
  2. 添加对可扩展性DLL的引用
  3. 然后我添加了以下代码来验证引用。它编译得很干净。

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

    我用于可扩展性DLL的路径是

      

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