1

我正在尝试在 Ubuntu 17.10(Mono 4.6.2)上构建一个 F# 项目(控制台),但是我遇到了 F# core .NET 问题。作为参考,我正在使用 Visual Studio Code 1.21.2 和 ionide 扩展(新项目和 FAKE 构建)。下面是输出。

我尝试添加对不同版本的 Fsharp.core 的显式引用,例如 4.2、4.3.4,但没有成功。

我应该在哪里解决这个问题?

Finished Target: InstallDotNetCLI
Starting Target: Restore (==> InstallDotNetCLI)
/home/lear/.local/share/dotnetcore/dotnet restore
  Restoring packages for /home/lear/src/fsTest/fsTest/fsTest.fsproj...
/home/lear/src/fsTest/fsTest/fsTest.fsproj : error NU1100: Unable to resolve 'FSharp.Core (>= 4.3.4)' for '.NETFramework,Version=v4.6.1'.
  Restore failed in 99.61 ms for /home/lear/src/fsTest/fsTest/fsTest.fsproj.
Running build failed.


 <ItemGroup>
    <PackageReference Update="FSharp.Core" Version="4.3.4" />
  </ItemGroup>

项目文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="fsTest.fsproj">
      <Name>fsTest.fsproj</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="fsTest.fs" />
    <None Include="App.config" />
  </ItemGroup>
  <Import Project="..\.paket\Paket.Restore.targets" />
</Project>

我将此说明用作设置的参考: 在 Ubuntu Linux 上安装 F# 的四个简单步骤(2017-07-03)

4

2 回答 2

4

项目文件指定了错误的TargetFramework. 将其更改为例如netcoreapp2.0 Target Framework Moniker应该可以修复构建。

于 2018-04-16T03:42:23.043 回答
2

您尝试构建/恢复的项目正在引用自身。只需从fsproj文件中删除这部分:

<ItemGroup>
    <ProjectReference Include="fsTest.fsproj">
      <Name>fsTest.fsproj</Name>
    </ProjectReference>
  </ItemGroup>
于 2018-04-16T11:22:22.793 回答