2013-12-09 2 views
1

Я хочу запустить пользовательскую задачу для компиляции бездействующих файлов в .css перед упаковкой приложения (.net mvc 3).MSBUILD script - Это правильный способ петли?

У меня нет большого опыта создания сценариев MSBUILD, поэтому, читая онлайн, я придумал код ниже. Он работает, но я чувствую, что мне нужно пропустить явное объявление ItemGroup и просто поручить сценарию искать «любую папку в папке« Скины ». Возможно ли это вообще?

<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

Смежные вопросы