我使用Yahoo.Yui.Compressor.Build.MsBuild来压缩css和javascript文件。我已经安装了XML2.2,Yahoo.Yui.Compressor.Build.MsBuild文件的格式是
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
<UsingTask
TaskName="CompressorTask"
AssemblyFile="..\..\lib\yui\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
<PropertyGroup>
<JavaScriptOutputFile Condition=" '$(JavaScriptOutputFile)'=='' ">..\scripts-min\myfile.min.js</JavaScriptOutputFile>
</PropertyGroup>
<Target Name="MyTaskTarget">
<ItemGroup>
<JavaScriptFiles Include="$(SourceLocation)..\scripts\myfile.js"/>
</ItemGroup>
<CompressorTask
CssFiles="@(CssFiles)"
DeleteCssFiles="false"
CssOutputFile="$(CssOutputFile)"
CssCompressionType="YuiStockCompression"
JavaScriptFiles="@(JavaScriptFiles)"
ObfuscateJavaScript="True"
PreserveAllSemicolons="False"
DisableOptimizations="Nope"
EncodingType="Default"
DeleteJavaScriptFiles="false"
LineBreakPosition="-1"
JavaScriptOutputFile="$(JavaScriptOutputFile)"
LoggingType="ALittleBit"
ThreadCulture="en-au"
/>
</Target>
</Project>当我构建代码时,它会显示下面的错误
Error 18 The "CompressorTask" task could not be loaded from the assembly D:\Projects\YUI\..\..\lib\yui\Yahoo.Yui.Compressor.Build.MsBuild.dll. Could not load file or assembly 'Yahoo.Yui.Compressor, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null'or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. 发布于 2013-03-28 05:41:30
我也遇到了同样的问题...
看起来Yahoo.Yui.Compressor.dll需要和Yahoo.Yui.Compressor.Build.MsBuild.dll在同一个目录中。其他依赖项可能也是如此,比如EcmaScript.NET.dll和Iesi.Collections.dll。
您可以将内容移动到\lib\yui\目录中,使它们并排放置,也可以引用bin文件夹中的程序集。
如果您决定引用bin文件夹中的程序集,则可能必须使用生成后事件来触发压缩,而不是使用生成前事件。
https://stackoverflow.com/questions/14894157
复制相似问题