F# интерактивный: ссылка на проект в настоящее время открытое решение

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

6 ответов

Решение

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

-r "C:\Users\yaddayadda\MyDll.dll"

У меня есть такие строки в верхней части моего файла.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 теперь бросает меня в ФСИ со всеми необходимыми материалами загружены

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

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

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

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

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

Я думаю, что было бы просто ссылаться на текущий проект, получить список ссылок, которые он содержит, а затем при необходимости сгенерировать список операторов #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

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

Другие вопросы по тегам