无法在Visual Studio中作为后期构建运行Ajax Minifier

时间:2010-12-27 13:48:18

标签: visual-studio-2010 msbuild microsoft-ajax-minifier

我已经设置了我的帖子构建配置,如http://www.asp.net/ajaxlibrary/ajaxminquickstart.ashx

所示

我收到以下错误:

“AjaxMin”任务不支持“JsSourceFiles”参数。 验证任务上是否存在参数,它是可设置的公共实例属性。

我的配置设置......

<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的{​​{1}}数组,但我编辑了我的配置以匹配。

SourceFiles

我现在收到错误:

“AjaxMin”任务不支持“SourceFiles”参数。 验证任务上是否存在参数,它是可设置的公共实例属性。

我现在正在挠头。当然它应该比这更容易吗?

我在Windows 7 64位安装上运行Visual Studio 2010 Ultimate。

1 个答案:

答案 0 :(得分:1)

我不建议在AfterBuild期间缩小。许多构建系统假设源代码在执行构建时是只读的和/或不变的,并且包括.min.js文件。

相反,您可以挂钩“CopyWebApplication”目标和Visual Studio 2010的网站部署引擎(WPP / Web Publishing Pipeline)来完成同样的事情,而不需要.min.js文件。

看看我对这个问题的回答: Concatenate and minify JavaScript on the fly OR at build time - ASP.NET MVC

但是,要直接回答您的问题,“SourceFiles”属性不再存在。一些较旧的博客文章未更新,现在有旧信息。尝试在属性前放置“Js” - 即/ JsSourceFiles =“@(JS)”。

最新版本 - http://ajaxmin.codeplex.com/

文档 - http://ajaxmin.codeplex.com/wikipage?title=AjaxMinTask