我一直试图在我的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”文件是来自here的最新版本(4.59.4576.13505)。
现在,这是最奇怪的事情。此外,我在VS 2010和VS 2012中创建了全新的MVC3项目,并复制了&amp;将上面的行粘贴到他们的项目文件中 - 只更改AjaxMinTask.dll的路径(使用与损坏的项目相同的路径)和JQuery文件的路径(\ scripts \ jquery..js),以及 <他们的工作非常好 。
不幸的是我无法粘贴项目文件,因为它对于堆栈溢出来说太长了,所以我用原始的jquery文件压缩它,我正在尝试缩小/组合,产生“缩小”的文件,以及我正在使用的AjaxMin程序集:
[Url Redacted]
或者,我对使用.Net 4.0和MVC 3在Visual Studio 2012中构建发布模式时允许我缩小/组合的任何其他建议方法非常开放。
答案 0 :(得分:0)
嗯,这是一个奇怪的问题......我已经设法通过将“js”目录更改为另一个名称(“javascript”)来解决这个问题(经过几天的讨论!):
<JsFiles Include="**\res\javascript\libs\jquery.js" />
或从路径的开头删除“** \”:
<JsFiles Include="res\js\libs\jquery.js" />
我怀疑这是某种错误。