F# определение / использование типа / модуля в другом файле в том же проекте


это, надеюсь, будет полегче. У меня есть проект F# (последний F# CTP) с двумя файлами (программа.ФС, стек.файловая система.) в штабеля.ПС у меня есть простое пространство имен и определение типа

стек.fs

namespace Col

type Stack= 
 ...

теперь я пытаюсь включить пространство имен в программу.ФС путем объявления

open Col

это не работает и дает мне ошибку "пространство имен или модуль Col не определен."Пока это в рамках одного проекта. Я должен что-то упустить очевидно

4 61
f#

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.

Если вы откроете модуль, убедитесь, что ваш исходный файл приходит после зависимость в обозревателе решений. Просто щелкните правой кнопкой мыши источник и выберите Удалить. Затем снова добавьте его. Этого он появится в нижней части списка. Надеюсь, у вас нет циклических зависимостей.