Visual studio 2013 绑定通配符在Visual Studio 2013/ASP.NET 4.5.1中不再有效

Visual studio 2013 绑定通配符在Visual Studio 2013/ASP.NET 4.5.1中不再有效,visual-studio-2013,asp.net-mvc-5,Visual Studio 2013,Asp.net Mvc 5,我们最近将MVC项目升级到Visual Studio 2013和ASP.NET 4.5.1,以及包含某些通配符的捆绑包,如: bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.min.js")); 已停止正确编译。它似乎影响了在“.js”之前包含更多字符的任何通配符,而“.js”通常是最小值 我意识到捆绑的一部分是小型化的,所

我们最近将MVC项目升级到Visual Studio 2013和ASP.NET 4.5.1,以及包含某些通配符的捆绑包,如:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.min.js"));
已停止正确编译。它似乎影响了在“.js”之前包含更多字符的任何通配符,而“.js”通常是最小值


我意识到捆绑的一部分是小型化的,所以有些观点认为这不是必要的,但这就是它的目的吗?我没有读到任何关于这是发行说明。这将需要大量的工作才能返回并修复,因为有时我们没有这些脚本的常规版本。我们正在经历其他通配符问题,但这似乎是一个大问题。我还没有看到任何其他人对此发布问题,因此我很好奇是否有其他人注意到了这一点,或者这是否是由于升级过程而导致的配置问题。

您根本不应该在捆绑包定义中添加
min
前缀

捆绑框架遵循以下几种常见约定:

在“FileX.min.js”和“FileX.js”时选择要发布的“.min”文件 存在。选择非“.min”版本进行调试。忽略“-vsdoc” 文件(如jquery-1.7.1-vsdoc.js),仅由 智能感知

确保在web.config中启用了优化:

<system.web>
    <compilation debug="false" />
    <!-- Lines removed for clarity. -->
</system.web>
MVC将使用minifed jquery文件生成bundle link,类似于:

<script src="/bundles/jquery?v=OCFAn1NcaUrZ5VLi0Kt8lefDjHOF7mvtdw-2FUpZjJ01"></script>

更新:

这似乎在早期版本中也不起作用。通过修改
BundleCollection
IgnoreList
可以解决此问题:


我了解捆绑包和缩小的工作原理。我不是在寻找不做某件事的理由,而是在寻找一个解释,解释为什么某件确实有效的事情突然停止了。而且,min问题不是我们唯一面临的问题。因为我在发行说明或文章中没有看到任何关于这些更改的内容。这是不受支持的功能,只是碰巧起作用。在版本4的任何地方都找不到引用“min”文件的捆绑包配置示例。如果您引用
file1.min.js
,捆绑引擎是否应该尝试搜索
file.min.min.js
?如果
min.min.js
不存在,可能应该尝试缩小它?这是一个模棱两可的条件。
<script src="/bundles/jquery?v=OCFAn1NcaUrZ5VLi0Kt8lefDjHOF7mvtdw-2FUpZjJ01"></script>