Обновление Msbuild и SVN
Вопрос
Я хочу написать простую задачу, которая обновит и зафиксирует исходный код, который был собран каждую ночь, в SVN.Я был на странице msbuildtasks.tigris.org и скачал DLL, но я понятия не имею, как это написать.Не могли бы вы, пожалуйста, предоставить несколько основных образцов?
Решение
Вот пример (взят из сборки сообщества MSBuild), который делает именно это:
<ItemGroup>
<CommitFiles Include="www\index.html" />
<CommitFiles Include="www\MSBuild.Community.Tasks.Nightly.zip" />
<CommitFiles Include="www\MSBuild.Community.Tasks.Nightly.msi" />
</ItemGroup>
<SvnCommit Targets="@(CommitFiles)" Message="AutoBuild"
Username="$(CommitUser)" Password="$(CommitPassword)">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnCommit>
Конечно, вам нужно импортировать задачи сообщества MSBUild, чтобы это работало:
<Import Project="MSBuild.Community.Tasks.Targets" />
В этом примере фиксируется только пара файлов, но, установив свойство Targets для задачи, можно легко получить больше.
Другие советы
Мы используем nant, и хотя существуют задачи, специфичные для svn, у вас гораздо больше контроля с помощью exec-задачи.
Если вы установите клиентский интерфейс командной строки svn на свой сервер сборки, вы сможете использовать задачу exec в MSBuild для запуска команды svn update.Вот фрагмент из нашего скрипта сборки Nant, который, я уверен, вы могли бы легко адаптировать к скрипту MSBuild.
Надеюсь, это поможет.