2011-01-19 21 views
9

मैं एक Azure वेब भूमिका परियोजना के लिए एक निर्माण स्क्रिप्ट पर काम कर रहा हूँ पैकेज MSBuild और CSPack कार्य का उपयोग करना। स्क्रिप्ट एक बिल्ड सर्वर पर चलेगी, इसलिए वीएस का उपयोग एक गैर स्टार्टर है।Azure भूमिकाओं

मैं MSBuild का उपयोग कर परियोजना का निर्माण और तैनाती को संभालने के लिए (PowerShell के माध्यम से) CmdLets for Azure उपयोग कर सकते हैं। जो गुम है वह क्लाउड पैकेज का निर्माण है। मैं CSPack.exe उपकरण है जो SDK में शामिल किया जाता है का उपयोग कर सकते हैं, लेकिन मैं, यदि संभव हो MSBuild कार्य का उपयोग इस तरह के रूप में मैं निर्माण कॉन्फ़िगरेशन विकल्प का लाभ उठाने और इस प्रक्रिया के बाकी के साथ पैकेज के निर्माण एकीकृत कर सकते हैं करना चाहते हैं।

मैं Azure वेब तैनाती परियोजना में चारों ओर खोदा है, लेकिन मैं CSPack कार्य का कोई भी संदर्भ नहीं मिल रहा। यहां कुछ वीएस जादू हो रहा है, जब तक कि मैं उस फ़ाइल को याद नहीं कर रहा हूं जो सीएसपीएक्स/एज़ूर कार्यों का संदर्भ देता है। जो असेंबली मैं देख रहा हूं वह है Microsoft.ServiceHosting.Tools.MSBuildTasks.dll - परावर्तक मुझे बताता है कि सीएसपीएक्स कार्य वहां है।

क्या किसी ने सफलतापूर्वक सीएसपीएक्स एमएसबिल्ड कार्य का उपयोग किया है? यदि हां, तो इसका उपयोग करने के तरीके के बारे में कोई संकेतक बहुत उपयोगी होगा!

मैं पूरी तरह से गलत पेड़ भौंकने करता हूं, तो कृपया मुझे बताएँ!

धन्यवाद, एरिक

उत्तर

7

सीएसपीएक्स कार्य का हिस्सा है Microsoft.CloudService.Targets msbuild फ़ाइल। एक डिफ़ॉल्ट पर स्थापित यह है पर

C: \ Program Files (x86) \ MSBuild \ Microsoft \ CloudService \ 1.0 \ दृश्य स्टूडियो 10 \

आप किसी भी .ccproj में इस के संदर्भ में देखेंगे (बादल सेवा) परियोजना

<CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">$(MSBuildExtensionsPath)\Microsoft\Cloud Service\1.0\Visual Studio 10.0\</CloudExtensionsDir> 

<Import Project="$(CloudExtensionsDir)Microsoft.CloudService.targets" /> 

वहां से आप मूल प्रारूप और कई भिन्नताएं प्राप्त कर सकते हैं। उदाहरण के लिए, इस का उपयोग करते हुए यह

<CSPack 
    ServiceDefinitionFile="@(ServiceDefinitionCopy)" 
    Output="$(OutDir)Publish\$(ProjectName).cspkg" 
    PackRoles="@(Roles)" 
    SiteMapping="@(SiteMapping)" 
    RoleProperties="@(RoleProperties)" 
    CopyOnly="false" 
    > 
</CSPack> 

हम इस तरह से हमारे बादल संकुल उत्पन्न करने के लिए आह्वान CorePublish लक्ष्य है। यदि यहां कोई विशेष परिदृश्य है, तो आपको सलाह की आवश्यकता है, कृपया उस विवरण को प्रदान करें। हमारा उपयोग बहुत आम है, हम बस (जैसे आप) को कमांड लाइन पर आने के लिए msbuild का उपयोग करने में कोई दिलचस्पी नहीं थी।

तो सब कुछ एक साथ piecing, बस

msbuild MyAzureProject.ccproj /t:CorePublish

जारी कर सकते हैं या यदि आप बहु लगाया परियोजना फ़ोल्डर्स के साथ एक समाधान है और रिलीज पैकेज करना चाहते हैं बिट्स

msbuild MyAzureProject\MyAzureProject.ccproj /t:CorePublish /Property:SolutionDir=..\ /p:Configuration=Release

+0

टेलर, प्रतिक्रिया के लिए धन्यवाद। क्या आप बाकी एमएसबिल्ड फ़ाइल (केवल अजीब भागों के साथ) पोस्ट करने में सक्षम होंगे? यह बहुत मददगार होगा। धन्यवाद - एरिक –

+0

सुनिश्चित करें, मैं इसे बाद में बाद में रखूंगा और आज रात के लिए कुछ प्राप्त कर सकता हूं –

+0

@ टेलर क्या आपको कभी इसे एक साथ रखने का मौका मिला? मुझे पैकेज बनाने के लिए msBuild प्राप्त करने में समस्या हो रही है – Joe

1

मैं उन्हें उपयोग कर रहा हूँ, लेकिन मैं दृश्य स्टूडियो और Azure एसडीके 1.3 निर्माण सर्वर पर स्थापित किया है। मुझे इसके चारों ओर कोई रास्ता नहीं मिला। आप बिल्ड सर्वर पर विजुअल स्टूडियो एक्सप्रेस का उपयोग कर दूर हो सकते हैं ताकि आप इसे पहले कोशिश कर सकें।

+0

कर सकते हैं आप मुझे एक उदाहरण देते हैं कि आप कार्यों का उपयोग कैसे कर रहे हैं? यह पहली समस्या है जिसे मैं हल करने की कोशिश कर रहा हूं, क्योंकि मुझे वहां कोई उदाहरण नहीं मिला है। –

+0

मैं अपने बिल्ड सर्वर पर क्लाउड प्रोजेक्ट प्रकार का उपयोग कर रहा हूं। कॉलिंग सीस्पैक सीधे मेरी चीजों की सूची पर है लेकिन इसे अभी तक शीर्ष पर नहीं बनाया गया है। –

1

मैं सिर्फ

<Exec Command="$(PackageCommand)" WorkingDirectory="$(BuildProjectFolderPath)\..\main\source\" /> 

उपयोग कर रहा हूँ जहाँ PackageCommand क्या आप आदेश पंक्ति में उपयोग cspack.exe कॉल करने के लिए है।

+0

प्रतिक्रिया कार्लोस के लिए धन्यवाद। मैं कमांड लाइन का उपयोग करने से बचने की उम्मीद कर रहा था, लेकिन मैं वहां समाप्त हो सकता हूं। –

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