【发布时间】:2016-01-27 10:02:32
【问题描述】:
如何获取解决方案文件引用的项目?
这里我有一个具体的用例。我从 ProjectScaffold 中窃取了这个目标 CopyBinaries。它将项目构建的输出复制到一个单独的文件夹中。它不是很挑剔,它会复制它找到的每个项目的输出。
Target "CopyBinaries" (fun _ ->
!! "src/**/*.??proj"
-- "src/**/*.shproj"
|> Seq.map (fun f ->
((System.IO.Path.GetDirectoryName f) </> "bin/Release",
binDir </> (System.IO.Path.GetFileNameWithoutExtension f)))
|> Seq.iter (fun (fromDir, toDir) ->
CopyDir toDir fromDir (fun _ -> true))
)
如果我只想复制在解决方案文件中明确引用的项目的输出,该怎么办。我想到了这样的事情:
Target "CopyBinaries" (fun _ ->
!! solutionFile
|> GetProjectFiles
|> Seq.map (fun f ->
((System.IO.Path.GetDirectoryName f) </> "bin/Release",
binDir </> (System.IO.Path.GetFileNameWithoutExtension f)))
|> Seq.iter (fun (fromDir, toDir) ->
CopyDir toDir fromDir (fun _ -> true))
)
GetProjectFiles 函数获取解决方案文件并提取引用的项目文件。
FAKE 中是否有类似这个假设函数可用?
【问题讨论】: