F # интерактивный: ссылка на проект в настоящее время открытое решение - PullRequest
27 голосов
/ 06 июня 2010

Я хотел бы использовать интерактивную консоль F # с проектами в текущем открытом решении в Visual Studio 2010. Существует ли быстрый и простой способ добавить ссылку в интерактивную консоль F # для ссылок на проекты в текущем открытом решении?

Ответы [ 6 ]

28 голосов
/ 17 февраля 2011

В верхней части моего файла .fs есть такие строки:

#if INTERACTIVE
#r @"C:\path\to\some.dll"
#I @"C:\Users\bford\path\to\a\project\in\this\solution\bin\Debug"
#r "Project.name"
#endif

Alt-Enter теперь переводит меня в fsi со всеми необходимыми загруженными материалами

19 голосов
/ 06 июня 2010

Если это проект, на который вы часто ссылаетесь, вы можете добавить ссылку «всегда» в командную строку FSI в меню Инструменты-> Параметры-> F # Инструменты-> F # интерактивные параметры. Добавьте ключ -r, например:

-r "C:\Users\yaddayadda\MyDll.dll"
19 голосов
/ 06 июня 2010

Я не думаю, что есть прямой способ ссылки на проект в решении. Лучший способ, который я могу придумать, - это добавить файл FSX в ваш проект с директивой #r:

#r @"bin\Debug\YourProject.dll"

Тогда вы можете по крайней мере сослаться на скомпилированный файл DLL, просто нажав Alt + Enter в Visual Studio. Насколько я знаю, вы не можете ссылаться на проект - вы можете ссылаться только на сборку.

В настоящее время F # Interactive действительно отключен от системы проектов в Visual Studio. Я полагаю, что более тесная интеграция была бы весьма полезна (но, вероятно, трудно обеспечить).

16 голосов
/ 06 апреля 2014

Теперь в Visual Studio 2013 вы можете добавить ссылку в интерактивное окно F #, щелкнув правой кнопкой мыши на dll, на который указывает ссылка, и нажав «Отправить в F # интерактивный».

1 голос
/ 11 мая 2015

Было бы хорошо, если бы в меню интерактивных опций Visual Studio F # было предусмотрено условие запуска скрипта, чтобы вызов мог передаваться в FSI через директиву --use:. Такой сценарий может затем передаваться метаданным решения, что позволяет более интегрировать среды, такие как загрузка последних выходных данных проекта.

1 голос
/ 18 ноября 2012

Я думаю, что было бы просто сослаться на текущий проект, получить список ссылок, которые он содержит, а затем при необходимости сгенерировать список операторов #r (и, возможно, #i) для создаваемого интерактивного сеанса, ссылающегося на dll.самого проекта.

Например: "fsi / i: pathOfLib1 / r: lib1 / i: pathOfLib2 / r: lib2 ...."

PS: основываться наВ статье MSDN не представляется, что имена библиотек могут включать префиксы их путей, следовательно, отдельные в / i и / i: http://msdn.microsoft.com/en-us/library/dd233172%28v=vs.100%29.aspx

...