How is {version} value being populated in BundleConfig file?

Marko picture Marko · Dec 4, 2013 · Viewed 8.3k times · Source

I recently added jquery.dataTables nuget package to my project and I wanted to bundle the necessary files inside the BundleConfig. Since this package is installed inside a "DataTables-1.9.4" folder within Scripts folder I added the following line to my BundlesConfig:

bundles.Add(new ScriptBundle("~/bundles/dataTables").Include(
            "~/Scripts/DataTables-{version}/media/js/jquery.dataTables.js"));

However I got the following error:

An exception of type 'System.ArgumentException' occurred in System.Web.Optimization.dll but was not handled in user code

When I modify the line to:

bundles.Add(new ScriptBundle("~/bundles/dataTables").Include(
            "~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js"));

it works just fine.

So my question is how does the version get injected in the case of JQuery bundle? Is this defined someplace in the package itself and is there a way for me to fix this? I hate the idea of having to change my bundle config every time I update the dataTables nuget package...

Answer

Chris Pratt picture Chris Pratt · Dec 4, 2013

{version} just tells the bundler to look for a string in the form of N[.N[.N]] and pick the file with the highest numbers.