2011-09-15 5 views
0

: 내가 MSBUILD의 32 비트 .NET 2.0 버전을 사용하고은 MSBuild/YUICompressor 오류 다음은 MSBuild 설정을 사용하여

Scripts.xml(14,11): error MSB4067: -element under -element is unknown. (translated from swedish)

:

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003"> 

    <UsingTask 
     TaskName="CompressorTask" 
     AssemblyFile="Yahoo.Yui.Compressor.dll" /> 

    <PropertyGroup> 
     <JavaScriptOutputFile Condition=" '$(JavaScriptOutputFile)'=='' ">..\..\site.se\javascript\javascript.min.js</JavaScriptOutputFile> 
    </PropertyGroup> 

    <Target Name="CompressorTask"> 
     <ItemGroup> 
      <JavaScriptFiles Include="..\..\site.se\javascript\javascript.js"/> 
     </ItemGroup> 
     <CompressorTask 
      JavaScriptFiles="@(JavaScriptFiles)" 
      ObfuscateJavaScript="True" 
      PreserveAllSemicolons="True" 
      DisableOptimizations="False" 
      EncodingType="utf-8" 
      DeleteJavaScriptFiles="false" 
      LineBreakPosition="-1" 
      JavaScriptOutputFile="$(JavaScriptOutputFile)" 
      LoggingType="HardcoreBringItOn" 
      ThreadCulture="en-us" 
      IsEvalIgnored="false" /> 
    </Target> 

</Project> 

나는 다음과 같은 오류가 발생합니다.

무엇이 잘못 되었나요?

답변

1

ItemGroup을 MSBuild for .NET 2와 함께 대상에 넣을 수 없습니다. CreateItem 작업을 사용해야하거나 대상 외부에 놓아야합니다. 귀하의 경우에는 JavaScriptFiles 항목을 동적으로 생성 할 필요가 없으므로 대상 외부에 놓기 만하면됩니다.


외부 :

<ItemGroup> 
    <JavaScriptFiles Include="..\..\site.se\javascript\javascript.js"/> 
    </ItemGroup> 

    <Target Name="CompressorTask"> 
    <CompressorTask 
     JavaScriptFiles="@(JavaScriptFiles)" 
     ObfuscateJavaScript="True" 
     PreserveAllSemicolons="True" 
     DisableOptimizations="False" 
     EncodingType="utf-8" 
     DeleteJavaScriptFiles="false" 
     LineBreakPosition="-1" 
     JavaScriptOutputFile="$(JavaScriptOutputFile)" 
     LoggingType="HardcoreBringItOn" 
     ThreadCulture="en-us" 
     IsEvalIgnored="false" /> 
    </Target> 

는 사용 CreateItem :

<Target Name="CompressorTask"> 
    <CreateItem Include="..\..\site.se\javascript\javascript.js"> 
     <Output TaskParameter="Include" ItemName="JavaScriptFiles"/> 
    </CreateItem> 

    <CompressorTask 
     JavaScriptFiles="@(JavaScriptFiles)" 
     ObfuscateJavaScript="True" 
     PreserveAllSemicolons="True" 
     DisableOptimizations="False" 
     EncodingType="utf-8" 
     DeleteJavaScriptFiles="false" 
     LineBreakPosition="-1" 
     JavaScriptOutputFile="$(JavaScriptOutputFile)" 
     LoggingType="HardcoreBringItOn" 
     ThreadCulture="en-us" 
     IsEvalIgnored="false" /> 
    </Target>