Автоматическая генерация файла подписи F # (.fsi)

#f# #signature #compiler-options #signature-files

#f# #подпись #параметры компилятора #файлы подписи

Вопрос:

Я работаю над проектом, в котором есть несколько модулей, к которым я хотел бы применить ограничения контроля доступа. Я также хотел бы, чтобы мой проект содержал дополнительную документацию по сигнатурам типов каждой функции.

Я знаю, что могу очень легко выполнить обе эти задачи с помощью файлов подписи F #. Однако мой проект большой и содержит много файлов, и мне нужен удобный способ создания файла подписи для каждого из них. Мне удалось сгенерировать отдельные файлы подписи с помощью компиляции командной строки с использованием опции компилятора —sig, но я застрял на том, как добавить параметры компилятора в процедуру сборки Visual Studio.

Есть ли удобный способ, либо с помощью параметров компиляции VS, либо с помощью какого-либо скрипта командной строки, чтобы я мог создать файл подписи F # для каждого файла * .fs в моем каталоге проекта?

Спасибо.

Ответ №1:

Вы можете указать VS передавать произвольные флаги компилятору при сборке, щелкнув правой кнопкой мыши ваш проект в обозревателе решений и нажав «Свойства». На вкладке «Сборка» заполните «Другие флаги».

Указание --sig:<Some path> (с поддержкой $(Variable) настроек в стиле msbuild) автоматически сгенерирует единый объединенный .fsi файл для вашей библиотеки.

введите описание изображения здесь

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

1. Спасибо. Возможно ли генерировать отдельные файлы подписи для каждого файла в проекте?

2. Нет, насколько я знаю, нет.

3. У Visual F # Power Tools есть запрос на эту функцию , поэтому мы можем увидеть ее реализацию в не слишком отдаленном будущем.