在 OutDir 上设置解决方案文件名
Setting Solution Filename on OutDir
我有一个文件集,它是对源代码树中所有 *.sln 文件的扫描。目前有4个文件夹
我通过 masterParam 传入 GenerateProjectSpecificOutputFolder 并设置 outdir
我想要做的是为每个使用 MSBuild 构建的 sln 附加解决方案名称作为 outDir 的一部分。
我正在使用 F# FAKE
以下来自目标版本。
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: "
我认为您无法以任何 "automatic" 方式执行此操作,但由于 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: "
我有一个文件集,它是对源代码树中所有 *.sln 文件的扫描。目前有4个文件夹
我通过 masterParam 传入 GenerateProjectSpecificOutputFolder 并设置 outdir
我想要做的是为每个使用 MSBuild 构建的 sln 附加解决方案名称作为 outDir 的一部分。
我正在使用 F# FAKE
以下来自目标版本。
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: "
我认为您无法以任何 "automatic" 方式执行此操作,但由于 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: "