немспейсы и прочее.
Ситуация: использую rider ide, создал проект.
В проекте есть главный файл Program.fs с entry-point
Создаю еще одну директорию и в ней файл, у которого есть неймспейс и тип
Entities:
File.fs ->
namespace AppName.Entities
type FIle = {...}
После этого я хочу использовать тип File в файле Program.fs.
На этом моменте идешка уже не видит его (автокомплит)
Пытался сам руками - open AppName.Entities - но падает в компайл тайме.
При этом, если я создам тот же тип но на уровне Program.fs - все ок.
Что я упускаю?
В файле %AppName%.fsproj файл из директории есть:
<Compile Include="Entities\File.fs" />
А папка находится ниже Program.fs в .fsproj? В файлах можно обращаться только к типам из файлов выше.
Да, об этом знаю
покажи что у тебя в fsproj
Смотри. Вот так будет работать.
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net7.0</TargetFramework> <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> </PropertyGroup> <ItemGroup> <Content Include="docker-compose.yaml" /> <Compile Include="Program.fs" /> <Compile Include="Entities\File.fs" /> <Compile Include="Entities\Test.fs" /> </ItemGroup> <ItemGroup> <PackageReference Include="Dapper.FSharp" Version="4.7.0" /> <PackageReference Include="Giraffe" Version="6.2.0" /> </ItemGroup> </Project>
https://t.me/fsharp_chat/267007
Я менял местами
ну ты скинул неправильный fsproj
Program Должен быть ниже.
Обсуждают сегодня