6

次のフォルダー構造があるとしましょう

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

build.fsx で RestorePackages() を実行すると、"./**/packages.config" で packages.config が検索され (ドキュメントによると)、プロジェクト フォルダーに復元されるすべてのパッケージが無視されます。

この方法を使用して、おそらくすべてのプロジェクトの packages.config にパスを 1 つずつ指定できますが、新しいプロジェクトをソリューションに追加するたびにビルド スクリプトを変更したくありません。

特定のパスですべての packages.config を検索するように RestorePackages() を作成する方法はありますか?

編集:

追加の関連する質問。なるほど、nuget のパスを RestorePackage に渡す必要があります。私はおそらくそのようにこれを行うことができます:

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

しかし、あなたが提供した例にそれを結び付ける方法がわかりません。F# の構文は、パイプと関数呼び出しに関して、まだ少し混乱しています。

4

1 に答える 1

6

私は2つの解決策を見ています。

  1. ビルド スクリプトをプロジェクト ルートに配置します。
  2. デフォルトのメソッドを上書きします。これをビルド スクリプトの先頭に追加します。
let RestorePackages() = 
    !! "./../**/packages.config"
    |> Seq.iter (RestorePackage id)
于 2014-07-22T11:38:11.637 に答える