1

我想在打包应用程序(.net mvc 3)之前运行自定义任务将 .less 文件编译为 .css。

我没有很多创建 MSBUILD 脚本的经验,所以通过在线阅读我想出了下面的代码。它可以工作,但我觉得应该有一种方法可以让我跳过 ItemGroup 显式声明并指示脚本查找“Skins 文件夹下的任何文件夹”。这有可能吗?

  <Target Name="CompileLessToCss" BeforeTargets="Package">
  <PropertyGroup>
    <DotLessCompiler>..\..\Libraries\dotless\dotless.Compiler.exe</DotLessCompiler>        
    <!--Skin Paths -->
    <ApplicationSkins>Content\Skins\</ApplicationSkins>
    <MobileSkins>Areas\Mobile\Content\Skins\</MobileSkins>
    <!--Style FileNames -->
    <LessPath>\less\main.less</LessPath>
    <CssPath>\css\main.min.css</CssPath>
  </PropertyGroup>
<ItemGroup>
  <Skins Include="$(ApplicationSkins)Blue"/>
  <Skins Include="$(MobileSkins)Blue"/>
  <Skins Include="$(ApplicationSkins)Red"/>
  <Skins Include="$(MobileSkins)Red"/>
  <Skins Include="$(ApplicationSkins)Yellow"/>
  <Skins Include="$(MobileSkins)Yellow"/>
</ItemGroup>

<!-- Compiling Less Files -->
<Message Text="Compiling Less For Skins: @(Skins)"/>
<Exec Command="$(DotLessCompiler) -m &quot;%(Skins.FullPath)$(LessPath)&quot; &quot;%(Skins.FullPath)$(CssPath)&quot;" />

4

1 回答 1

0

您可以使用通配符构造项目组。这些方面的东西:

 <ItemGroup><skins Include=".\Skins\*"></Itemgroup>
于 2013-12-09T19:32:25.870 回答