перезагрузка типа провайдеров - PullRequest
6 голосов
/ 27 февраля 2012

Я использую MiniCSVTypeProvider, предоставленный в примерах fsharp powerpack.

К сожалению, он считает, что предоставленные значения являются плавающими, в то время как мои имеют различные (различные) форматы.Поэтому я переписал провайдер MiniCsvType, чтобы вместо него всегда предоставлять строки, оставляя вызывающей стороне работу по анализу.

Но по какой-то странной причине, после разыменования старой DLL и включения ссылки на новую DLL, он продолжал предоставлять float, используя провайдера старого типа.Мне пришлось изменить имена сборок и классов, чтобы VS обновил его.

Есть ли другие способы отозвать / сбросить прежний поставщик типов, чтобы VS учел это изменение?

Ответы [ 2 ]

7 голосов
/ 27 февраля 2012

В общем, при разработке провайдера типов вам необходимо завершить работу экземпляра VS, который потребляет провайдера типов, чтобы обновить провайдера. Обычный рабочий процесс состоит в том, чтобы иметь два экземпляра VS: один, который работает над кодом самого провайдера типов, который остается открытым, и другой, который ссылается на / использует / тестирует провайдера, который вы закрываете каждый раз, когда собираетесь внести изменения , Потребительская VS часто блокирует DLL на диске, а также не может выгружать / перезагружать сборку в ее процесс, поэтому вам нужно завершить процесс VS, чтобы выполнить итерацию реализации вашего поставщика типов.

1 голос
/ 13 июня 2014

Немного поздно, но, столкнувшись с той же проблемой, я решил ее, деактивировав и повторно активировав провайдера типов из меню Сервис -> Параметры -> Инструменты F # -> Поставщики типов. (Я использую VS2013)

...