При динамической ссылке на сборки в .fsx с использованием #I
и #r
, VS выделяет следующие варианты использования импортированных типов и пишет «Пространство имен или модуль "XXX" не определено ". Это нормально?
Например, в следующем коде
#I @".\Tools\FAKE"
#r "FakeLib.dll"
open Fake
Target "Hello" (fun _ -> trace "hello!")
Run "Hello"
VS выделяет Fake
и говорит: «Пространство имен или модуль 'Fake' не определено», а также выделяет Target
и ] Выполните
. У меня эта проблема в VS 2010 SP1 и в VS 11 CTP. Эта проблема делает написание сценариев F # немного сложнее, чем могло бы быть.
Кстати, IntelliSence для «общих» типов работает хорошо. FakeLib.dll
и FakeLib.xml
находятся в каталоге . \ Tools \ FAKE
. Код работает хорошо.
Обновление 1
Вот скриншот ситуации. Вы можете видеть, что VS правильно разрешает сборку FakeLib
(во всплывающей подсказке), и в то же время Intellisense «видит» стандартные типы (всплывающая подсказка над Консоль
) класс.
Обновление 2
Я думаю, что что-то не так с IntelliSense на моей рабочей станции, потому что он (IntelliSense) ведет себя довольно странно. Когда запускаю VS и открываю.fsx, IntelliSense отказывается распознавать даже стандартные типы / классы, и он не подчеркивает FAKE
классы, он ничего не делает. Но по прошествии некоторого времени и некоторых манипуляций с кодом IntelliSense начинает работать со стандартными типами и подчеркивает FAKE
типы.
Более того, когда я создал аналогичный код на своей домашней рабочей станции, проблем не было, IntelliSense работает как надо.