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" />
Я подозреваю, что это какая-то ошибка.