在OutDir上设置解决方案文件名

时间:2015-01-15 19:07:20

标签: f# f#-fake

我有一个文件集,它扫描源树中的所有* .sln文件。目前有4个文件夹

使用masterParam我传入GenerateProjectSpecificOutputFolder并设置outdir

我要做的是为每个使用MSBuild构建的sln将解决方案名称作为outDir的一部分附加。

我正在使用F#FAKE

以下是Target Build。

let masterParam = [
  ("Configuration",buildMode);
  ("GenerateProjectSpecificOutputFolder","true");
  ("OutDir",("drop/<solutionName>");
  ("BuildInParallel", "false");
]

// compile all projects below src/app/
MSBuild buildDir "Build" masterParam appReferences
  |> Log "Build-Output: "

1 个答案:

答案 0 :(得分:0)

我认为您不能以任何“自动”方式执行此操作,但由于FAKE允许您编写任意F#代码,因此您可以迭代项目并在各个项目上运行MSBuild。

这样的事情可以解决问题(你可能需要打开System.IO):

for proj in appReferences do
  let name = Path.GetFileNameWithoutExtension(proj)
  let masterParam = [
    ("Configuration",buildMode);
    ("GenerateProjectSpecificOutputFolder","true");
    ("OutDir",("drop/" + name);
    ("BuildInParallel", "false");
  ]

  MSBuild buildDir "Build" masterParam [proj]
  |> Log "Build-Output: "