我正在玩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
答案 0 :(得分:2)
我不确定你的情况是怎么回事,但我已经证实这在F#中有效。这是我的步骤
然后我添加了以下代码来验证引用。它编译得很干净。
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