2008-11-04 15 views
14

यदि मैं एक वेब परिनियोजन परियोजना के बजाय, मेरी एएसपी.नेट वेबसाइट के लिए 'प्रकाशित' विकल्प का उपयोग करने का निर्णय लेता हूं, तो क्या मैं कस्टम एमएसबिल्ड चीजें कर सकता हूं? या अगर मुझे संकलन/तैनाती के दौरान कस्टम एमएसबिल्ड सामान करना है तो मुझे डब्लूडीपी के साथ रहना होगा।एएसपी.नेट वेबसाइट 'प्रकाशित' बनाम वेब परिनियोजन परियोजना

उत्तर

4

डेवलपर्स के लिए वीवीएनईटी टूलसेट के हिस्से के रूप में प्रकाशित विकल्प के बारे में मुझे लगता है कि देव मशीनों पर वेब साइट प्रकाशित करने के लिए उपयोग किया जाता है। यह वास्तव में एक वास्तविक तैनाती के लिए बनाया गया है।

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

मैं भी तीन अन्य विकल्पों पर विचार करेंगे:

  • PowerShell: एक अच्छा तरीका स्क्रिप्ट आईआईएस के खिलाफ करने के लिए, वेबसाइटों की स्थापना की, आदि तुम भी OO कोड से cmdlets का निर्माण कर सकते हैं (जैसे सी #) कि आपकी स्क्रिप्ट कॉल कर सकते हैं। कई पेशेवर आईटी फर्म बड़ी वेबसाइटों को तैनात करने के लिए इसका इस्तेमाल करते हैं।

  • MSDeploy: वेबसाइटों है कि कई सर्वरों पर एक vroot को दोहराने कर सकते हैं के लिए एक नया तैनाती उपकरण। अपनी सुनहरी छवि रखने के लिए बहुत अच्छा है और फिर इसे विभिन्न स्थानों पर विस्फोट कर रहा है।

  • सी # आवेदन: आप एक अधिक उन्नत डेवलपर हैं, तो आप हमेशा अपने स्वयं के अनुप्रयोग है कि फ़ाइलें (प्रक्रिया के माध्यम से) xcopies और आईआईएस कॉन्फ़िगर करने के लिए WMI का उपयोग करता है लिख सकते हैं। कठिन, लेकिन आपके पास पूर्ण नियंत्रण है।

1

ऐसा लगता है कि आप _CopyWebApplication MSBuild लक्ष्य के माध्यम से प्रकाशित कार्य को कस्टमाइज़ कर सकते हैं। या आप कम से कम एक बैच फ़ाइल बना सकते हैं जो उस लक्ष्य को कॉल करेगी, जिसे आप कस्टमाइज़ कर सकते हैं।

अधिक जानकारी here और here

2

आप कस्टम MSBuild विकल्पों का उपयोग कर सकते हैं। वास्तव में, आप वेबसाइट के रूप में प्रकाशित करने के लिए कॉन्फ़िगर की गई एक एसएलएन फ़ाइल पर MSBuild निष्पादित कर सकते हैं, और उसके बाद प्रीकंपील्ड वेबसाइट फ़ाइलों को वेबसर्वर पर कॉपी कर सकते हैं। हम आंतरिक रूप से Thoughtworks से क्रूज़ Control.net का उपयोग कर करते हैं।

SLN फ़ाइल जहां precompiled वेबसाइट स्थित होगा के बारे में जानकारी शामिल हैं:

Release.AspNetCompiler.VirtualPath = "/PrecompiledWeb" 
Release.AspNetCompiler.PhysicalPath = "..\Web\" 
Release.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\" 
Release.AspNetCompiler.Updateable = "true" 
Release.AspNetCompiler.ForceOverwrite = "true" 
Release.AspNetCompiler.FixedNames = "true" 
Release.AspNetCompiler.Debug = "False" 
2

हम अपने वेब परियोजनाओं को तैनात करने के प्रकाशित का उपयोग नहीं करते हैं, लेकिन हम उपयोग करने के लिए वेब तैनाती परियोजनाओं के लिए इस्तेमाल किया। जब हमने विजुअल स्टूडियो 2008 में स्विच किया, तो हम उनके साथ समस्याओं का एक गुच्छा भाग गए, इसलिए हमने उनसे छुटकारा पा लिया।

मैं आपको क्या बता सकता हूं कि हम डब्लूपीपी कार्यक्षमता को प्रतिस्थापित करने में सक्षम थे जो हम aspnet_merge.exe के साथ उपयोग कर रहे थे। हम अपनी तैनाती के लिए एक स्क्रिप्ट में msbuild और aspnet_merge.exe के संयोजन का उपयोग करते हैं।

+0

वाह। जब तक आपने इसका उल्लेख नहीं किया तब तक मैंने aspnet_merge के बारे में भी नहीं सुना था। यहां दस्तावेज़ हैं: http://msdn.microsoft.com/en-us/library/bb397866.aspx –

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