Ошибка MSBuild / YUICompressor - PullRequest
       1

Ошибка MSBuild / YUICompressor

0 голосов
/ 15 сентября 2011

Используя следующую конфигурацию 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>

Я получаю следующую ошибку:

Scripts.xml (14,11): ошибка MSB4067: -element under -elementнеизвестно(перевод с шведского)

Я использую 32-разрядную версию MsBuild .NET 2.0.

Что не так?

1 Ответ

1 голос
/ 16 сентября 2011

Вы не можете поместить ItemGroup в цель с MSBuild для .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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...