Ajax Minifier: дублирование файла JS при объединении с помощью файла проекта / задачи msbuild

В течение некоторого времени я пытался заставить работать над моим проектом MVC3 минификацию и пакетирование, пробуя довольно много разных компрессоров и методов. Я наконец-то остановился на использовании Microsoft Ajax Minifier через задачу msbuild в моем файле проекта. Я только дошел до своей конфигурации, но я сразу же наткнулся на камень преткновения; Когда я минимизирую и объединяю свои 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 создается в корне моего веб-проекта (как и ожидалось), но содержит две минимизированные копии файла jquery.js.

Я использую Microsoft Visual Studio Ultimate 2012 RC (версия 11.0.50706.0 QRELRC, июль 2012 г.), и файл ссылки "AjaxMinTask.dll" является последней версией (4.59.4576.13505) отсюда.

Теперь вот самая странная вещь. Кроме того, я создал совершенно новые проекты MVC3 как в VS 2010, так и в VS 2012, и скопировал и вставил вышеупомянутые строки в их файлы проектов - изменив только путь к AjaxMinTask.dll (чтобы использовать тот же, что и у поврежденного проекта) и путь к файлу JQuery (\scripts\jquery..js), и они отлично работают.

К сожалению, я не могу вставить файл проекта, так как он слишком длинный для переполнения стека, поэтому я заархивировал его с помощью исходного файла jquery, который я пытаюсь минимизировать / объединить, получившийся в результате файл "minified" и сборки AjaxMin, которые я использую:

[URL удален]

Кроме того, я очень открыт для любых других предлагаемых методов, которые позволят мне минимизировать / комбинировать при сборке в режиме выпуска в Visual Studio 2012, используя.Net 4.0 и MVC 3.

1 ответ

Решение

Ну, вот странная ошибка... Мне удалось это исправить (после нескольких дней безрассудства!), Либо изменив каталог "js" на другое имя ("javascript"):

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

или удалив "**\" из начала пути:

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

Я подозреваю, что это какая-то ошибка.

Другие вопросы по тегам