2010-09-03 11 views
10

मैं अपने निर्माण/तैनाती प्रक्रिया को स्वचालित करने के लिए कोशिश कर रहा हूँ एक निर्मित वेबसाइट पैकेज MSDeploy करने के लिए।कैसे एक कुंवारी आईआईएस वेबसाइट

अब तक मैं उपयोग कर रहा हूँ:

  • एक मुख्य वेब अनुप्रयोग परियोजना (और आश्रित परियोजनाओं)
  • MSBuild
  • MSDeploy
  • के साथ एक दृश्य स्टूडियो 2010 समाधान CruiseControl.Net

तो दांतों के बहुत झुकाव और पीसने के बाद, अब मेरे पास सीसीनेट ने एमएसबिल्ड स्क्रिप्ट को वेबसाइट बनाने, पैकेज करने और तैनात करने के लिए लात मार दिया है। MSBuild स्क्रिप्ट नीचे है:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<Target Name="Build"> 
    <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.sln" 
        Targets="Clean;Rebuild" 
        Properties="Configuration=$(Configuration)" 
    /> 
</Target> 

<!--<Target Name="Test" DependsOnTargets="Build"> 
    <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.Web.Tests\Product.Web.Tests.csproj" 
        Properties="Configuration=$(Configuration);OutputPath=$(CCNetArtifactDirectory)\Tests\" /> 
    <Exec Command="$(MSTestPath) /testcontainer:$(CCNetArtifactDirectory)\Tests\Product.Web.Tests.dll /runconfig:$(CCNetWorkingDirectory)\src\Local.testsettings" ContinueOnError="false" /> 
</Target>--> 

<Target Name="Package" DependsOnTargets="Build"> 
    <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.Web\Product.Web.csproj" 
        Targets="Package" 
        Properties="Configuration=$(Configuration);PackageLocation=$(PackageDir)\Product.zip" 
    /> 
</Target> 

<Target Name="Deploy" DependsOnTargets="Package"> 
    <Exec Command="&quot;$(MSDeployPath)&quot; -source:package='$(PackageDir)\Product.zip' -dest:auto,computerName='$(MSDeployComputerName)',includeAcls='False' -verb:sync -setParamFile:$(PackageDir)\Product.SetParameters.xml" ContinueOnError="false" /> 
</Target> 

यह सभी लक्षित मशीन पर जब तक ठीक काम करता है वहाँ पहले से ही एक वेबसाइट आईआईएस में विन्यस्त है। इसे मौजूदा "असली" साइट होने की आवश्यकता नहीं है (यह केवल एक खोल हो सकता है)।

इस बढ़िया है, फिर मैं वास्तव में MSDeploy स्वचालित रूप से वेबसाइट बनाने के लिए, चाहते हैं के रूप में यह है कि यह एक वेब एप्लिकेशन के साथ क्या कर सकते हैं लगता है। क्या यह संभव है? और यदि ऐसा है तो किसी भी मदद की सराहना की जाएगी!

उत्तर

4

सुंदर यकीन है कि MSDeploy ऐसा नहीं कर सकते। एक चीज जो मैंने अतीत में की है, में एक नई वेबसाइट को फाड़ने/बनाने के लिए एक्सेल कार्य कॉल appcmd.exe है। MSBuild Community Tasks में कुछ वेबसाइट क्षमताओं के साथ-साथ MSBuild Extension Pack है।

+1

यह भी मुझे मिला है - मैंने msdeploy -verb का उपयोग किया: सिंक-स्रोत: runCommand = c: \ mycommand.bat, computername = MyServer -dest: auto, जहां mycommand.bat में appcmd.exe आदेश होते हैं आईआईएस – zcrar70

10

MSDeploy क्षमता है, तो आप सिर्फ सही प्रदाता हुक करने की है।

उदाहरण के लिए, आप अपने गंतव्य में "ऑटो" प्रदाता का उपयोग कर रहे हैं, जो मूल रूप से कहता है कि गंतव्य स्रोत के समान (या संगत) जैसा होगा, जिसे आप पैकेज के रूप में स्थापित कर रहे हैं। चूंकि एक पैकेज अपने होस्टिंग वातावरण को निर्दिष्ट नहीं करता है, इसलिए msdeploy इसके साथ कुछ भी करने की कोशिश नहीं करेगा, यह मूल रूप से पैकेज से फ़ाइलों को कॉपी करने जा रहा है। (": ऑटो -dest"):

आप में ऑटो बुला रहे हैं

-dest:auto,computerName='$(MSDeployComputerName)' 

साइट बनाने के लिए msdeploy पाने के लिए, आप एक अधिक विशिष्ट प्रदाता जो एक के सिद्धांतों को समझें उपयोग करने की आवश्यकता "साइट" और एक "ऐप" और वे वेबसाइट तत्व की सामग्री के रूप में पैकेज का उपयोग कैसे कर सकते हैं।

मैंने थोड़ी देर में ऐसा नहीं किया है, इसलिए मैं विनिर्देशों को प्रस्तुत नहीं करना चाहता (जैसा कि मैं आपको गलत कर दूंगा), लेकिन एमएसडीएन दस्तावेज़ पर एमएसडीएन दस्तावेज़ देखें। ऑटो, अपनी वर्तमान सेटिंग पर

1 देखो। तब iisApp और appHostconfig पर एक नज़र डालें।

http://technet.microsoft.com/en-us/library/dd569040(WS.10).aspx

मैं उन 2 में से एक का मानना ​​है कि अगर सही तरीके से उपयोग आप के लिए साइट/एप्लिकेशन पैदा करेगा, और आप परिणाम आप की जरूरत दे देंगे।

+0

में नई साइट बनाएं ऐपहोस्टकॉन्फिग एक आईआईएस कॉन्फ़िगरेशन को लक्षित सर्वर पर एक नई साइट पर कॉपी कर सकता है, लेकिन मुझे नहीं लगता कि यह लक्ष्य सर्वर पर स्क्रैच से एक नई साइट बना सकता है, जिसके बिना कॉपी करने के लिए स्रोत हो। – zcrar70

+0

हाँ, उस समय मुझे याद नहीं आया, इसलिए मैंने iisApp और appHostConfig दोनों सूचीबद्ध किए। iisApp प्रदाता हुक createApp प्रदाता, जो साइट बनाना चाहिए –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^