2016-04-28 8 views
3

CopyDirを使用して、ビルド成果物を出力ディレクトリにコピーしようとしています。FileIncludesをfilefilter述語に変換する

CopyDirが引数として取るフィルター述部をどのように定義するのかよくわかりません。私はドキュメントを見て、Googleでさまざまなキーワードを探してみました。私は、ファイルを取るにはどうすればよい

Target "Copy-Build-Output" (fun _ -> let baseDir = (sourceDir + @"Trunk\Webroot") let outputfiles = !! (sourceDir @@ "**/*.*") -- (sourceDir @@ "**/*.cs") -- (sourceDir @@ "**/*.csproj") -- (sourceDir @@ "**/*.vspscc") -- (sourceDir @@ "**/*.cssscc") -- (sourceDir @@ "web.config") -- (sourceDir @@ "bin/*.xml") -- (sourceDir @@ "obj/**") CopyDir outputDir baseDir ???? )

設定と一致する文に変換含めますか?

答えて

0

出力をコピーするための別のターゲットを作成する必要があるのはなぜですか?次のようにビルドターゲット自体に出力ディレクトリを設定できます(MSBUILDの例)。 あなたが

Target "Build" (fun _ -> 
!! "**/*.csproj" 
-- "**/*.Tests.csproj" 
    |> MSBuildRelease OutDir "Rebuild" 
    |> Log "Building Projects: " 

は、詳細はhttp://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.htmlを参照してください(アプリケーションのルートにビルドスクリプトの例)ビルドスクリプトの場所に応じてOUTDIRおよびソースコードのパスのようにパスを設定することができます。

0

すべてのファイル(たとえば、*.*)をコピーする場合は、フィルター述部が(fun x -> true)で十分です。

Target "Copy-Build-Output" (fun _ -> 
    let baseDir = (sourceDir + @"Trunk\Webroot") 
    let outputfiles = 
     !! (sourceDir @@ "**/*.*") 
      -- (sourceDir @@ "**/*.cs") 
      -- (sourceDir @@ "**/*.csproj") 
      -- (sourceDir @@ "**/*.vspscc") 
      -- (sourceDir @@ "**/*.cssscc") 
      -- (sourceDir @@ "web.config") 
      -- (sourceDir @@ "bin/*.xml") 
      -- (sourceDir @@ "obj/**") 
    CopyDir outputDir baseDir (fun x -> true) 
) 

フィルタ述語は、関数string -> boolです。これは、入力としてstringをとり、boolを返す関数です。

.pngイメージをコピーする場合は(fun x -> x.EndsWith(".png"))を使用できます。

おそらくファイルを指定するための他の方法があります。しかし、これは私のために働く。