【问题标题】:How to deploy Windows Service projects with Team Build 2010如何使用 Team Build 2010 部署 Windows 服务项目
【发布时间】:2011-08-12 22:01:53
【问题描述】:

我有一个 VS2010 解决方案,其中包括几个 Windows 服务项目。我需要将这些服务部署为 Team Build 2010 中构建的一部分,并且 Windows 服务必须部署在多台 Windows Server 机器上。

我该怎么做?

【问题讨论】:

    标签: .net deployment msbuild windows-services tfsbuild


    【解决方案1】:

    您可以有条件地从您的 Windows 服务项目文件中调用 SC.exe 命令 (*.csproj) 以在远程计算机上安装 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 属性DeployWinServiceTargetWinServiceHost,用于控制编译后是否将 Windows Service 项目的输出安装到哪台机器上。 WinServiceName 属性仅指定 Windows 服务在目标计算机上的名称。

    在您的 构建定义 中,您必须在 AdvancedMSBuild Arguments 字段中明确设置 DeployWinServiceTargetWinServiceHost 属性强>部分:

    /p:DeployWinService=true;TargetWinServiceHost=MACHINENAME
    

    相关资源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-10
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2010-10-12
      • 2022-01-26
      • 1970-01-01
      相关资源
      最近更新 更多