jco*_*lum 4 msbuild nant build-process
我正试图决定我在MsBuild与Nant战争中的哪一方.我开始:停止服务,部署一些文件,重新启动服务.只是从查看这两个链接,在Nant中更容易做到.
MSBuild:Microsoft.Sdc.Tasks中使用Service Exists MSBuild任务的示例?
<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...
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
我想知道SO社区是否同意我的看法.在Nant中完成这样的基本操作会更容易吗?当然看起来那样.CDATA块中的C#代码?WTF?
我们当前的构建过程是a)许多蝙蝠文件b)大量的诅咒.我真的很想找到一个好的替代品,但MsBuild的东西看起来像是一个痛苦的世界.我想要的方法是在Nant中构建脚本,然后使用MsBuild来完成需要完成的任何.NET构建.
一个重要问题:在脚本运行之前哪个更好地捕获脚本中的错误?我想在这里滚动自己,这是非常重要的一部分:排列所有数据并确保在尝试运行之前有意义.
您可以sc.exe轻松地使用MSBuild 执行每一位...
<Exec Command="sc.exe \\server stop shibd_Default" />
Run Code Online (Sandbox Code Playgroud)
默认情况下,如果退出代码(of sc.exe)非零,则会"失败" ,但可以自定义.
| 归档时间: |
|
| 查看次数: |
3173 次 |
| 最近记录: |