展开预构建事件参数中的文件列表

时间:2012-07-13 19:48:11

标签: .net visual-studio command-line pre-build-event microsoft-ajax-minifier

我正在尝试运行一个预构建事件,它将目录中的所有JavaScript文件传递给MS的Ajax Minifier。不幸的是,这个工具将文件名作为单独的参数排除(它不能解析“* .js”)。我有很多JavaScript文件,我真的不想在预构建事件窗口中单独列出它们。

这是我目前的预建命令:

"$(SolutionDir)Tools\AjaxMin.exe" "$(ProjectDir)*.js" -out  "$(ProjectDir)Generated\Generated.js" -clobber

有没有人知道正确的语法(或者是否有一个)让你做到你期望它做的事情?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

Prebuild事件传递给shell,这就是为什么你可以像下面这样设置一个cmd脚本作为预构建事件:

::Force variables to be evaluated at execution time
SETLOCAL ENABLEDELAYEDEXPANSION

SET parameter=
SET proj=$(ProjectDir)*.js

::Concatenate all the file names (surrounded by quotes) into a single string
FOR %%F IN ("%proj%") DO (SET parameter=!parameter! "%%F")

::Execute command
"$(SolutionDir)Tools\AjaxMin.exe" %parameter% -out  "$(ProjectDir)Generated\Generated.js" -clobber

这里我们在参数变量中累积所有js文件名并将其传递给ajaxmin.exe。