2

我已经设置了我的后期构建配置,如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有一个被调用的数组,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>

我现在得到错误:

“AjaxMin”任务不支持“SourceFiles”参数。验证该参数是否存在于任务中,并且它是一个可设置的公共实例属性。

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

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

4

1 回答 1

1

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

相反,您可以连接到“CopyWebApplication”目标和 Visual Studio 2010 的网站部署引擎(WPP/Web 发布管道)来完成同样的事情,而无需 .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

于 2011-07-25T22:10:02.520 回答