Можно ли запускать fsx-файлы из Visual Studio без настройки проекта? - PullRequest
11 голосов
/ 18 февраля 2012

Я хочу использовать F # для некоторых очень простых задач, для которых я ранее использовал командные файлы. Я могу связать fsx файлы с fsi.exe и запустить его, просто дважды щелкнув по ним. Пока все отлично.

Однако иногда я мог бы захотеть погрузиться в код глубже и отладить вещи. Когда я открываю файл fsx в Visual Studio, я не могу его запустить, но также не могу выделить строки и использовать «Отправить в интерактив».

Мне кажется, что эти команды работают, только если вы настроили полный проект F #. Это кажется громоздким (как замена пакетного файла). Интересно, какой подход правильный? Я хочу съесть свой пирог и съесть его! Мне нужен простой файл, который я могу быстро изменить, но мне также нужна возможность использовать анализ в Visual Studio по требованию.

UPDATE Я только что понял, что вы можете открыть интерактивную консоль в «View \ Other Windows \ F # Interactive», и после этого у вас есть команда «Send to Interactive».

Мне все еще не хватает возможности запустить код и установить точки останова, хотя ..

1 Ответ

17 голосов
/ 18 февраля 2012

Как вы уже обнаружили, вам не нужно создавать проект для использования интерактивной консоли F #.

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

Хотя это не совсем поддерживаемая функция, вы можете отлаживать код в файле скрипта, используя только F # Interactive. Хитрость заключается в том, чтобы подключить отладчик к процессу fsi.exe, который работает за F # Interactive.

Просто зайдите в «Отладка» -> «Присоединить к процессу» и выберите «fsi.exe». Тогда вы сможете разместить точки торможения в файле сценария fsx, и код, работающий в F # Interactive, сломается. Как я уже сказал, это не очень поддерживается, но обычно хорошо работает с кодом в функциях. Я не нахожу это полезным как часто, но это может быть полезно время от времени.

...