Я пытаюсь решить, на чьей стороне я в войне против МсБилд против Нанта.Я начинаю с: остановить службу, развернуть некоторые файлы, перезапустить службу.Просто взглянув на эти две ссылки, это гораздо проще сделать в Nant.
MSBuild: Пример использования задачи MSBuild службы существует в Microsoft.Sdc.Tasks?
<target name="service_exists">
<script language="C#">
<references>
<include name="System.ServiceProcess.dll" />
</references>
<code><![CDATA[
public static void ScriptMain(Project project) {
String serviceName = project.Properties["service.name"];
project.Properties["service.exists"] = "false";
project.Properties["service.running"] = "false";
System.ServiceProcess.ServiceController[] scServices;
scServices = System.ServiceProcess.ServiceController.GetServices();
foreach (System.ServiceProcess.ServiceController scTemp in scServices)
{
etc...
Nant: http://ryepup.unwashedmeme.com/blog/2007/01/04/restart-a-windows-service-remotely/
<!-- Send the stop request -->
<exec program="sc.exe">
<arg line="\\server stop shibd_Default"/>
</exec>
<!-- Sleep a little bit, to give the service a chance to stop -->
<sleep seconds="5"/>
<!-- Send the start request -->
<exec program="sc.exe">
<arg line="\\server start shibd_Default"/>
</exec>
Интересно, согласится ли со мной Сообщество?Гораздо проще сделать основные вещи, подобные этому, в Нанте?Конечно, выглядит так.C # код в блоке CDATA?WTF?
Наш текущий процесс сборки: а) много файлов с битами б) много ругательств.Я бы очень хотел найти хорошую замену, но эти вещи из MsBuild кажутся мне миром боли.Я думаю, что для этого нужно создать сценарии в Nant, а затем использовать MsBuild для выполнения любых сборок .NET, которые необходимо выполнить.
Один важный вопрос : какой из них лучше при обнаружении ошибок в сценарии перед его выполнением?Я думал о том, чтобы развернуть свои собственные здесь, и это было очень важной частью: выровняйте все свои данные и убедитесь, что они имеют смысл, прежде чем пытаться запустить.