Я подхожу к завершающим этапам проекта Asp.Net MVC 1.0 в VS2008 / Framework 3.5 и пытаюсь провести некоторую оптимизацию производительности. В моем проекте у меня есть несколько разных «тем», которые используются в зависимости от роли вошедшего в систему пользователя. Структура моей папки тем выглядит примерно так ...
\Themes
\Theme1
\Css
\Folder1
\CssFile1.css
\CssFile2.css
\Folder2
\CssFile1.css
\CssFile2.css
\Images
<Images go here>
\Theme2
\Css
\Folder1
\CssFile1.css
\CssFile2.css
\Folder2
\CssFile1.css
\CssFile2.css
\Images
<Images go here>
По мере появления новых клиентов в эту структуру папок будут добавляться новые темы.
Я использую Yahoo! Библиотека пользовательского интерфейса: YUI Compressor для .Net
(что действительно здорово) минимизировать и объединить мои css (и js) файлы.
Я последовал примеру на http://yuicompressor.codeplex.com/wikipage?title=Sample%20MSBuild.xml%20File&ProjectName=yuicompressor, чтобы запустить скрипт MSBuild через событие после сборки для выполнения задач минимизации / слияния.
Все отлично работает, за исключением того, что когда я использую что-то вроде <CssFiles Include="..\Themes\**\*.css" />
в моей ItemGroup, чтобы указать, где взять файлы CSS, все файлы CSS из каждой темы объединяются в один файл, как этот ...
\Themes
\SylesSheetFinal.css
Вместо этого я хочу объединить только CSS под темами, создавая один CSS-файл для каждого ...
\Themes
\Theme1
\StyleSheetFinal1.css
\Theme2
\StyleSheetFinal2.css
Я действительно новичок в MSBuild. Кто-нибудь знает, как я могу изменить образец для автоматического обхода каждой из папок темы и создания минимизированной / объединенной таблицы стилей для каждой? Темы могут быть добавлены или удалены довольно часто, поэтому я не хочу вручную включать каждый путь темы в мою ItemGroup. Вместо этого я хочу, чтобы скрипт MSBuild автоматически перемещал подпапки под корнем тем, независимо от количества папок.
Спасибо!