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