15

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...

Marko
  • 12,543
  • 10
  • 48
  • 58

3 Answers3

11

{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.

Chris Pratt
  • 232,153
  • 36
  • 385
  • 444
  • 2
    I'm aware of that but look where? Does it work on folders or files only? Can you explain the full logic behind it? as you can see in my case it failed because it was used on a folder... – Marko Dec 04 '13 at 20:08
9

Nevermind I found the answer here:

New .NET feature bundle and minification {version} wildcard doesn't work with directories?

Apparently folders are not supported by this feature...

Community
  • 1
  • 1
Marko
  • 12,543
  • 10
  • 48
  • 58
5

{version} is not support to the directories.It is only support to the part of the file name.