Dot-Net
如何使用 Team Build 2010 部署 Windows 服務項目
我有一個 VS2010 解決方案,其中包括幾個 Windows 服務項目。我需要將這些服務部署為 Team Build 2010 中建構的一部分,並且 Windows 服務必須部署在多台 Windows Server 機器上。
我怎樣才能做到這一點?
您可以**有條件地從您的 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 服務項目的輸出是否在編譯後安裝以及安裝到哪台機器上。該WinServiceName屬性僅指定 Windows 服務在目標機器上的名稱。在您的建構定義中,您必須在Advanced部分的MSBuild Arguments欄位中顯式設置
DeployWinService和TargetWinServiceHost屬性:/p:DeployWinService=true;TargetWinServiceHost=MACHINENAME相關資源: