Ajax迷你程序:通过项目文件/msbuild任务组合时的JS文件复制

Ajax迷你程序:通过项目文件/msbuild任务组合时的JS文件复制,msbuild,projects-and-solutions,csproj,microsoft-ajax-minifier,ajaxmin,Msbuild,Projects And Solutions,Csproj,Microsoft Ajax Minifier,Ajaxmin,一段时间以来,我一直在尝试缩小和捆绑我的MVC3项目,尝试了许多不同的压缩器和方法。我最终决定通过项目文件中的msbuild任务来使用MicrosoftAJAXminifier。我只了解我的配置,但我遇到了一个直接的绊脚石;当我缩小JS脚本并将其组合到单个文件中(使用下面的任务定义)时,我的组合文件始终包含每个脚本的两个缩小副本 我已经删除了我添加的所有其他复杂的msbuild任务,删除了除一个JS脚本之外的所有其他任务,但它仍然在发生。以下标记是我手动修改的项目文件的唯一部分: <Usi

一段时间以来,我一直在尝试缩小和捆绑我的MVC3项目,尝试了许多不同的压缩器和方法。我最终决定通过项目文件中的msbuild任务来使用MicrosoftAJAXminifier。我只了解我的配置,但我遇到了一个直接的绊脚石;当我缩小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>

现在,这是最奇怪的事情。此外,我在VS 2010和VS 2012中创建了全新的MVC3项目,并将上述行复制并粘贴到了它们的项目文件中-只更改了到AjaxMinTask.dll的路径(与断开的项目相同)和JQuery文件(\scripts\JQuery..js)的路径,它们工作得非常好

不幸的是,我无法粘贴项目文件,因为它太长,不适合堆栈溢出,所以我用我尝试缩小/合并的原始jquery文件、生成的“缩小”文件以及我使用的AjaxMin程序集对其进行了压缩:

[网址已编辑]


或者,当我在Visual Studio 2012中使用.Net 4.0和MVC 3以发布模式构建时,我非常愿意接受任何其他建议的方法,这些方法将允许我缩小/合并。。。我通过将“js”目录更改为另一个名称(“javascript”)来解决这个问题(经过几天的闲聊!):


或从路径开头删除“***\”:

<JsFiles Include="res\js\libs\jquery.js" />


我怀疑这是某种缺陷。

我打赌**从bin文件夹下提取了.js文件的副本,因此每个文件都有两次,但来自两个不同的位置。我不知道,但我找不到任何详细的文档,也找不到任何不包含**前缀的示例。谢天谢地,现在好了。。。我不常为某件事这么长时间地拉扯头发!
<JsFiles Include="res\js\libs\jquery.js" />