1

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

这是我当前的预构建命令:

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

有谁知道正确的语法(或者甚至有一个)来使它做你期望它做的事情?

感谢您的任何帮助。

4

1 回答 1

1

Prebuild 事件被传递给 shell,这就是为什么您可以将如下所示的 cmd 脚本设置为 pre-build 事件:

::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。

于 2012-07-13T21:08:54.737 回答