我找到了在 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# 开源 github 下载 Microsoft.FSharp.Targets
但后来它尝试使用 fsc 而不是 fsharpc,这是一个对我来说有点奇怪......
那么简而言之,我应该如何使我的 fsproj
文件看起来像它在 Xamarin
提供的 MonoFramework
上工作?
最佳答案
我自己不使用 Visual Studio 2013,但帮助另一个使用 Visual Studio 2013 的 OSS 项目在 Mono 上运行。
当前的 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'
这将适用于 mono 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>
关于f# - MonoFramework 的 FSharp 项目的目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969863/