web-dev-qa-db-fra.com

F # Définition / utilisation d'un type / module dans un autre fichier dans le même projet

J'espère être facile. J'ai un projet F # (Dernier F # CTP) avec deux fichiers (programme.fs, stack.fs). Dans stack.fs j'ai un espace de noms simple et une définition de type

Pile.fs

namespace Col

type Stack= 
 ...

Maintenant j'essaie d'inclure l'espace de noms dans Program.fs en déclarant

open Col

Cela ne fonctionne pas et ne me donne pas l'erreur "L'espace de noms ou le col de module n'est pas défini." Pourtant, il est défini dans le même projet. Il me manque quelque chose d'évident

69
JaredPar

De quel ordre les fichiers sont-ils dans le projet? Stack.fs doit venir avant le programme.fs pour le programme.fs pour pouvoir "voir".

Voir aussi le début de

http://lorgonblog.spaces.live.com/blog/cns!701679ad17b6d310!444.Entry

et la fin de

http://lorgonblog.spaces.live.com/blog/cns!701679ad17b6d310!347.Entry

78
Brian

J'ai eu les mêmes problèmes et vous avez raison, l'ordre des fichiers est pris en compte par le compilateur. Au lieu du motif Supprimer et d'ajouter, vous pouvez utiliser les éléments de déplacement/Déplacer dans le menu contextuel associé aux fichiers .fs. (Alt-up et Alt-Down sont les touches de raccourci dans la plupart des liaisons de clé standard)

41
Horacio N. Hdez.

Tout ce qui précède est correct, mais comment faire cela dans VS2013 est une autre question. J'ai dû éditer mon . FSPROJ Fichier dans Bloctapad ++ et définissez l'ordre d'un nœud d'élémentgroup. Dans ce cas, cela ressemblerait à ceci:

<ItemGroup>
    <Compile Include="Stack.fs" />
    <Compile Include="Program.fs" />
    <None Include="App.config" />
</ItemGroup>
9
Benj Sanders

J'ai eu le même problème et c'était bien la commande des fichiers. Cependant, les liens ci-dessus n'ont pas décrit comment le réparer dans Visual Studio 2008 F # 1.9.4.19.

Si vous ouvrez un module, assurez-vous que votre fichier source est livré après la dépendance dans l'explorateur de la solution. Faites un clic droit sur votre source et sélectionnez Supprimer. Puis ajoutez-le. Cela fera apparaître au bas de la liste. J'espère que vous n'avez pas de dépendances circulaires.

1
Jen S.

J'utilise Visual Studio pour Mac - 8.1.4 et j'ai remarqué que certains fichiers .fs ne sont pas marqués comme "compiler". Vous pouvez le voir en affichant une sortie de version et voir si tous vos fichiers sont là et dans le bon ordre.

Je devais vous assurer manuellement que certains fichiers sont marqués de "compiler" et ont dû les déplacer manuellement jusqu'à ce qu'il "prend".

0
Doug