有没有办法强制FAKE RestorePackages()在“./**/packages.config”以外的其他路径中查找要恢复的包?

时间:2014-07-22 11:24:01

标签: nuget-package-restore f#-fake

我们说我有以下文件夹结构

build
    build.fsx
    build.bat
    //build tools etc.
src
    Project1
    Project2
    //...

当我在build.fsx中运行我的RestorePackages()时,它会在" ./**/ packages.config"中查找packages.config。 (根据documentation),并将忽略要在项目文件夹中恢复的所有包。

我可以使用this method并且可能会逐个为每个项目的packages.config提供路径,但是每次添加新项目时我都不想更改构建脚本溶液

有没有办法让RestorePackages()在某个特定路径中查找所有packages.config?

编辑:

其他相关问题。我明白了,我必须将nuget路径传递给RestorePackage,因为默认情况下它似乎是在./tools/nuget/nuget.exe中。我可以这样做:

RestorePackage(fun p -> { p with ToolPath = "my/nuget/path"})

但我不知道如何将它与你提供的例子联系起来。管道和函数调用对我来说,F#语法仍然有点混乱。

1 个答案:

答案 0 :(得分:6)

我看到两个解决方案。

  1. 将您的构建脚本放入项目根目录
  2. 覆盖默认方法。将它放在构建脚本的顶部:
  3. let RestorePackages() = 
        !! "./../**/packages.config"
        |> Seq.iter (RestorePackage id)