2011-09-15 1 views
0

Utilisation de la configuration msbuild suivante:MSBuild/erreur YUICompressor

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

je reçois l'erreur suivante:

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

J'utilise la version .NET 2.0 32 bits de MsBuild.

Qu'est-ce qui ne va pas?

Répondre

1

Vous ne pouvez pas mettre un ItemGroup dans une cible avec MSBuild for .NET 2. Vous devez utiliser la tâche CreateItem ou la placer en dehors de la cible. Dans votre cas, vous ne semblez pas avoir besoin de créer dynamiquement l'objet JavaScriptFiles, vous devez donc le mettre en dehors de la cible.


extérieur:

<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> 

En utilisant 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> 
Questions connexes