一个F#4.1编译器包含netstandard的targetPlatform值,另一个没有

Wal*_*lly 5 f#

我的构建机器上--targetProfile的F#4.1编译器与我的开发机器上的F#4.1编译器的选项略有不同.

在我的开发机器上,当我输入fsc.exe -?输出时包括以下内容:

Microsoft (R) F# Compiler version 4.1
     :
--targetprofile:<string>
Specify target framework profile of this assembly.
Valid values are mscorlib, netcore or netstandard.
     :
Run Code Online (Sandbox Code Playgroud)

在我的构建服务器上,相同的命令输出以下内容:

Microsoft (R) F# Compiler version 4.1
     :
--targetprofile:<string>
Specify target framework profile of this assembly.
Valid values are mscorlib or netcore.
     :
Run Code Online (Sandbox Code Playgroud)

请注意,dev机器包含netstandard有效值,但构建服务器不包含.

因此,当我尝试在构建服务器上构建我的项目时,我得到编译时错误" error FS1052: Invalid value 'netstandard' for '--targetprofile'"

到底是怎么回事?有没有办法显示F#4.1编译器的实际版本号?fsc.exe --version不起作用.

Dev*_*iss 2

我认为这与 F# 编译器版本无关,而是与安装的 .NET SDK 有关。检查目标框架 TFM

我已经mscorlib, netcore or netstandard并将尝试研究它们的来源:

  • mscorlib来自完整框架...随 Windows 一起提供
  • netcore选择“.NET桌面开发”时随VS 2017安装
  • netstandard与 NET Core SDK 一起安装

如果是这种情况,我想在构建服务器上安装.NET Core SDK会解决这个问题,因为您似乎针对的是 netstandard。