编辑4(解决时删除了编辑1至3)

我的最后一个问题是我想要多个目标,但似乎无法正常工作。我必须将它们全都放在同一个目标上,因为它很适合不同的名称,所以我必须更改一些内容,让我可以仅查看目标名称。

你好

我正在尝试获取MsBuild,并且可以正常工作。...如果我所有的东西都在同一个目标标记中。如果我有多个标签,它只会做第一个,就是这样。其他目标均未完成。

<Target Name="Test1">
    <ItemGroup>
      <JavaScriptFiles Remove="@(JavaScriptFiles)" />
  <JavaScriptFiles Include="..\PathHere\Javascript.js"/>

</ItemGroup>
<CompressorTask
      JavaScriptFiles="%(JavaScriptFiles.Identity)"
      ObfuscateJavaScript="True"
      PreserveAllSemicolons="False"
      DisableOptimizations="Nope"
      EncodingType="Default"
      DeleteJavaScriptFiles="false"
      LineBreakPosition="-1"
      JavaScriptOutputFile="../Path/Here/(JavaScriptFiles.FileName).min.js"
      LoggingType="ALittleBit"
      ThreadCulture="en-au"
      IsEvalIgnored="false"
        />

<ItemGroup>
  <JavaScriptFiles Remove="@(JavaScriptFiles)" />
   <JavaScriptFiles Include="..\PathHere\Javascript2.js"/>

</ItemGroup>
<CompressorTask
      JavaScriptFiles="%(JavaScriptFiles.Identity)"
      ObfuscateJavaScript="True"
      PreserveAllSemicolons="False"
      DisableOptimizations="Nope"
      EncodingType="Default"
      DeleteJavaScriptFiles="false"
      LineBreakPosition="-1"
      JavaScriptOutputFile="../Path/Here/%(JavaScriptFiles.FileName).min.js"
      LoggingType="ALittleBit"
      ThreadCulture="en-au"
      IsEvalIgnored="false"
        />


  </Target>


因此上述工作。如果我这样做

    <Target Name="Test2">

        <ItemGroup>
          <JavaScriptFiles Remove="@(JavaScriptFiles)" />
           JavaScriptFiles Include="..\PathHere\Javascript3.js"/>
    </ItemGroup>
    <CompressorTask
          JavaScriptFiles="%(JavaScriptFiles.Identity)"
          ObfuscateJavaScript="True"
          PreserveAllSemicolons="False"
          DisableOptimizations="Nope"
          EncodingType="Default"
          DeleteJavaScriptFiles="false"
          LineBreakPosition="-1"
          JavaScriptOutputFile="../Path/Here/%(JavaScriptFiles.FileName).min.js"
          LoggingType="ALittleBit"
          ThreadCulture="en-au"
          IsEvalIgnored="false"
            />

</Target>


然后第一个目标将消失,而上面的一个将不执行任何操作。

最佳答案

我不确定,但是似乎对MSBuild变量访问有些困惑。有三种方法可以使用msbuild访问变量。

$()  Extracts the value of a property
@()  Extracts the value of an item as a list, that is, vector
%()  Extracts value of an item as a single string, that is, scalar


看起来您实际上想在使用@()的地方使用%(),但是我承认我很难理解您的问题所在。您说它“什么也不会做”,但是很有可能它正在做某事,即使它似乎没有做任何事。

more here

关于jquery - 如何使它自动在所有文件上运行?适用于Visual Studio的YUI压缩器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2823271/

10-13 06:45