これはうまくいけば簡単なものになるでしょう。 2つのファイル(Program.fs、Stack.fs)を含むF#プロジェクト(最新のF#CTP)があります。 Stack.fsには単純な名前空間と型定義があります
Stack.fs
namespace Col
type Stack=
...
次のように宣言して、Program.fsに名前空間を含めようとします
open Col
これは機能せず、「名前空間またはモジュールColが定義されていません」というエラーが表示されます。しかし、それは同じプロジェクト内で定義されています。私は明白な何かを見逃している必要があります
プロジェクト内のファイルの順序は? Program.fsがそれを「見る」ことができるようにするには、Stack.fsがProgram.fsの前に来る必要があります。
の始まりも参照
http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!444.entry
そしての終わり
http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!347.entry
私も同じ問題を抱えていました。そうです、ファイルの順序はコンパイラーによって考慮されます。削除と追加のパターンの代わりに、.fsファイルに関連付けられたコンテキストメニューの[上に移動]/[下に移動]項目を使用できます。 (Alt-UpとAlt-Downは、ほとんどの標準キー割り当てのショートカットキーです)
上記はすべて正しいですが、VS2013でこれを行う方法は別の質問です。 Notepad ++で。fsprojファイルを編集して、ItemGroupノードの順序を設定する必要がありました。この場合、次のようになります。
<ItemGroup>
<Compile Include="Stack.fs" />
<Compile Include="Program.fs" />
<None Include="App.config" />
</ItemGroup>
私は同じ問題を抱えていて、それは確かにファイルの順序でした。ただし、上記のリンクには、Visual Studio 2008 F#1.9.4.19で修正する方法が記載されていませんでした。
モジュールを開く場合は、ソースファイルがソリューションエクスプローラーの依存関係afterに依存していることを確認してください。ソースを右クリックして[削除]を選択します。次に、再度追加します。これにより、リストの一番下に表示されます。うまくいけば、循環依存関係はありません。
Visual Studio for Mac-8.1.4を使用していますが、一部の.fsファイルが「コンパイル」としてマークされていません。ビルド出力を表示してこれを確認し、すべてのファイルがそこにあり、正しい順序であるかどうかを確認できます。
特定のファイルが「コンパイル」とマークされていることを手動で確認する必要があり、「テイク」するまで手動でファイルを上下に移動する必要がありました。