如何在Linux上使用带有fsharp的nuget

时间:2014-10-12 16:37:32

标签: linux f# mono nuget

这是我使用F#的第一个小时,在Ubuntu Linux(14.04)上玩它但是我迷失了如何在nuget中包含安装依赖项。我有nuget.exe在Mono工作正常,我可以nuget install包裹;它们落在我当前的目录中。但是我无法从我的example.fs文件中导入或打开它们。我尝试了各种选择但无济于事。我需要编写项目文件还是使用FAKE?我找不到任何教程,详细说明了设置简单项目的最小必要步骤。

那么我需要做什么来访问我用nuget安装的依赖项?

2 个答案:

答案 0 :(得分:7)

简短的回答是,它并非完全直截了当。答案很长,您可以通过几种不同的方式解决问题。我在这里建议的所有方法都使用MSBuild .fsproj项目,以便您可以使用xbuild MyProject.fsproj进行构建。值得注意的是,FAKE脚本也倾向于使用fsproj项目,并将其交给xbuild进行实际编译。 fsharp.org website有关于引导NuGet配置的一些指令,并且通常是一个很好的资源。

  1. 使用MonoDevelop。我建议从源代码构建。从https://github.com/mono/monodevelop获取代码,并仔细按照说明操作。然后安装Nuget plugin。创建一个F#项目并使用MonoDevelop中的接口将NuGet包添加到项目中。然后,您可以从命令行或MonoDevelop构建。

  2. 找到一个使用NuGet的现有项目,将其删除,然后使用您选择的编辑器。一个重量级的例子是https://github.com/fsprojects/ProjectScaffold,你可以在那里找到其他人。下载此项目后,您将能够看到如何编辑nuget.config文件以调整依赖项。

  3. 最近的一个项目Paket最终为这个问题提供了一个真正的命令行方法。您再次需要一个.fsproj骨架(如this example),但您可以创建一个非常简单的依赖项文件。从Github下载最新版本的Paket。然后,运行mono paket.exe install将使用此文件从NuGet获取依赖项,并将它们作为参考添加到.fsproj

  4. 有一些引导问题,但这些方法中的任何一种都应该让你超越最初的驼峰。

答案 1 :(得分:0)

如果没有看到您正在执行的脚本,很难知道确切的问题是什么。但是,最轻量级的启动和运行方式是创建.fsx文件(而不是.fs)文件。然后,您可以使用#r语法引用dll,例如

#r @"C:\path\to\my\package\myassembly.dll"

然后您可以按照惯例从那里访问代码。