首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cc.net和MS安装windows服务

使用cc.net和MS安装windows服务
EN

Stack Overflow用户
提问于 2012-10-28 01:42:04
回答 2查看 588关注 0票数 1

我正在使用cc.net和MS来构建我的客户并赢得服务项目。

这就是建立服务的方式,如下所示:

是否可能自动将其安装为windows服务?

代码语言:javascript
复制
      <msbuild>
        <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <workingDirectory>C:\CCBuild\Git\Dev\Services\ServiceSetup</workingDirectory>
        <projectFile>ServiceSetup.wixproj</projectFile>
        <buildArgs>/p:Configuration=Release /p:Platform=x86 /v:diag</buildArgs>
        <targets>Clean;Build</targets>
        <timeout>480</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
      </msbuild>  

客户:

如果以上服务已安装并成功启动,是否有可能运行集成测试?

代码语言:javascript
复制
      <msbuild>
        <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <workingDirectory>C:\CCBuild\Git\Dev\LocalClient\ClientSetup</workingDirectory>
        <projectFile>ClientSetup.wixproj</projectFile>
        <buildArgs>/p:Configuration=Release /p:Platform=x86 /v:diag</buildArgs>
        <targets>Clean;Build</targets>
        <timeout>480</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
      </msbuild>
      <exec>
        <executable>C:\Program Files\Gallio\bin\Gallio.Echo.exe</executable>
        <buildArgs>/rnf:report2\test-report /rt:Xml-Inline /v:Quiet C:\CCBuild\Git\Dev\LocalClient\Client.IntegrationTests\bin\x86\Debug\Client.IntegrationTests.dll</buildArgs>
        <description>Client Tests</description>
      </exec>  

请用示例代码解释,因为cc.net和MsBuild对我来说是新的。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-10-28 09:08:23

1:

我建议手动安装该服务。然后让巡航控制停止,然后启动服务。否则,您需要在尝试之前确定服务是否已经安装。

您可以添加一个exec任务,您可以调用net stop servicename来停止服务。然后在msbuild之后再执行另一个任务来重新启动它(使用net start servicename)。

net.exe是一个普通的windows控制台应用程序,所以它位于c:\windows\system32中。

2:

如果上面的任务失败(即停止/构建/开始失败),那么将不会执行以下测试任务。

票数 3
EN

Stack Overflow用户

发布于 2012-10-28 07:00:28

对于windows服务的安装,您可以使用命令行和英司他露,或者--如果您喜欢的话--编写一个MSBuild脚本并使用来自WindowsService的MSBuild.ExtensionPack任务

如果将CCNET服务器配置为按顺序执行任务,则只有在前面的任务成功时才会执行Gallio任务。

代码语言:javascript
复制
<tasks>
  <!-- 1st... -->
  <msbuild>
    <!-- build server -->
  </msbuild>
  <!-- either... -->
  <exec>
    <!-- execute Installutil -->
    <executable>cmd.exe</executable>
    <buildArgs>/C C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe YourAssembly</buildArgs>
  </exec>
  <!-- or... -->
  <msbuild>
    <!-- execute WindowsService MSBuild script -->
  </msbuild>
  <!-- then... -->
  <msbuild>
    <!-- build client -->
  </msbuild>
  <!-- finally... -->
  <exec>
    <!-- execute Gallio -->
  </exec>
</tasks>

这就是它应该如何处理一个简单的windows服务。对于您的服务安装WiX项目的输出,我有点不确定。如果它产生了一些花哨的ServiceSetup.msi,包括一个ServiceInstall,那么您最好自己知道要传递哪些参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13105696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档