2013-01-15 10 views
5

में मैं इस बिंदु तक, एमएस अजाक्स मिनीफायर स्क्वैशिंग और मेरे सीएसएस और जेएस के संयोजन के लिए उपयोग कर रहा हूं। मेरे सर्वर बहुत दूर भविष्य में हेडर की समय सीमा समाप्त कर देते हैं इसलिए मुझे कैश की समाप्ति रणनीति की आवश्यकता है। वर्तमान में मैं फ़ाइल नाम को बदलकर इन वस्तुओं को मैन्युअल रूप से संस्करणित कर रहा हूं ताकि वे प्रत्येक रिलीज पर समाप्त हो जाएं।MSBuild minify और concat जावास्क्रिप्ट, हैश सामग्री फ़ाइल नाम

मैं इसे कुछ हद तक स्वचालित करना चाहता हूं, विशेष रूप से स्क्वैश फ़ाइल नाम पर फ़ाइल सामग्री के हैश को जोड़कर। बोनस अंक अगर हम फिर कुछ config एक्सएमएल (है कि एक अलग परियोजना में मौजूद है) इस अद्यतन फ़ाइल नाम

हम TFS सर्वर का निर्माण का उपयोग कर रहे साथ फाइल अद्यतन कर सकते हैं, तो मैं इस एक MSBuild कार्य में लिपटे किया जाना चाहिए लगता है? या क्या मैं इसे प्री/पोस्ट बिल्ड प्रोजेक्ट चरण के रूप में चला सकता हूं?

अगर इस क्षेत्र में किसी को कोई ज्ञान है तो उसे बहुत सराहना होगी कि वे साझा करने में प्रसन्न हैं।

धन्यवाद

+0

क्या आप कृपया मुझे मेरे उत्तर के बारे में एक प्रतिक्रिया दे सकते हैं? मैं यहाँ नया हूं और मैं खुद को सुधारने की कोशिश कर रहा हूं। धन्यवाद! –

+0

आप https://github.com/vincpa/RxLoader –

उत्तर

3

निश्चित रूप से आप यह सब MSBuild से कर सकता है:

  • अपने Ajax Minifier Manifest Files बनाएँ। मैं इन स्थिर और संस्करण रखेंगे।
  • बनाएं एक msbuild script युक्त

    1 - Ajax Minifier Manifest Task squashing और संयोजन करना है।

    2 - Hashing कार्य। जैसा कि आप देख सकते हैं कि सी # कोड है। चरण '1' पर आउटपुट फ़ोल्डर सेट को पढ़ने के लिए कोड बदलें और फ़ाइलों का नाम बदलें, प्रत्येक को गणना की हैश जोड़ना।

  • Import आपकी परियोजनाओं पर बनाई गई एमएसबिल्ड स्क्रिप्ट, या आपकी मुख्य बिल्ड स्क्रिप्ट में, यदि आपके पास है।

+0

टिप्पणी में देरी के लिए खेद कर सकते हैं। जहां तक ​​उत्तर जाना है, आपका जवाब ठीक है, मेरे पास अभी तक आपके सभी बिंदुओं से गुजरने का समय नहीं है।इस सप्ताह – WickyNilliams

2

क्या आपने System.Web.Optimization में बंडलिंग और न्यूनीकरण सुविधा माना है?

http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

यह आप सभी आप MSBuild रखरखाव परेशानी के बिना की जरूरत है क्या करना चाहिए।

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

हम इसे काफी सफलतापूर्वक उपयोग करते हैं और मैं यूआई प्रोग्रामर को सीएसएस और जावास्क्रिप्ट फ़ाइलों को छोटे और अधिक तर्कसंगत नामित फ़ाइलों में विभाजित करने के लिए प्रोत्साहित करता हूं और दस्तावेज़ों के लिए उनमें से कम टिप्पणियों से अधिक छोड़ देता हूं। अंतिम उपयोगकर्ता हमेशा अंततः एक एकल सीएसएस और जेएस प्राप्त करेगा जिसमें प्रति निर्माण का एक अलग नाम होगा।

+1

दुर्भाग्य से यह मेरे उद्देश्यों के लिए उपयुक्त नहीं है क्योंकि मेरी स्क्रिप्ट और सीएसएस एक सीडीएन पर संग्रहीत हैं, और मैं बिल्ड-टाइम पर रन-टाइम पर इस तरह की चीज पसंद करता हूं। इसके अलावा: मैं उत्पादन सीएसएस/जेएस डीबग करने के लिए स्रोतमैप का उपयोग करता हूं, आपको अपनी मिनी/कॉम्पटेट स्क्रिप्ट को डीबग करने की अनुमति देता है जैसे कि वे असम्बद्ध/unconcat'd थे! यदि आप इन दोनों में नहीं आये हैं, तो उन्हें बहुत अच्छी तरह से देखें – WickyNilliams

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