2011-05-31 32 views
2

基本上,我的最终目标是在构建我的Visual Studio解决方案时移除已存在的.min.js和CSS文件,而我的Ajax Minifier(版本4.20)作为MSBuild任务之一,它缩小了.js和.css文件的大小。如何在Visual Studio 2010中使用MSBuild过程中的Ajax Minifier时使用-clobber选项

根据Ajax Minifier文档,我可以使用-clobber选项来实现上述目标。但是,我无法弄清楚在Visual Studio MSBuild项目任务中我可以使用这个选项。不过,我成功地使用了Ajax Minifier命令行工具中的-clobber选项。

下面是我在我的项目(的.csproj)文件中的配置代码...

<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" /> 
<Target Name="AfterBuild"> 
    <ItemGroup> 
     <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js" /> 
    </ItemGroup> 
    <ItemGroup> 
     <CSS Include="**\*.css" Exclude="**\*.min.css" /> 
    </ItemGroup> 
    <AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" clobber="true" /> 
</Target> 

然而,当我编译我的解决方案,我得到了下面的错误 - 不知道为什么?

“AjaxMin”任务不支持“clobber”参数。验证任务中是否存在参数,它是一个可设置的公共实例属性。

回答

0

从文档中我可以看出,它看起来像clobber开关不可用。它不可用的事实似乎表明删除过时的文件将由任务处理。有任务照顾文件管理对我来说有点意义。话虽如此,你确定你需要clobber开关吗?

<Exec Command="C:\PathToAjaxMin\AjaxMin.exe _options_here_" /> 

Exec Task

0

C:\ “程序文件(x86)” \ MICROSOFT \“微软

如果你这样做,你可以通过使用exec任务调用AjaxMin的控制台版本Ajax Minifier“\ AjaxMin.exe -css $(ProjectDir)css \ style1.css $(ProjectDir)css \ style2.css $(ProjectDir)css \ style3.css -o $(ProjectDir)css \ master.min.css - clobber:true

注意:确保命令在POSTBuild事件中的一行中

这就是我正在使用的。如果您正在组合脚本,请将-css更改为-js

基于文档:http://ajaxmin.codeplex.com/wikipage?title=Command-Line%20Switches

默认情况下,-clobber设置为假。因此如果您想要替换现有的输出文件,则需要在最后指定true。

+0

我试图找到通过配置相结合的方法,但未能成功。所以我只是使用该命令作为后期构建事件进行组合 – Zhao 2011-11-22 05:19:39

0

对于使用AjaxMin.DLL的构建任务,您不需要-clobber开关。该开关仅适用于AjaxMin.EXE。

0

您只需要正确传递-clobber开关。

变化

<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" 
CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" 
clobber="true" /> 

<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" 
CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" 
Switches="-clobber" /> 
相关问题