Невозможно запустить 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