从MsBuild使用Exec时如何切断命令行

时间:2017-04-07 17:05:11

标签: msbuild

在我的构建中,我想将源文件列表提供给clang格式。我在MsBuild做这个。我发现ItemGroup中的文件列表可能非常大。我可以像这样格式化命令行:

$(MSBuildThisFileDirectory)clang-format.exe -style=file -output-replacements-xml %(ClangFilesToFormat.Identity)

但是,我认为我超过了最大命令行长度,命令失败。所以,我想在批量的X文件中调用clang-format。我不想为每个单独的文件调用它,因为如果我这样做的话,它太慢了。

如何将ItemGroup拆分为多个X项,或以其他方式解决此问题?

由于

1 个答案:

答案 0 :(得分:0)

没有上下文很难说,但我希望语法%(ClangFilesToFormat.Identity)能够导致批处理(因此,为每个单独的文件调用命令)。假设clang-format.exe期望文件以空格分隔,我想您会想要使用@(ClangFilesToFormat, ' ')。首先考虑使用诊断线(如下所示)来验证您是否获得了所需的字符串。

<Error Text="ClangFilesToFormat: @(ClangFilesToFormat, ' ')" />
相关问题