поставщики типов перезагрузки

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

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

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

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


person nicolas    schedule 27.02.2012    source источник


Ответы (2)


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

person Stefan Turcanu    schedule 13.06.2014
comment
Эти параметры должны быть удалены из VS2015. Он находится где-то еще? Или мне нужно перезапустить Visual Studio, чтобы снять блокировку поставщика типов? - person Yodiz; 18.08.2016

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

person Brian    schedule 27.02.2012
comment
Было бы здорово иметь это в той же Visual Studio? Это было бы возможно с понятием «поэтапного выполнения», когда уровень, на котором вы программируете, предполагает, что все более глубокие уровни выполнялись ранее. Миссия более глубокого уровня состоит в том, чтобы предоставить типы или переменные (они же одноэлементные типы) на их следующий уровень. - person nicolas; 28.02.2012