Я подхожу к завершающей стадии проекта 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 автоматически просматривал подпапки под корнем тем, независимо от количества папок.
Спасибо!