重新加载类型提供程序

6
我正在使用fsharp powerpack样例中提供的MiniCSVTypeProvider。不幸的是,它认为我提供的值是浮点数,而我的值具有各种(不同)格式。因此,我重写了MiniCsvType提供程序,始终提供字符串,将解析工作留给调用者。
但由于某种奇怪的原因,在取消引用旧的DLL并包含对新DLL的引用后,它仍然提供浮点数,并使用旧的类型提供程序。我不得不更改程序集和类的名称,以便VS刷新。
是否有其他方式来撤销/重置以前的类型提供程序,以便VS考虑到这个更改?
2个回答

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

有没有在同一个Visual Studio中拥有这个功能会很棒?这是可能的,通过引入“分阶段执行”的概念,在编程时假定所有更深层次的级别都已经运行。更深层次的任务是为其下一级提供类型或变量(也称单例类型)。 - nicolas

1

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


1
这个选项似乎已经从VS2015中删除了。它是否被移到了其他地方?或者我需要重新启动Visual Studio以释放类型提供程序锁定吗? - Yodiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接