MSBuild/YUICompressor错误

MSBuild/YUICompressor错误,msbuild,yui,Msbuild,Yui,使用以下msbuild配置: <?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003"> <UsingTask TaskName="CompressorTask" AssemblyFile="Yahoo.Yui.Compressor.dll" /> &l

使用以下msbuild配置:

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

..\..\site.se\javascript\javascript.min.js
我得到以下错误:

xml(14,11):错误MSB4067:-下的元素 -元素未知。(翻译自瑞典语)

我使用的是32位的.NET2.0版本的MsBuild


有什么问题吗?

您不能将
项目组
放在具有.NET 2 MSBuild的目标中。您必须使用
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>
  <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>