2012-02-26 16 views
7

हमारे पास एक Asp.Net वेब एप्लिकेशन है जिसे हम किसी फ़ोल्डर में छद्म-तैनात करने की कोशिश कर रहे हैं, और मुझे लगता है कि माइक्रोसॉफ्ट पागल है - डब्ल्यूएपी को " स्थानीय फाइल सिस्टम "एमएसबिल्ड के हिस्से के रूप में तैनात है?अस्थायी फ़ोल्डर में वेब पैकेज msdeploy नहीं कर सकता?

मैं इस के साथ निर्माण कर सकते हैं:

msbuild .\SubSite.csproj "/p:Platform=AnyCPU;Configuration=Release" /t:Package 

और एक अच्छा package.zip जो मैं एक वेबसाइट के लिए तैनात कर सकते हैं मिलता है ... फिर भी, मैं अपने समाधान, में दो परियोजनाएं हैं जो मैं उन्हें भेजने से पहले गठबंधन करने की आवश्यकता है, इसलिए मैं दोनों संकुल को एक फ़ोल्डर में तैनात करना चाहता हूं, और उसके बाद उस फ़ोल्डर को फिर से पैकेज करना चाहता हूं।

msdeploy -verb:sync -source:package=.\SubSite.zip -dest:contentPath=.\Www\SubSite 

क्योंकि आप त्रुटि मिलती है:

Source (sitemanifest) and destination (contentPath) are not compatible for the given operation.

किसी को भी मैं कैसे वेब को तैनात कर सकता है दो में से एक सुझाव है TechNet to the contrary पर documentation के बावजूद, यह करने के लिए संभव हो सकता है प्रतीत नहीं होता है एक "पैकेजटंप" फ़ोल्डर से फ़ाइलों को मैन्युअल रूप से कॉपी किए बिना एक दूसरे के अंदर साइटें? मेरा मतलब है, मुझे पता है कि मैं ऐसा करने के लिए केवल skip zipping the package and manually copy the files out कर सकता हूं, लेकिन मुझे कस्टम लक्ष्य बनाने के बारे में कोई खुशी नहीं है, और इसमें कुछ ऐसा करने का कोई दूसरा तरीका नहीं है जिसे बनाया जाना चाहिए।

+1

वास्तव में, यहां एक उत्तर (भले ही यह "यह संभव नहीं है") बहुत अच्छा होगा। –

उत्तर

1

हम अंत में यह पता लगाने की थी कि इसे कैसे किया है, लेकिन मैं वास्तव में खुश के बारे में यह

मूल रूप से ;-), (के रूप में इतने पर कहीं उल्लेख) नहीं हूँ, आप लक्ष्य _WPPCopyWebApplication करने के लिए सेट के साथ MSBuild कॉल कर सकते हैं। जब आप ऐसा करते हैं तो आप WebProjectOutputDir प्रॉपर्टी को निर्दिष्ट/ओवरराइड भी कर सकते हैं। कुछ इस तरह (जहां $ {नाम} चर हम प्रयोग कर रहे हैं)

msbuild ${SourcePath}\Www\UI\UI.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot" "/t:_WPPCopyWebApplication" 
msbuild ${SourcePath}\Www\Mobile\Mobile.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot\Mobile" "/t:_WPPCopyWebApplication" 
msbuild ${SourcePath}\Www\Service\WebService.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot\WebServices" "/t:_WPPCopyWebApplication" 

हम तो पूरी "AppRoot" एक अलग चरण में पैकेज कर सकते हैं।

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