मैं अपने निर्माण/तैनाती प्रक्रिया को स्वचालित करने के लिए कोशिश कर रहा हूँ एक निर्मित वेबसाइट पैकेज 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=""$(MSDeployPath)" -source:package='$(PackageDir)\Product.zip' -dest:auto,computerName='$(MSDeployComputerName)',includeAcls='False' -verb:sync -setParamFile:$(PackageDir)\Product.SetParameters.xml" ContinueOnError="false" />
</Target>
यह सभी लक्षित मशीन पर जब तक ठीक काम करता है वहाँ पहले से ही एक वेबसाइट आईआईएस में विन्यस्त है। इसे मौजूदा "असली" साइट होने की आवश्यकता नहीं है (यह केवल एक खोल हो सकता है)।
इस बढ़िया है, फिर मैं वास्तव में MSDeploy स्वचालित रूप से वेबसाइट बनाने के लिए, चाहते हैं के रूप में यह है कि यह एक वेब एप्लिकेशन के साथ क्या कर सकते हैं लगता है। क्या यह संभव है? और यदि ऐसा है तो किसी भी मदद की सराहना की जाएगी!
यह भी मुझे मिला है - मैंने msdeploy -verb का उपयोग किया: सिंक-स्रोत: runCommand = c: \ mycommand.bat, computername = MyServer -dest: auto, जहां mycommand.bat में appcmd.exe आदेश होते हैं आईआईएस – zcrar70