【问题标题】:MSBUILD script - Is this the proper way to loop?MSBUILD 脚本 - 这是循环的正确方法吗?
【发布时间】:2013-12-09 19:25:46
【问题描述】:

我想在打包应用程序(.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;" />

【问题讨论】:

    标签: msbuild msbuild-4.0 msbuild-target


    【解决方案1】:

    您可以使用wildcards 构建项目组。大致如下:

     <ItemGroup><skins Include=".\Skins\*"></Itemgroup>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2021-01-11
      相关资源
      最近更新 更多