Невозможно запустить Ajax Minifier как пост-сборку в Visual Studio - PullRequest
2 голосов
/ 27 декабря 2010

Я настроил свою конфигурацию после сборки, как показано на http://www.asp.net/ajaxlibrary/ajaxminquickstart.ashx

Я получаю следующую ошибку, хотя:

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

Мои параметры конфигурации ......

<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
<Target Name="AfterBuild">
<ItemGroup>
  <JS Include="**\*.js" Exclude="**\*.min.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"  />
</Target>

Я посмотрел наAjaxMinTask.dll с отражателем и отметил, что общедоступные свойства не совпадают с теми в моей конфигурации.Существует массив ITaskItem с именем SourceFiles, поэтому я изменил свою конфигурацию так, чтобы она соответствовала.

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
  <Target Name="AfterBuild">
    <ItemGroup>
      <JS Include="**\*.js" Exclude="**\*.min.js" />
    </ItemGroup>
    <ItemGroup>
      <CSS Include="**\*.css" Exclude="**\*.min.css" />
    </ItemGroup>
    <AjaxMin
        SourceFiles="@(JS);@(CSS)"  SourceExtensionPattern="\.js$;\.css$" TargetExtension=".min.js;.min.css"/>
  </Target>

Теперь я получаю сообщение об ошибке:

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

Я сейчас чищу голову.Конечно, это должно быть проще, чем это?

Я использую Visual Studio 2010 Ultimate в 64-разрядной установке Windows 7.

1 Ответ

1 голос
/ 26 июля 2011

Я бы не рекомендовал минимизировать во время AfterBuild.Многие системы сборки предполагают, что исходный код доступен только для чтения и / или неизменен при выполнении сборки, и это будет включать файлы .min.js.

Вместо этого вы можете подключиться к «CopyWebApplication»Цель и механизм развертывания веб-сайтов Visual Studio 2010 (WPP / Web Publishing Pipeline) для достижения той же цели без использования файлов .min.js.

Посмотрите на мой ответ на этот вопрос: Объедините иминимизировать JavaScript на лету ИЛИ во время сборки - ASP.NET MVC

Однако, чтобы ответить на ваш вопрос напрямую, свойство «SourceFiles» больше не существует.Некоторые старые посты в блоге не обновлялись и теперь содержат старую информацию.Попробуйте поместить "Js" перед свойствами - т.е. / JsSourceFiles = "@ (JS)".

Последняя версия - http://ajaxmin.codeplex.com/

Документация - http://ajaxmin.codeplex.com/wikipage?title=AjaxMinTask

...