2011-04-26 12 views
8

के साथ विंडोज सेवा प्रोजेक्ट्स को कैसे तैनात करें मेरे पास एक वीएस -2010 समाधान है, जिसमें कई विंडोज सेवा परियोजनाएं शामिल हैं। मुझे टीम बिल्ड 2010 में किसी बिल्ड के हिस्से के रूप में इन सेवाओं को तैनात करने की आवश्यकता है, और विंडोज़ सेवाओं को कई विंडोज सर्वर मशीनों पर तैनात किया जाना है।टीम बिल्ड 2010

मैं यह कैसे कर सकता हूं?

उत्तर

9

आप सशर्त अपने 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 गुण DeployWinService और TargetWinServiceHost कि Windows सेवा परियोजना के उत्पादन में संकलन के बाद स्थापित किया जाएगा कि क्या नियंत्रित करने और करने के लिए उपयोग किया जाता है जो मशीन के लिए:

यहाँ एक उदाहरण है। WinServiceName प्रॉपर्टी केवल उस नाम को निर्दिष्ट करती है जो विंडोज सेवा लक्ष्य मशीन पर होगी।

अपने निर्माण परिभाषा में आप स्पष्ट रूप से MSBuild तर्क में DeployWinService और TargetWinServiceHost गुण सेट करना होगाउन्नत खंड के क्षेत्र:

/p:DeployWinService=true;TargetWinServiceHost=MACHINENAME 

संबंधित संसाधन: