Это не ваш случай, но у меня возникла та же проблема, потому что мой код содержал html комментарии до и после разметки шаблона, например:
<!-- Foo Widget -->
<div class="foo-widget">[...]</div>
<!-- end:: Foo Widget -->
- проблема решена.
Это похоже на очень простой сценарий для написания. Подойдет даже командный файл:
msbuild \path\to\first.sln /p:Configuration=Release msbuild \path\to\second.sln /p:Configuration=Release msbuild \path\to\third.sln /p:Configuration=Release msbuild \path\to\fourth.sln /p:Configuration=Release call deploy
Конечно, гораздо лучше было бы запустить сервер, скажем CruiseControl.NET , который предоставляет веб-интерфейс для просмотра статуса и истории сборки.
В В MS Build для вызывающего есть две основные контрольные точки: цель и ее свойства. Цель - это то, что компилировать, ресурсы, компиляция, развертывание и т. Д. Свойства управляют тем, как создается эта цель.
Вы можете управлять конфигурацией с помощью свойства Configuration (см. Выше). Если вы откроете свои файлы *. * Proj, вы увидите элементы PropertyGroup
. Их можно установить через командную строку с помощью аргумента / p
Вот спецификации для двух аргументов:
/target:<targets> Build these targets in this project. Use a semicolon or a
comma to separate multiple targets, or specify each
target separately. (Short form: /t)
Example:
/target:Resources;Compile
/property:<n>=<v> Set or override these project-level properties. <n> is
the property name, and <v> is the property value. Use a
semicolon or a comma to separate multiple properties, or
specify each property separately. (Short form: /p)
Example:
/property:WarningLevel=2;OutDir=bin\Debug\
Вот хорошее руководство , в котором есть много полезной информации о MSBuild, Continuous Integration и CuriseControl.NET. Определенно хорошее место для начала.