当我捆绑这样的脚本时:
bundles.Add(new ScriptBundle("~/bundles/Product/Details").Include(
"~/Scripts/external/XXXXConfig-{version}.js",
"~/Scripts/external/Views/Product/ProductFavorite-{version}.js"));
我的期望是,如果该目录中有两个文件:
它只包含最新版本,即XXXXConfig-1.0.1.js。相反,它将BOTH捆绑在一起,这会导致系统失败。
我的期望来自here和其他来源。这种期望是错的吗?在任何情况下,有没有办法使它只包含最新版本?
答案 0 :(得分:1)
是的,您的期望不正确。 {version}
通配符用作任何版本的占位符,而不是最新版本。它允许它更新您的NuGet包,而无需每次都更改您的捆绑代码。
{version}
通配符唯一聪明的做法是,它选择文件min
(如果存在)进行发布,并且没有min
进行调试。除此之外,它只是一个像任何其他的通配符。
我不知道有任何内置功能可以为您选择最新版本。如果你愿意的话,你必须自己编程。你可以搜索一下是否有人做过这样的事情。但我想知道你为什么要在你的文件夹中存在多个版本。
修改:要根据您的要求详细说明min
功能,我认为MSDN that you linked to描述得很好,但这是一个示例:
假设您的文件夹有两个文件SEMSConfig-1.0.0.js和SEMSConfig-1.0.0.min.js。在调试模式下运行项目时,将使用文件SEMSConfig-1.0.0.js。当您在发布模式下运行项目(或发布它)时,将使用文件SEMSConfig-1.0.0.min.js。