Как зарегистрировать путь к F # Interactive на постоянной основе

#.net #f# #f#-interactive

#.net #f# #f #-интерактивный

Вопрос:

У меня есть решение с несколькими проектами F #. Я могу легко ссылаться между проектами, используя относительный путь.

Однако, если я хочу использовать этот проект в файле .fsx в другом проекте, я должен указать абсолютный путь к соответствующему dll-файлу, что довольно неудобно. Я заметил, что на F # Powerpack можно было бы ссылаться в F # Interactive удобным способом:

 #r "FSharp.Powerpack.dll"
 

Как я могу зарегистрировать путь к F # Interactive на постоянной основе или ссылаться на проект для использования в F # Interactive без указания абсолютного пути?

Ответ №1:

Как указал Дэниел, на F # PowerPack можно ссылаться, используя короткое имя, поскольку он установлен в GAC (глобальный кэш сборок). Для этого требуется, чтобы сборка была подписана, и я обычно не стал бы часто использовать ее для несистемных библиотек.

Если расположение вашей сборки всегда одно и то же относительно файла сценария F # (т. Е. Если файл сценария является частью проекта), вы можете использовать относительный путь:

 #r @"..LibrarybinDebugLibrary.dll"
 

Другой альтернативой является создание некоторой пользовательской папки и указание F # Interactive искать сборки в этой папке. Это можно сделать, добавив аргумент командной строки -I:"C:yourfolder" в процесс F # Interactive (в Visual Studio перейдите в «Параметры», затем «F # Tools» и измените «F # Interactive options»).

Ответ №2:

Вы можете использовать #I для установки пути к каталогу один раз. Затем используйте #r оттуда только имя файла. В случае PowerPack это, скорее всего, в GAC, поэтому требуется только имя сборки.

Комментарии:

1. С #I мне все равно приходится использовать абсолютные пути для каждого файла fsx, который я хочу запустить. Это неудобно для работы с одной и той же кодовой базой на нескольких машинах.