我正在使用cc.net和MS来构建我的客户并赢得服务项目。
这就是建立服务的方式,如下所示:
是否可能自动将其安装为windows服务?
<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> 客户:
如果以上服务已安装并成功启动,是否有可能运行集成测试?
<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对我来说是新的。
谢谢
发布于 2012-10-28 09:08:23
1:
我建议手动安装该服务。然后让巡航控制停止,然后启动服务。否则,您需要在尝试之前确定服务是否已经安装。
您可以添加一个exec任务,您可以调用net stop servicename来停止服务。然后在msbuild之后再执行另一个任务来重新启动它(使用net start servicename)。
net.exe是一个普通的windows控制台应用程序,所以它位于c:\windows\system32中。
2:
如果上面的任务失败(即停止/构建/开始失败),那么将不会执行以下测试任务。
发布于 2012-10-28 07:00:28
对于windows服务的安装,您可以使用命令行和英司他露,或者--如果您喜欢的话--编写一个MSBuild脚本并使用来自WindowsService的MSBuild.ExtensionPack任务。
如果将CCNET服务器配置为按顺序执行任务,则只有在前面的任务成功时才会执行Gallio任务。
<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,那么您最好自己知道要传递哪些参数。
https://stackoverflow.com/questions/13105696
复制相似问题