The question however is how to use it. Microsoft Ajax Minifier package does include a set of documentation that explains how to use the tool and even discusses a couple of usage scenarios. Unfortunately, the way I wanted to use the Minifier is not covered in the documentation and for some reason, I haven't found useful information on the Internet too so I've decided to do some research and share my findings with the community.
So How Would I Like to Use the Minifier?
Here are the requirements:
I believe that the requirements above describe one of the most common web application solution configuration so if there is a way to achieve them, it would be very useful.
Can I Achieve the Requirements Above with the Microsoft Ajax Minifier?
</Project> tag (in most cases):
<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
Condition=" '$(ConfigurationName)'=='Release' ">
<Copy SourceFiles="@(EmbeddedResource)" DestinationFolder="$(IntermediateOutputPath)"
What this script does is when the solution configuration is '
Release', it finds all the project embedded resource files with the extension '.js' and creates their compressed versions with the same names in the intermediate output folder where they are picked from later by the build process.
A Few Tips
As you may have noticed, the Microsoft Ajax Minifier MSBuild task is referenced from the default folder where it was copied to by the installer. If you want to reference it from a different location, for example, if you have a shared development environment and want to have similar setting for everyone, just copy two files, ajaxmin.dll and ajaxmintask.dll to another location and include the
<UsingTask> tag (below) instead of the
<Import> tag in the script above:
LocalRenaming' option of the Ajax Minifier:
TargetExtension=".js" LocalRenaming="CrunchAll" />
And the last note is: don't use the default Hypercrunching mode or RemoveUnneededCode option with the ASP.NET AJAX Framework as it does not work properly with it.