重新加载类型提供者

时间:2012-02-27 18:25:06

标签: visual-studio f# type-providers

我正在使用fsharp powerpack示例中提供的MiniCSVTypeProvider。

不幸的是,它认为提供的值是浮动的,而我的是各种(变化的)格式。因此,我重写了MiniCsvType提供程序,以便始终提供字符串,将解析工作留给调用者。

但由于一些奇怪的原因,在解除引用旧DLL并包含对新DLL的引用之后,它使用旧类型提供程序继续提供浮动。我不得不更改程序集和类的名称以让VS刷新它。

还有其他方法可以撤销/重置以前的类型提供程序,以便VS将更改考虑在内吗?

2 个答案:

答案 0 :(得分:7)

通常,在开发类型提供程序时,您需要关闭正在使用类型提供程序的VS实例才能更新提供程序。一个常见的工作流程是拥有两个VS实例:一个用于处理类型提供程序本身的代码,一个保持打开状态,另一个用于引用/使用/测试提供程序,每次进行更改时关闭。消费者VS经常将DLL锁定在磁盘上,也无法将程序集卸载/重新加载到其进程中,这就是为什么需要结束VS进程来迭代类型提供程序实现的原因。

答案 1 :(得分:1)

有点晚了,但遇到同样的问题,我通过从工具中停用并重新激活类型提供程序来解决它 - >选项 - > F#工具 - >输入提供者。 (我正在使用VS2013)