首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xbuild和F# (vs2010)项目

xbuild和F# (vs2010)项目
EN

Stack Overflow用户
提问于 2011-10-20 00:28:25
回答 2查看 1.7K关注 0票数 4

我有一个VS 2010混合语言解决方案,主要是C#,但包含一个用F#编写的windows服务。我已经在并行环境中使用了xbuild,但是自从从獾港升级到Mono2.10.5的打包版本后,我一直无法让它正常工作。

我通常遇到的错误是:

/home/alex/git/Solution/FSProject/FSProject.fsproj:错误:在项目中找不到名为“Build”的目标。

令我困惑的是,在项目文件中,似乎没有定义任何目标。我远不是MSBuild方面的专家,但这对我来说有点奇怪。尽管如此,它以前确实起了作用。

有没有人遇到过(并有希望找到解决办法)类似的问题?如果可能的话,我希望能够使用xbuild和Visual构建解决方案。

环境是mint 11 (不确定这是基于ubuntu、maverick还是natty)从badgerports运行mono2.10.5。fsharp是从最新源代码安装到默认前缀的。

编辑

由于Brian的指针(我确实需要硬编码路径,xbuild似乎很难解决像"$(MSBuildExtensionsPath32)..\FSharp\1.0\Microsoft.FSharp.Targets").这样的问题),我已经能够接近它了。FSC现在实际上正在被调用,尽管它抱怨无法解析对FSharp.Core的引用。

我发现这个页面F#和XBuild (Debian)在实现这个目标方面很有帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-17 13:07:29

如果你用这个,就没有必要再进行黑客活动了:

票数 6
EN

Stack Overflow用户

发布于 2011-10-24 22:53:03

因此,事实证明,并行环境实际上使我变得更容易了。Mono安装在/usr,而F#安装在/usr/F#,因此我需要设置符号链接,以使FSharp目标和公共目标能够相互查看。这里有详细的内容:F#和XBuild (Debian)

一旦这件事发生了,我仍然有麻烦。添加了一些调试消息之后,我发现xbuild没有正确解析到F#目标的路径。项目文件试图像这样导入:

代码语言:javascript
复制
  <Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="!Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
  <Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition="Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />

xbuild在解决相对路径时遇到了困难。所以我把它改成了这个

代码语言:javascript
复制
  <Import Project="$(TargetsPath)" Condition="$(TargetsPath) != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="$(TargetsPath) == '' And !Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
  <Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition="$(TargetsPath) == '' And Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />

它允许我在命令行上传递到FSharp.targets的路径。

仍然有一些问题(它是失败的抱怨ItemGroups没有被注册,我知道这是一个弱点,但这似乎是一个错误的警报-该项目实际上得到了成功的建设和运行)。希望这能帮到别人。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7829805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档