F# Linux上的F核心.NET框架构建指南

F# Linux上的F核心.NET框架构建指南,f#,dotnet-cli,ionide,F#,Dotnet Cli,Ionide,我试图在Ubuntu17.10Mono4.6.2上构建一个F项目控制台,但是我遇到了F核心.NET问题。作为参考,我使用VisualStudioCode1.21.2和ionide extensions新建项目和假构建。下面是输出 我尝试过添加对Fsharp.core不同版本的明确引用,例如4.2、4.3.4,但没有成功 我应该在哪里解决这个问题 已完成目标:InstallDotNetCLI 开始目标:还原==>InstallDotNetCLI /home/lear/.local/share/do

我试图在Ubuntu17.10Mono4.6.2上构建一个F项目控制台,但是我遇到了F核心.NET问题。作为参考,我使用VisualStudioCode1.21.2和ionide extensions新建项目和假构建。下面是输出

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

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

已完成目标:InstallDotNetCLI 开始目标:还原==>InstallDotNetCLI /home/lear/.local/share/dotnetcore/dotnetrestore 正在还原/home/lear/src/fsTest/fsTest/fsTest.fsproj的包。。。 /home/lear/src/fsTest/fsTest/fsTest.fsproj:错误NU1100:无法解析“.NETFramework,Version=v4.6.1”的“FSharp.Core>=4.3.4”。 /home/lear/src/fsTest/fsTest/fsTest/fsTest.fsproj的还原在99.61毫秒内失败。 运行生成失败。 项目文件如下所示:

<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>
我使用此说明作为设置的参考:
2017-07-03

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

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

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


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


您的项目似乎针对的是完整的.NET框架,而不是.NET核心。你能展示项目文件中最上面的几行吗?公平地说,我相信ionide扩展有意通过mono来针对整个框架。fsharp core并不意味着.net core您应该尝试创建一个新项目。或者清理obj文件夹,并使用ProjectReference删除项目组。你需要单核细胞增多症吗?如果没有,您可以通过dotnet new CLI快速创建dotnet core项目。您的项目的目标似乎是完整的.NET framework,而不是.NET core。你能展示项目文件中最上面的几行吗?公平地说,我相信ionide扩展有意通过mono来针对整个框架。fsharp core并不意味着.net core您应该尝试创建一个新项目。或者清理obj文件夹,并使用ProjectReference删除项目组。你需要单核细胞增多症吗?如果没有,您可以通过dotnet new CLI快速创建dotnet核心项目;但是,生成仍然失败//home/lear/.local/share/dotnetcore/sdk/2.0.2/NuGet.targets792,5:错误MSB4006:目标依赖关系图中存在涉及目标_GenerateRestoreProjectPathWalk的循环依赖关系。[/home/lear/src/fsTest/fsTest/fsTest.fsproj]正在恢复/home/lear/src/fsTest/fsTest/fsTest.fsproj的包/home/lear/src/fsTest/fsTest/fsTest.fsproj:错误NU1108:检测到循环/home/lear/src/fsTest/fsTest/fsTest.fsproj:error num1108:fsTest->fsTest。它正在构建中;唯一的问题是这是一个dll?我想要一个exe文件??我该怎么做,还是只使用dotnet core生成dll?您可以使用dotnet YourProject.dll运行dll,也可以为特定的运行时发布dll,例如dotnet publish-c Release-r ubuntu.16.10-x64,另请参见。如果您需要更多后续帮助,可能值得再问一个SO问题;但是,生成仍然失败//home/lear/.local/share/dotnetcore/sdk/2.0.2/NuGet.targets792,5:错误MSB4006:目标依赖关系图中存在涉及目标_GenerateRestoreProjectPathWalk的循环依赖关系。[/home/lear/src/fsTest/fsTest/fsTest.fsproj]正在恢复/home/lear/src/fsTest/fsTest/fsTest.fsproj的包/home/lear/src/fsTest/fsTest/fsTest.fsproj:错误NU1108:检测到循环/home/lear/src/fsTest/fsTest/fsTest.fsproj:error num1108:fsTest->fsTest。它正在构建中;唯一的问题是这是一个dll?我想要一个exe文件??我该怎么做,还是只使用dotnet core生成dll?您可以使用dotnet YourProject.dll运行dll,也可以为特定的运行时发布,例如dotnet publish-c Release-r ubuntu.16.10-x64,另请参见。如果您需要更多后续帮助,可能值得再问一个问题。
<ItemGroup>
    <ProjectReference Include="fsTest.fsproj">
      <Name>fsTest.fsproj</Name>
    </ProjectReference>
  </ItemGroup>