如何通过.fsproj文件构建F#项目?

如何通过.fsproj文件构建F#项目?,f#,F#,我有一个单独的F#文件,到目前为止我是通过 fsc --standalone Foo.fs 一个可执行文件,我可以分发给其他没有安装F#toolchain的人 现在我想我转向一个.fsproj文件,它可以更好地扩展我添加到项目中的文件。考虑下面的FSPROJ文件: <?xml version="1.0" encoding="utf-8"?> <Project Sdk="FSharp.NET.Sdk;Microsoft.NET.Sdk"> <PropertyGr

我有一个单独的F#文件,到目前为止我是通过

fsc --standalone Foo.fs
一个可执行文件,我可以分发给其他没有安装F#toolchain的人

现在我想我转向一个.fsproj文件,它可以更好地扩展我添加到项目中的文件。考虑下面的FSPROJ文件:

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="FSharp.NET.Sdk;Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="FSharp.NET.Sdk" Version="1.0.*" PrivateAssets="All" />
    <PackageReference Include="FSharp.Core" Version="4.5.*" />
    <Compile Include="Foo.fsx" />
  </ItemGroup>
</Project>
搜索错误代码
-2147450730
对我没有帮助。知道我的设置有什么问题吗?有没有关于如何从F#文件构建独立可执行文件的提示

我正在使用以下.NET版本:

dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.401
 Commit:    91b1c13032

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.15063
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.401\

Host (useful for support):
  Version: 2.1.3
  Commit:  124038c13e

.NET Core SDKs installed:
  2.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

不要将
FSharp.NET.Sdk
与任何最新工具一起使用。只要F#不在盒子里,它就是一个中间包。现在F#在盒子里,下面应该给你一个工作版本:


dotnet new-lang f#
网络构建

我不知道.Net核心项目系统的细节,所以我通常依赖于类似的模板。(运行
dotnet new-i miniscafold
,然后运行
dotnet new mini scaffold-lang F#-n ProjectName-o path\to\where\your\want\ProjectName
)。它为库而不是exe设置了一个.fsproj文件,因此它可能不是您要查找的文件,但搜索F#的其他dotnet模板可能会有所帮助。此外,错误代码-2147450730是十六进制的
0x80008096
。搜索
dotnet错误代码0x80008096
时出现,有人提到在移动到不同的.Net核心版本时获取该错误代码。您正在运行哪个版本,并且最近更改了.Net核心版本吗?
dotnet--info
的输出显示我使用的是2.1版,应该可以。不确定这是否是故意的,但在您的fsproj中您指定了
Foo.fsx
,而之前您说的是
Foo.fs
dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.401
 Commit:    91b1c13032

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.15063
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.401\

Host (useful for support):
  Version: 2.1.3
  Commit:  124038c13e

.NET Core SDKs installed:
  2.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download