2011-04-26 45 views

回答

9

您可以有條件地調用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參數明確設置DeployWinServiceTargetWinServiceHost性能高級領域:

/p:DeployWinService=true;TargetWinServiceHost=MACHINENAME 

相關資源:

相關問題