加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 如何使用Team Build 2010部署Windows服务项目

发布时间:2020-12-13 20:46:35 所属栏目:Windows 来源:网络整理
导读:我有一个VS2010解决方案,其中包括几个Windows服务项目.我需要将这些服务部署为Team Build 2010中的构建的一部分,并且必须在多台Windows Server计算机上部署Windows服务. 我怎样才能做到这一点? 您可以从Windows服务项目文件(* .csproj)有条件地调用 SC.exe
我有一个VS2010解决方案,其中包括几个Windows服务项目.我需要将这些服务部署为Team Build 2010中的构建的一部分,并且必须在多台Windows Server计算机上部署Windows服务.

我怎样才能做到这一点?

您可以从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和TargetWinServiceHost,它们用于控制是否在编译后安装Windows Service项目的输出以及安装到哪台机器. WinServiceName属性只是指定Windows服务在目标计算机上将具有的名称.

在构建定义中,您必须在“高级”部分的“MSBuild参数”字段中显式设置DeployWinService和TargetWinServiceHost属性:

/p:DeployWinService=true;TargetWinServiceHost=MACHINENAME

相关资源:

> How to create a Windows service by using Sc.exe
> Common MSBuild Project Properties

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读