F# 在OutDir上设置解决方案文件名
我有一个文件集,它是对源代码树中所有*.sln文件的扫描。目前有4个文件夹 使用masterParam,我传入GenerateProjectSpecificOutputFolder并设置outdir 我要做的是让使用MSBuild构建的每个sln将解决方案名称作为outDir的一部分追加 我用的是F#FAKE 下面是来自目标构建的F# 在OutDir上设置解决方案文件名,f#,f#-fake,F#,F# Fake,我有一个文件集,它是对源代码树中所有*.sln文件的扫描。目前有4个文件夹 使用masterParam,我传入GenerateProjectSpecificOutputFolder并设置outdir 我要做的是让使用MSBuild构建的每个sln将解决方案名称作为outDir的一部分追加 我用的是F#FAKE 下面是来自目标构建的 let masterParam = [ ("Configuration",buildMode); ("GenerateProjectSpecificOutpu
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: "
let masterParam=[
(“配置”,构建模式);
(“GenerateProjectSpecificOutputFolder”,“true”);
(“OutDir”(“drop/”);
(“BuildInParallel”、“false”);
]
//编译src/app下面的所有项目/
MSBuild buildDir“Build”主参数参考
|>日志“生成输出:”
我认为您无法以任何“自动”方式完成此操作,但由于FAKE允许您编写任意F#代码,因此您可以迭代项目并在单个项目上运行MSBuild
类似这样的操作应该可以做到(您可能需要打开System.IO
):
这是正确的解决方案。您还需要指定Open 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: "