Я поднимаюсь на конечных этапах проекта Asp.Net MVC 1.0 в VS2008/Framework 3.5 и стараюсь сделать некоторые оптимизации производительности. В моем проекте у меня есть несколько разных «тем», которые используются, в зависимости от роли зарегистрированного пользователя. Моя структура папок тем же ...Перечисление папок с MSBuild
\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! Библиотека UI: Компрессор YUI для .Net (что действительно круто), чтобы минимизировать и объединить файлы css (и js).
Я выполнил пример в http://yuicompressor.codeplex.com/wikipage?title=Sample%20MSBuild.xml%20File&ProjectName=yuicompressor, чтобы запустить сценарий MSBuild через событие post-build для выполнения задач minify/merge.
Все прекрасно работает, за исключением того, что когда я использую что-то вроде <CssFiles Include="..\Themes\**\*.css" />
в моем ItemGroup, чтобы указать, где, чтобы получить файлы CSS, все CSS-файлы из каждой темы будут объединены в один файл, как это ...
\Themes
\SylesSheetFinal.css
Что я хочу вместо этого слиться только CSS под тем, создавая один CSS файл для каждого ...
\Themes
\Theme1
\StyleSheetFinal1.css
\Theme2
\StyleSheetFinal2.css
Я действительно новым для MSBuild. Кто-нибудь знает, как я могу изменить образец, чтобы автоматически перемещаться по каждой из папок темы и создавать миниатюрные/объединенные таблицы стилей для каждого? Темы могут быть добавлены или удалены довольно часто, поэтому я не хочу, чтобы вручную включать каждый путь к моей статье ItemGroup. Вместо этого я хочу, чтобы скрипт MSBuild автоматически запускал подпапки под корнем Themes независимо от количества папок.
Спасибо!
Как я упоминал в сообщении, мне нужно перебрать произвольное количество подпапок, не зная, сколько существует. Ваш образец (и пакетная загрузка afik в целом) требует, чтобы я заранее знал список папок. – racingcow
Из предоставленной ссылки вы найдете это сообщение в блоге http://sedodream.com/2006/08/15/MSBuildBatching.aspx, пожалуйста, прочитайте его. –