Ajax Minifier: duplicación de archivos JS al combinar a través de un archivo de proyecto/tarea msbuild

He estado intentando que la minificación y la agrupación funcionen en mi proyecto MVC3 durante algún tiempo, probando bastantes compresores y métodos diferentes. Finalmente me decidí a usar Microsoft Ajax Minifier a través de una tarea de msbuild en mi archivo de proyecto. Estoy solo hasta ahora en mi configuración, pero me he topado con un obstáculo inmediato; cuando minifico y combino mis scripts JS en un solo archivo (usando la definición de tarea a continuación), mi archivo combinado siempre contiene dos copias minimizadas de cada script.

Eliminé todas las demás tareas complicadas de msbuild que agregué, eliminé todas las secuencias de comandos JS excepto una, y todavía está sucediendo. Las siguientes etiquetas son la única parte de mi archivo de proyecto que he modificado manualmente:

<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 se crea en la raíz de mi proyecto web (como se esperaba), pero contiene dos copias minificadas del archivo jquery.js.

Estoy usando Microsoft Visual Studio Ultimate 2012 RC (Versión 11.0.50706.0 QRELRC julio de 2012) y el archivo de referencias "AjaxMinTask.dll" es la última versión (4.59.4576.13505) de aquí.

Ahora, aquí está la cosa más rara. Además, creé proyectos MVC3 completamente nuevos tanto en VS 2010 como en VS 2012, y copié y pegué las líneas anteriores en sus archivos de proyecto, solo cambiando la ruta a AjaxMinTask.dll (para usar lo mismo que el proyecto roto) y el ruta al archivo JQuery (\scripts\jquery..js), y funcionan perfectamente bien.

Desafortunadamente, no puedo pegar el archivo del proyecto porque es demasiado largo para el desbordamiento de la pila, así que lo comprimí con el archivo jquery original que estoy tratando de minimizar/combinar, el archivo "minificado" resultante y los ensamblajes AjaxMin I estoy usando:

[ Url redactada ]

Alternativamente, estoy muy abierto a cualquier otro método sugerido que me permita minimizar/combinar cuando construyo en modo de lanzamiento en Visual Studio 2012, usando .Net 4.0 y MVC 3.

preguntado el 28 de julio de 12 a las 13:07

1 Respuestas

Bueno, aquí hay un problema extraño... Me las arreglé para arreglar esto (¡después de días de perder el tiempo!) ya sea cambiando el directorio "js" a otro nombre ("javascript"):

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

o eliminando el "**\" del comienzo de la ruta:

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

Sospecho que esto es un error de algún tipo.

Respondido 28 Jul 12, 15:07

Apuesto a que ** estaba recogiendo copias de los archivos .js de debajo de la carpeta bin, por lo tanto, cada archivo dos veces, pero desde dos ubicaciones diferentes: Brian Kretzler

No tengo idea, pero no puedo encontrar ninguna documentación detallada y no pude encontrar ningún ejemplo que no contenga el prefijo **. Resuelto ahora, gracias a Dios ... ¡no es frecuente que me tire de los pelos por algo durante tanto tiempo! - Spikeh

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.