一段时间以来,我一直在尝试对我的 MVC3 项目进行缩小和捆绑,尝试了很多不同的压缩器和方法。我终于决定通过我的项目文件中的 msbuild 任务来使用 Microsoft Ajax Minifier。我对我的配置只有这么远,但我遇到了一个直接的绊脚石;当我将我的 JS 脚本缩小并组合到一个文件中时(使用下面的任务定义),我的组合文件总是包含每个脚本的两个缩小副本。
我已经删除了我添加的所有其他复杂的 msbuild 任务,删除了除了一个 JS 脚本之外的所有任务,它仍在发生。以下标签是我手动修改的项目文件的唯一部分:
<UsingTask TaskName="AjaxMin" AssemblyFile="$(MSBuildProjectDirectory)\..\_Build\AjaxMinTask.dll" />
<Target Name="AfterBuild">
<ItemGroup>
<JsFiles Include="**\res\js\libs\jquery.js" />
</ItemGroup>
<AjaxMin Switches="-global:jQuery,$" JsSourceFiles="@(JsFiles)" JsCombinedFileName="Combined.min.js" />
</Target>
Combined.min.js 在我的 Web 项目的根目录中创建(如预期的那样),但它包含 jquery.js 文件的两个缩小副本。
我正在使用 Microsoft Visual Studio Ultimate 2012 RC(版本 11.0.50706.0 QRELRC,2012 年 7 月),并且参考“AjaxMinTask.dll”文件是来自此处的最新版本 (4.59.4576.13505) 。
现在,这是最奇怪的事情。此外,我在 VS 2010 和 VS 2012 中都创建了全新的 MVC3 项目,并将上述行复制并粘贴到他们的项目文件中 - 仅更改 AjaxMinTask.dll 的路径(使用与损坏的项目相同的路径)和JQuery 文件 (\scripts\jquery..js) 的路径,它们工作得很好。
不幸的是,我无法粘贴项目文件,因为它对于堆栈溢出来说太长了,所以我将它与我试图缩小/组合的原始 jquery 文件、生成的“缩小”文件和我的 AjaxMin 程序集一起压缩正在使用:
[网址已编辑]
或者,我非常愿意接受任何其他建议的方法,当我使用 .Net 4.0 和 MVC 3 在 Visual Studio 2012 中以发布模式构建时,这些方法将允许我缩小/合并。