F #: пространство имен не определено - PullRequest
0 голосов
/ 05 июня 2019

У меня есть проект F # Rm.Accounting.Domain со следующими файлами (и в таком порядке):

  • Model.fs: module Rm.Accounting.Domain.Model
  • Commands.fs: module Rm.Accounting.Domain.Commands
  • Events.fs: module Rm.Accounting.Domain.Events

и последний вызывает проблемы Behaviour.fs:

module Rm.Accounting.Domain.Behaviour

open Rm.Accounting.Domain.Commands
open Rm.Accounting.Domain.Events
open Rm.Accounting.Infrastructure

let a = 42

, что приводит к двум ошибкам:

  • Behaviour.fs(3, 20): [FS0039] The namespace 'Domain' is not defined. -> open Rm.Accounting.Domain.Commands
  • Behaviour.fs(4, 20): [FS0039] The namespace 'Domain' is not defined. -> open Rm.Accounting.Domain.Events

Без этого файла Behaviour.fs проект может компилироваться, яЯ не уверен, что понимаю, почему эти два импорта вызывают некоторые проблемы.

1 Ответ

1 голос
/ 06 июня 2019

Благодаря комментариям кажется, что по некоторым причинам, несмотря на переупорядочение файлов в Rider, fsproj действительно не обновился правильно.

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
    </PropertyGroup>

    <ItemGroup>
        <Compile Include="Behaviour.fs" />
        <Compile Include="Model.fs" />
        <Compile Include="Commands.fs" />
        <Compile Include="Events.fs" />
    </ItemGroup>

    <ItemGroup>
      <ProjectReference Include="..\Rm.Accounting.Infrastructure\Rm.Accounting.Infrastructure.fsproj" />
    </ItemGroup>

</Project>

enter image description here

Реорганизовав fsproj, сделали свое дело:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
    </PropertyGroup>

    <ItemGroup>
        <Compile Include="Model.fs" />
        <Compile Include="Commands.fs" />
        <Compile Include="Events.fs" />
        <Compile Include="Behaviour.fs" />
    </ItemGroup>

    <ItemGroup>
      <ProjectReference Include="..\Rm.Accounting.Infrastructure\Rm.Accounting.Infrastructure.fsproj" />
    </ItemGroup>

</Project>
...