6

ファイルとファイルを圧縮するためにYahoo.Yui.Compressor.Build.MsBuildを使用しています。Yahoo.Yui.Compressor.Build.MsBuild 2.2 をインストールしました。xml ファイルの形式は次のとおりです。cssjavascript

     <?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. 
4

1 に答える 1

9

私はちょうど同じ問題に遭遇しました...

Yahoo.Yui.Compressor.dll同じディレクトリにある必要があるようYahoo.Yui.Compressor.Build.MsBuild.dllです。EcmaScript.NET.dll や Iesi.Collections.dll などの他の依存関係についても、おそらく同じことが当てはまります。

\lib\yui\ ディレクトリに移動して並べて配置するか、bin フォルダー内のアセンブリを参照することができます。

bin フォルダー内のアセンブリを参照する場合は、ビルド前のイベントではなく、ビルド後のイベントを使用して圧縮をトリガーする必要がある場合があります。

于 2013-03-27T21:41:29.503 に答える