2009-04-17 9 views
9

मैं विजुअल स्टूडियो 2003 से 2008 तक एक प्रोजेक्ट को अपग्रेड कर रहा हूं और स्वचालित रूप से XXX.Designer.cs फ़ाइलों को उत्पन्न करना चाहता हूं और संबंधित XXX.cs मूल एक अपडेट करना चाहता हूं।आंशिक Designer.cs फ़ाइलों में स्वचालित रूप से VS2003 कक्षाओं को कैसे परिवर्तित करें?

ऐसा करने का कोई स्वचालित तरीका?

अद्यतन: मैं WinForms का जिक्र कर रहा हूं। बेशक, मैं पुरानी शैली के कामों को जानता हूं लेकिन मैं हाथ से ऐसा किए बिना नई शैली में जाने का एक तरीका ढूंढ रहा हूं।

+0

मैक्रो स्रोत (मैं पोस्ट) के एक ज़िप डाउनलोड मैं नहीं दिख रहा है जहां कहा है कि क्या यह एक ASP.NET परियोजना है या एक Windows Forms परियोजना। कृपया बताएं कि कौन सा है। –

+2

अधिक उत्तर http://stackoverflow.com/questions/669540/split-old-net-code-into-designer-partial-class – reinierpost

उत्तर

0

मुझे यकीन नहीं है कि मैं समझता हूं, लेकिन मैं अनुमान लगाऊंगा।

क्या यह वीएस2003 में एएसपी.NET प्रोजेक्ट था? क्या इसमें डिज़ाइनर सीएस फाइलें थीं? क्या यह मामला है कि आपने अपग्रेड किया है लेकिन आपको लगता है कि आपके पास अभी कोई डिज़ाइनर.cs फ़ाइलें नहीं हैं?

यदि ऐसा है - तो आपने अनजाने में अपनी वेब एप्लिकेशन प्रोजेक्ट को वेब साइट "प्रोजेक्ट" में बदल दिया होगा। इस तरह की "प्रोजेक्ट" को वीएस2005 में पेश किया गया था, इसलिए आपने इसे अभी तक नहीं देखा होगा। ये वास्तविक परियोजनाएं नहीं हैं (नहीं .csproj फ़ाइल), और उनके पास कई अन्य अंतर हैं।

अन्यथा, अगर आपकी प्रोजेक्ट का उपयोग नहीं किया गया था। डिज़ाइनर सीएस फाइलें, तो आप उन्हें अब क्यों चाहते हैं?

सामान्यतः, डिजाइनर फ़ाइलों को बनाने का तरीका एक डिजाइनर में फ़ाइल खोलना है, डिजाइनर के लिए कुछ क्षण प्रतीक्षा करें जो यह कर रहा है (स्क्रीन अपडेट करना आदि); और फिर फ़ाइल को सहेजना। डिजाइनरों को चीजों का पुनर्मूल्यांकन करने के लिए आपको शायद मूल रूप से "स्पर्श" करना पड़ सकता है।

+2

VS2003 में .designer.cs फ़ाइलें नहीं थीं क्योंकि .NET 1.1 नहीं था आंशिक कक्षाओं का समर्थन करें। तो यह कोडबेइंड में किसी क्षेत्र के भीतर छिपी हुई नियंत्रण घोषणाएं डालता है। फेरनब इन घोषणाओं को एक डिजाइनर फ़ाइल में स्थानांतरित करने के लिए एक स्वचालित तरीका मांग रहा है। –

+0

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

+0

नहीं, न तो VS2005 या VS2008 स्वचालित रूप से चीजों को खोलने और सहेजने के द्वारा। डिज़ाइनर फ़ाइलों को ले जाता है। –

1

मूल कक्षाएं काम जारी रखेगी - यहां तक ​​कि विजुअल स्टूडियो डिजाइनर के साथ भी। डिज़ाइनर कक्षाओं में वीएस कोड डालने का मतलब बस डिजाइनर "शोर" को एक अलग फ़ाइल में निकालने के लिए है ताकि आप अपनी कक्षा में गैर-विज़ुअल कोड पर ध्यान केंद्रित कर सकें।

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

1

हमें यह समस्या थी।

मूल रूप से डिजाइनर फ़ाइल में ऑब्जेक्ट घोषणाओं (यानी फॉर्म पर ऑब्जेक्ट्स) और InitializeComponent() कॉल के सेट के अलावा कुछ भी नहीं होना चाहिए। यदि आपने अपने कन्स्ट्रक्टर पर कोई फैंसी काम किया है जो वहां भी हो सकता है।

बस MyForm.Designer.cs नामक एक फ़ाइल बनाएं और इसे प्रोजेक्ट में जोड़ें। VS2008 स्वचालित रूप से इसे MyForm.cs के नीचे रखेगा। वहां से, यदि आप आंशिक वर्ग शीर्षक और नामस्थान बनाते हैं, तो सभी घोषणाओं और प्रारंभिक कॉम्पोनेंट कॉल को डिज़ाइनर फ़ाइल में कॉपी करें, फिर यह काम करेगा।

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

3

वहां एक मैक्रो है जो वहां तैरता है। मैंने इसका इस्तेमाल किया है और यह बहुत अच्छा काम करता है। Nathan Jones Blog पर देखकर शुरू करें। आप न ज्यादा विफल रहता है तो फिर से VSCONVERT - PasteBin

+0

फ़ाइल फ़ैक्टरी पर लिंक समाप्त हो गया। – Matthieu

+0

ठीक है, कोड स्रोत को पेस्टबिन में बदल दिया। 2006, 2008 के समय से मैंने इस मैक्रो का उपयोग नहीं किया है। – ja72

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

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