F# определение / использование типа / модуля в другом файле в том же проекте
это, надеюсь, будет полегче. У меня есть проект F# (последний F# CTP) с двумя файлами (программа.ФС, стек.файловая система.) в штабеля.ПС у меня есть простое пространство имен и определение типа
стек.fs
namespace Col
type Stack=
...
теперь я пытаюсь включить пространство имен в программу.ФС путем объявления
open Col
это не работает и дает мне ошибку "пространство имен или модуль Col не определен."Пока это в рамках одного проекта. Я должен что-то упустить очевидно
4 ответа:
в каком порядке находятся файлы в проекте? Стек.ФС должен предстать перед программой.fs для программы.fs, чтобы иметь возможность "видеть" его.
Смотрите также начало
http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!444.entry
и конец
http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!347.entry
У меня были те же проблемы, и вы правы, порядок файлов учитывается компилятором. Вместо шаблона удалить и добавить можно использовать элементы переместить вверх / переместить вниз в контекстном меню, связанном с шаблоном .файлы ФС. (Alt-Up и Alt-Down-это сочетания клавиш в большинстве стандартных Привязок клавиш)
все вышеперечисленное верно, но как это сделать в VS2013-это другой вопрос. Мне пришлось редактировать мой .fsproj файл в Notepad++ и установить порядок узла ItemGroup. В данном случае это будет выглядеть так:
<ItemGroup> <Compile Include="Stack.fs" /> <Compile Include="Program.fs" /> <None Include="App.config" /> </ItemGroup>
У меня была та же проблема и это действительно был заказ файлов. Однако ссылки выше не описывают, как исправить это в Visual Studio 2008 F# 1.9.4.19.
Если вы откроете модуль, убедитесь, что ваш исходный файл приходит после зависимость в обозревателе решений. Просто щелкните правой кнопкой мыши источник и выберите Удалить. Затем снова добавьте его. Этого он появится в нижней части списка. Надеюсь, у вас нет циклических зависимостей.