8
我有一个VS2010解决方案,其中包含多个Windows服务项目。我需要将这些服务作为Team Build 2010中的一部分进行部署,并且Windows服务必须部署在多台Windows Server计算机上。如何使用Team Build 2010部署Windows Service项目
我该怎么做?
我有一个VS2010解决方案,其中包含多个Windows服务项目。我需要将这些服务作为Team Build 2010中的一部分进行部署,并且Windows服务必须部署在多台Windows Server计算机上。如何使用Team Build 2010部署Windows Service项目
我该怎么做?
您可以有条件地调用Windows服务项目文件(* .csproj)中的SC.exe命令以在远程计算机上安装Windows服务。
下面是一个例子:
<PropertyGroup>
<DeployWinService>false</DeployWinService>
<WinServiceName>MyService</WinServiceName>
<TargetWinServiceHost Condition="'$(TargetWinServiceHost)' == ''">localhost</TargetWinServiceHost>
</PropertyGroup>
<Target Name="AfterCompile">
<CallTarget Targets="PublishWinService" />
</Target>
<Target Name="PublishWinService"
Condition="'$(DeployWinService)' == 'true'">
<Exec Command="sc stop $(WinServiceName)" ContinueOnError="true" />
<Exec Command="sc \\$(TargetWinServiceHost) create $(WinServiceName) binpath= '$(OutDir)\$(AssemblyName).exe' start= auto" />
</Target>
这里我们定义自定义的MSBuild属性DeployWinService
和用来控制是否Windows服务项目的输出将编译后进行安装和TargetWinServiceHost
到机器。 WinServiceName
属性只是简单地指定了Windows服务在目标机器上的名称。
在你构建定义你必须在的MSBuild参数明确设置DeployWinService
和TargetWinServiceHost
性能高级节领域:
/p:DeployWinService=true;TargetWinServiceHost=MACHINENAME
相关资源: