2009-04-15 13 views
6

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

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

पुराना सवाल और शीर्षक के नीचे है:

कैसे सभी वर्ग फ़ाइलों को नाम स्थान xx {} रैप करने के लिए?

वेबप्रोजेक्ट (या किसी भी प्रोजेक्ट) में सभी कोडबेंड फ़ाइलों को नेमस्पेस कैसे लपेटेंगे?

namespace MyDomain 
{ 
    // regular code here 
} 

कम लंबी कहानी ...

मैं एक परियोजना है कि विदेशी आउटसोर्स किया गया था परिवर्तित करने की है। अकेले 'वेब' परियोजना में 20,000 से अधिक फाइलें, इस तरह की एक साधारण वेबसाइट (हिलाता है) के लिए। यह वीबीएनईटी और सी # (हां, दोनों शिकायत) का उपयोग कर बनाम बनाम 2005 में लिखा गया था। यह मूल रूप से एक वेबसाइट आवेदक था। मैंने इसे वेब अनुप्रयोग में परिवर्तित कर दिया है, मुख्य रूप से 8,000 "अस्थायी" विधानसभाओं के कारण जो आपके द्वारा प्रकाशित किए जाने पर उत्पादित होते हैं।

ठीक है, मैं वीएस -2008 में परिवर्तित कर रहा हूं। मैंने सभी कोड को सी # में परिवर्तित कर दिया है। अछा लगता है। मैंने पृथक असेंबली में सभी विशेष ऐप_Code/वीबी और सी # कोड लाए हैं।

अब जब मैं फिर से संकलित करने का प्रयास करता हूं, तो मुझे बड़ी संख्या में त्रुटियों के बारे में सतर्क किया जाता है। मैं कोडस्हिन्ड फ़ाइलों को नेमस्पेस में लपेटकर और नए नेमस्पेस का उपयोग करने के लिए उपयोगकर्ता नियंत्रण को अपडेट करके इन्हें ठीक करता हूं।

लेकिन ... 5000+ त्रुटियां जाने के लिए ... मदद करें!

alt text http://eduncan911.com/blog/thumbnail/4-15-2009.6-00-13.PM.png

हो सकता है कि वहाँ एक और तरीका है?

public partial class MyHomepage_MyStuff_MyPosts : SecurePage 
{ ... } 

सूचना वर्ग के नाम MyHomepage_MyStuff_MyPosts: यहाँ codehind से एक नमूना टुकड़ा है। यह /MyHomepage/MyStuff/MyPosts.aspx पर फ़ाइल के स्थान का निर्देशिका पथ है।

त्रुटि यह है कि codebehind फ़ाइल को इस्तेमाल होने वाले नियंत्रण का संदर्भ नहीं मिल सकता है। जैसे:

ctl_website_rpt.RowCount = _totalCount; 

यह एक नियंत्रण (उनके नामकरण परंपरा) ASPX फ़ाइल के भीतर "ctl_website_rpt" कहा जाता है। एएसपीएक्स पेज हेडर में है:

<%@ Page Title="My Posts" Language="C#" 
    MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" 
    CodeFile="MyPosts.aspx.cs" 
    Inherits="MyHomepage_MyStuff_MyPosts" %> 

शायद एक तरीका है कि मैं इस पृष्ठ को कहीं और संदर्भित कर सकता हूं? इसे नामस्थान में बदलने के बिना?

namespace Website.MyHomepage.MyStuff 
{ 
    public partial class MyPosts 
    { ... } 
} 

<%@ Page Title="My Posts" Language="C#" 
    MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" 
    CodeFile="MyPosts.aspx.cs" 
    Inherits="Website.MyHomepage.MyStuff.MyPosts" %> 

उत्तर

4

Fyi, मुझे समाधान मिला। यह आपके विचार से आसान है।

आप बस अपनी नई वेब प्रोजेक्ट पर राइट-क्लिक करें और "वेब एप्लिकेशन में कनवर्ट करने का विकल्प" है।"यह कुछ रोचक चीजें करता है। सबसे पहले, यह [file] .aspx.designer.cs स्वत: जेनरेट की गई फ़ाइल बनाता है। यह मेरी 99% त्रुटियों से छुटकारा पाता है, क्योंकि ऐसा इसलिए था क्योंकि कोडबेइंड को नियंत्रण का संदर्भ नहीं मिला (ऊपर मेरे सवाल में स्क्रीनशॉट देखें)

यह भी अपने aspx फ़ाइल में फिर से लिखते हैं <% @ पृष्ठ%> decleration कोड से इनहेरिट करना के लिए पीछे नया नाम/नाम स्थान।

सब छोड़ दिया गया था। कुछ विधानसभा संदर्भ मुद्दों था और किया

कैसे है: प्रतिलिपि

1) एक नया वेब प्रोजेक्ट बनाएँ, आपकी पुरानी वेबसाइट प्रोजेक्ट की सभी फाइलें नई वेब प्रोजेक्ट में हैं।

2) अपनी असेंबली के सभी संदर्भों को ठीक करें जिन्हें आप चाहते हैं।

3) वेब एप्लिकेशन पर राइट-क्लिक करें और वेब एप्लिकेशन में कनवर्ट करें का चयन करें। त्रुटि और चेतावनी लॉग का बारीकी से निरीक्षण करें। एक बार जब आप चीजों को ठीक कर लेंगे तो फिर से कन्वर्ट करें।

यदि कोई एएसपीएक्स या एएसएक्स फाइलों में designer.cs फ़ाइल नहीं है, तो रूपांतरण उस फ़ाइल पर विफल रहा। संदर्भ, नामस्थान, आदि को ठीक करें और फिर से कनवर्ट करें।

टिप # 1: सुनिश्चित करें कि आपके पास वेब एप्लिकेशन में कनवर्ट करने से पहले सभी संदर्भ जोड़े गए हैं। कभी-कभी कई त्रुटियां हो सकती हैं।

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

टिप # 3: आप किसी भी उप-निर्देशिका, या किसी भी फ़ाइल को किसी भी समय फिर से परिवर्तित कर सकते हैं। मान लें कि आपके पास # 2 में कई त्रुटियां हैं जिन्हें आप ठीक करने के लिए काम कर रहे थे, आप इसे ठीक करने तक उस फ़ाइल या निर्देशिका को कई बार फिर से कनवर्ट कर सकते हैं। पुनः कनवर्टिंग मौजूदा एप्लिकेशन को चोट नहीं पहुंचाती है।

1

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

+0

यह एक विचार है। किसी अन्य समाधान पर उम्मीद करते हुए (प्रश्न को बहुत अधिक विस्तार से अपडेट किया गया)। – eduncan911

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