MSBUILD脚本-这是正确的循环方式吗?

MSBUILD脚本-这是正确的循环方式吗?,msbuild,msbuild-4.0,msbuild-target,Msbuild,Msbuild 4.0,Msbuild Target,我想在打包应用程序(.net mvc 3)之前运行一个自定义任务,将.less文件编译为.css 我没有很多创建MSBUILD脚本的经验,所以通过在线阅读,我找到了下面的代码。它可以工作,但我觉得应该有一种方法可以让我跳过ItemGroup显式声明,只需指示脚本查找“Skins folder下的任何文件夹”。那有可能吗 <Target Name="CompileLessToCss" BeforeTargets="Package"> <PropertyGroup>

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

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

  <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;" />

..\..\Libraries\dotless\dotless.Compiler.exe
内容\皮肤\
区域\移动\内容\皮肤\
\less\main.less
\css\main.min.css

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

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