Невозможно запустить Ajax Minifier как пост-сборку в Visual Studio

Я настроил свою конфигурацию пост-сборки, как показано на 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 ответ

Решение

Я бы не рекомендовал минимизировать во время 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

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