New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: XML

MsBuild Task Combine & Minify

458 Views
Copy Code Show/Hide Line Numbers
   1:    <Target Name="AfterMerge">
   2:    <ItemGroup>
   3:      <JsFiles Include="$(TempBuildDir)\Scripts\infinitecarousel.js;$(TempBuildDir)\Scripts\jquery.autocomplete.js;$(TempBuildDir)\Scripts\core.js"/>
   4:      <CssFiles Include="$(TempBuildDir)\Content\reset.css;$(TempBuildDir)\Content\infinitecarousel.css;$(TempBuildDir)\Content\Site.css" />
   5:    </ItemGroup>
   6:      
   7:    <ReadLinesFromFile File="%(JsFiles.Identity)">
   8:      <Output TaskParameter="Lines" 
   9:              ItemName="jsLines"/>
  10:    </ReadLinesFromFile>
  11:    
  12:    <WriteLinesToFile File="$(TempBuildDir)\Scripts\core.js" 
  13:                      Lines="@(JsLines)" 
  14:                      Overwrite="true" />
  15:      
  16:    <ReadLinesFromFile File="%(CssFiles.Identity)">
  17:      <Output TaskParameter="Lines" 
  18:              ItemName="cssLines"/>
  19:    </ReadLinesFromFile>
  20:   
  21:    <WriteLinesToFile File="$(TempBuildDir)\Content\core.css" 
  22:                        Lines="@(cssLines)" 
  23:                        Overwrite="true" />
  24:    </Target>
  25:   
  26:    <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
  27:    <Target Name="AfterBuild">
  28:      <ItemGroup>
  29:        <JS Include="**\Scripts\gasync.js;**\Scripts\core.js" 
  30:            Exclude="**\*.min.js" />
  31:      </ItemGroup>
  32:      <ItemGroup>
  33:        <CSS Include="**\Content\core.css" 
  34:             Exclude="**\*.min.css" />
  35:      </ItemGroup>
  36:   
  37:      <AjaxMin JsSourceFiles="@(JS)" 
  38:               JsSourceExtensionPattern="\.js$" 
  39:               JsTargetExtension=".min.js" 
  40:               CssSourceFiles="@(CSS)"
  41:               CssSourceExtensionPattern="\.css$" 
  42:               CssTargetExtension=".min.css" />
  43:   
  44:      <ItemGroup>
  45:        <!-- remove our own bespoke files as they are replace with the minified/combined version -->
  46:        <DeleteAfterBuild Include="$(OutputPath)web-site_mvc.csproj.user" />
  47:        <DeleteAfterBuild Include="$(OutputPath)web-site_mvc.sln" />
  48:        <DeleteAfterBuild Include="$(OutputPath)web-site_mvc.csproj" />
  49:        <DeleteAfterBuild Include="$(OutputPath)Scripts\core.js" />
  50:        <DeleteAfterBuild Include="$(OutputPath)Scripts\jquery.autocomplete.js" />
  51:        <DeleteAfterBuild Include="$(OutputPath)Scripts\infinitecarousel.js" />
  52:        <DeleteAfterBuild Include="$(OutputPath)Scripts\jquery-1.4.1.js" />
  53:        <DeleteAfterBuild Include="$(OutputPath)Scripts\gasync.js" />
  54:        <DeleteAfterBuild Include="$(OutputPath)Scripts\jquery-1.4.1-vsdoc.js" />
  55:        <DeleteAfterBuild Include="$(OutputPath)Scripts\MicrosoftAjax.js" />
  56:        <DeleteAfterBuild Include="$(OutputPath)Scripts\MicrosoftAjax.debug.js" />
  57:        <DeleteAfterBuild Include="$(OutputPath)Scripts\MicrosoftAjax.debug.js" />
  58:        <DeleteAfterBuild Include="$(OutputPath)Scripts\MicrosoftMvcAjax.debug.js" />
  59:        <DeleteAfterBuild Include="$(OutputPath)Content\core.css" />
  60:        <DeleteAfterBuild Include="$(OutputPath)Content\infinitecarousel.css" />
  61:        <DeleteAfterBuild Include="$(OutputPath)Content\Site.css" />
  62:        <DeleteAfterBuild Include="$(OutputPath)Content\reset.css" />
  63:      </ItemGroup>
  64:      <Delete Files="@(DeleteAfterBuild)" />
  65:      <RemoveDir Directories="$(OutputPath)\obj" />
  66:    </Target>
by ArranM
  February 16, 2010 @ 2:25pm
Tags:
Comment:
Using MS Ajax Minfier 4.0. Combine .CSS and JS files, then minify then on deploy

Add a comment


Report Abuse
brought to you by:
West Wind Techologies


If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate