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

时间:2017-09-29 00:26:36

标签: f#

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

在我的开发机器上,当我输入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.
     :

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

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

请注意,dev机器包含netstandard作为有效值,但构建服务器不包含。{/ p>

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

发生了什么事?有没有办法显示F#4.1编译器的真实版本号? fsc.exe --version不起作用。

1 个答案:

答案 0 :(得分:2)

我不认为这与F#编译器版本有关,而是与安装的.NET SDK有关。 检查the target framework TFMs

我有mscorlib, netcore or netstandard,我会抓住他们来自哪里:

    来自完整框架的
  • mscorlib ...附带Windows
  • 选择&#34; .NET桌面开发&#34; 时,在VS 2017中安装了
  • netcore
  • netstandard随.NET Core SDK一起安装

如果是这种情况,我会想象在构建服务器上安装.NET Core SDK会将其排序,因为您似乎是以netstandard为目标。