Как использовать параметр -clobber при использовании Ajax Minifier в процессе MSBuild в Visual Studio 2010 - PullRequest
2 голосов
/ 01 июня 2011

По сути, моей конечной целью является удаление уже существующих .min.js и CSS-файлов при создании моего решения Visual Studio, пока у меня Ajax Minifier (версия 4.20) как один из MSBuild задача, которая минимизирует файлы .js и .css.

Согласно документации Ajax Minifier, я могу использовать опцию -clobber для достижения вышеупомянутой цели. Однако я не могу понять, где в задаче проекта Visual Studio MSBuild я могу использовать эту опцию. Я успешно могу использовать параметр -clobber из командной строки Ajax Minifier.

Вот код конфигурации, который есть в моем файле проекта (.csproj) ...

<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
<Target Name="AfterBuild">
    <ItemGroup>
        <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js" />
    </ItemGroup>
    <ItemGroup>
        <CSS Include="**\*.css" Exclude="**\*.min.css" />
    </ItemGroup>
    <AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" clobber="true" />
</Target>

Однако, когда я скомпилировал свое решение, я получил следующую ошибку - не уверен почему?

Параметр «clobber» не поддерживается задачей «AjaxMin». Убедитесь, что параметр существует в задаче и является настраиваемым общедоступным свойством экземпляра.

Ответы [ 4 ]

0 голосов
/ 08 ноября 2015

Вам просто нужно правильно ввести переключатель -clobber.

Изменение

<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js"
CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css"
clobber="true" />

до

<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js"
CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css"
Switches="-clobber" />
0 голосов
/ 22 ноября 2011

C: \ "Программные файлы (x86)" \ MicroSoft \ "MicroSoft Ajax Minifier" \ AjaxMin.exe -css $ (ProjectDir) css \ style1.css $ (ProjectDir) css \ style2.css $ (ProjectDir) css\ style3.css -o $ (ProjectDir) css \ master.min.css -clobber: true

Примечание: убедитесь, что команда находится в одной строке в событии POSTBuild

Вот чтоЯ использую.Если вы комбинируете скрипт, измените -css на -js .

На основании документа: http://ajaxmin.codeplex.com/wikipage?title=Command-Line%20Switches

По умолчанию -clobber установлен как false.поэтому необходимо указать true в конце, если вы хотите заменить существующий выходной файл.

0 голосов
/ 17 апреля 2012

Вам не нужен ключ -clobber для задачи сборки, которая использует AjaxMin.DLL.Этот переключатель необходим только для AjaxMin.EXE.

0 голосов
/ 12 июня 2011

Из того, что я могу сказать из документации, похоже, что переключатель clobber недоступен.Тот факт, что он недоступен, указывает на то, что удаление устаревших файлов будет выполнено задачей.Задача по управлению файлами имеет для меня немного смысла.При этом вы уверены, что вам нужен переключатель clobber?

Если вы это сделаете, вы можете вызвать консольную версию AjaxMin, используя задачу exec:

<Exec Command="C:\PathToAjaxMin\AjaxMin.exe _options_here_" />

Exec Task

...