【问题标题】:Integrate YuiCompressor into TFS build将 YuiCompressor 集成到 TFS 构建中
【发布时间】:2012-02-23 17:04:15
【问题描述】:

我已经使用 TFS 构建模板部署了我的网站,现在我想使用 .net 的 yuicompressor 端口添加 css 和 js 缩小和压缩,我已按照Yui compressor site in Codeplex 的所有说明进行操作,但我没有结果。我需要一些示例或任何其他探测方式来在 TFS 构建过程中使用 yuicompressor。

这是我附加到项目文件中的与 yui-compressor 相关的配置部分

<UsingTask
        TaskName="CompressorTask"
        AssemblyFile="$(MSBuildProjectDirectory)\..\packages\YUICompressor.NET-MsBuild-Task.1.7.0.0\lib\net35\Yahoo.Yui.Compressor.MsBuildTask.dll" />
  <PropertyGroup>
    <SourceLocation>$(MSBuildProjectDirectory)</SourceLocation>
    <CssOutputFile>$(SourceLocation)\Content\sylessheetfinal.css</CssOutputFile>
    <JavaScriptOutputFile>$(SourceLocation)\Scripts\javascriptfinal.js</JavaScriptOutputFile>
  </PropertyGroup>
  <Target Name="MyTaskTarget">
    <ItemGroup>        
      <!-- All the files. They will be handled (I assume) in alphabetically. -->          
      <CssFiles Include="$(SourceLocation)\Content\*.css" />
      <JavaScriptFiles Include="$(SourceLocation)\Scripts\*.js" />
    </ItemGroup>
    <CompressorTask
        CssFiles="@(CssFiles)"
        DeleteCssFiles="false"
        CssOutputFile="$(CssOutputFile)"
        CssCompressionType="YuiStockCompression"
        JavaScriptCompressionType="YuiStockCompression"
        JavaScriptFiles="@(JavaScriptFiles)"
        ObfuscateJavaScript="True"
        PreserveAllSemicolons="False"
        DisableOptimizations="Nope"
        EncodingType="Default"
        DeleteJavaScriptFiles="false"
        LineBreakPosition="-1"
        JavaScriptOutputFile="$(JavaScriptOutputFile)"
        LoggingType="ALittleBit"
        ThreadCulture="en-au"
        IsEvalIgnored="false"/>
  </Target>

【问题讨论】:

    标签: yui minify tfsbuild


    【解决方案1】:

    您是否在 Team Foundation Server 上使用 Team Build?该网站上的说明适用于本地开发人员的机器,因为他们提到在构建后事件的命令行中调用 msbuild.exe。 请注意,项目文件(即 csproj)正在使用 msbuild xml 语法,因此即使对于本地开发人员的构建,在构建后使用 msbuild.exe 也是过度的 - 所以您可能需要做的是在您的项目中复制他们的部分 msbuild.xml文件,如果您使用的是 Web 应用程序项目

    【讨论】:

    • 我也尝试过这个选项,但没有结果,编译时没有错误,但无论如何它都不起作用,如果我能得到一些 yui-compressor 任务的日志,将会很有用