2016-04-28 3 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). вы можете установить путь, как и путь OUTDIR Исходник- согласно расположению сценария сборки (например, для построения сценария в корне приложения)

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

см http://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.html для получения дополнительной информации.

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")).

Возможно, существуют другие способы указания файлов. Но эта работа для меня.

Смежные вопросы