2013-12-09 42 views
1

我想在打包應用程序(.net mvc 3)之前運行自定義任務以將.less文件編譯爲.css。MSBUILD腳本 - 這是循環的正確方法嗎?

我沒有很多創建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;" /> 

回答

0

您可以構建使用wildcards項目組。沿着這些線:

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

謝謝!該劇本現在看起來是「正確的」 – qbantek

相關問題