使用MonoFramework进行FSharp项目的目标?

时间:2013-11-14 04:57:07

标签: f# mono xamarin

我找到了在travis上获得C#/ F#的解决方案:How do I use Travis-CI with C# or F#

除了我得到3.2.4版本

我检查了存档并在那里找到了fsharpc但找不到Microsoft.FSharp.Targets或类似的东西...

所以...我的Visual Studio F#项目包含:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\FSharp\Microsoft.FSharp.Targets" />

确定它不会在那里工作......我尝试了几种方法,包括从F#opensource github下载Microsoft.FSharp.Targets,但后来它试图使用fsc代替fsharpc,这对我来说有点奇怪......

简而言之,我应该如何让fsproj文件在MonoFramework提供的Xamarin上工作?

1 个答案:

答案 0 :(得分:3)

我自己并没有使用Visual Studio 2013,但已经帮助了另一个OSS项目,他们开始使用单声道。

当前的VS2013 fsproj对于fsharp目标有VS2012(v11)的条件导入。

  <PropertyGroup>
    <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'">
    <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>

通过添加Or $(OS) != 'Windows_NT',这将适用于单声道3.2.4的xbuild。

  <PropertyGroup>
    <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'">
    <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>