Подтвердить что ты не робот

Почему я не могу добавить подпапку в проекте F #?

В большинстве проектов .NET я могу использовать папку для организации файлов кода. В С++ я не могу, но фильтры в конечном итоге играют ту же роль. Однако в F # с Visual Studio 2010 я не могу. Каждый файл кода отображается непосредственно в директории проекта. Почему эта функция недоступна?

А какая оптимальная стратегия для организации проекта с большим количеством файлов?

4b9b3361

Ответ 1

На самом деле вы можете добавлять папки в проекты F #, но не напрямую через Visual Studio (вам нужно самостоятельно отредактировать файл проекта): http://fsprojectextender.codeplex.com/ (изменить: ссылка была удалена, обновлена ​​до домашней страницы F # Project Extender, которая имеет ссылки на исходные сообщения в блоге, которые были перемещены) (что я нашел в this ответ).

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

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

Ответ 2

Вручную редактирование файла .fsproj, как описано в ответе Стивена, является одним из вариантов (и я использовал его, когда я хотел организовать один более крупный проект).

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

Кроме того, есть также инструмент под названием F # Project Extender, который должен сделать вещи немного легче для вас. Я еще не пробовал, но похоже, что он поддерживает добавление папок (и, возможно, других полезных вещей). См., Например, это сообщение в блоге автором проекта.