पृष्ठभूमि त्रुटि CS0433में बड़े precompiled Asp.net वेबसाइट परियोजना
मैं एक बहुत बड़े asp.net वेबसाइट परियोजना में ले लिया गया है। पुरानी तैनाती प्रक्रिया आईआईएस को .cs, .aspx, और .ascx फ़ाइलों की प्रतिलिपि बनाना था और इसे फ्लाई पर बनाना था। मैं इसे प्रीकंपाइल करना चाहता हूं और इसे स्वचालित रूप से तैनात करने के लिए टीमसिटी का उपयोग करना चाहता हूं। मैंने कुछ अन्य वेबसाइट परियोजनाओं के साथ ऐसा किया है।
इस परियोजना में लगभग 350 उपयोगकर्ता नियंत्रण हैं जो फ़ोल्डर्स में अच्छी तरह व्यवस्थित हैं लेकिन पूरे स्थान पर उपयोग किए जाते हैं। एक दूसरे से, अन्य फ़ोल्डरों से संदर्भित नियंत्रण ... मूल रूप से एक परिपत्र फ़ाइल संदर्भ दुःस्वप्न।
मेरे प्रयास
मेरा पहला प्रयास दूसरों की तरह यह निर्माण किया गया था। पूरे बनाम2012 समाधान MSbuild। मैं "सर्कुलर फ़ाइल संदर्भों की अनुमति नहीं है" के टन में भाग गया। यह पता लगाने के लिए कि इन सभी अच्छी तरह से संगठित नियंत्रण हर जगह उपयोग किए जाते हैं और परिपत्र संदर्भ पूरे स्थान पर हैं। I read this और मैंने "web.config" को compilation batch="false"
पर स्विच किया और फिर बिल्ड में साइट को "अपडेट करने योग्य नहीं" और "निश्चित नामकरण असेंबली का उपयोग करें" पर सेट किया। साइट बनाता है लेकिन मेरे क्वाड कोर, एसएसडी, 16 जीबी राम देव बॉक्स पर संकलन करने के लिए सचमुच 25 मिनट लेता है। यह अस्वीकार्य निर्माण समय है।
मुझे पता है कि अगर मैं "निश्चित नामकरण असेंबली का उपयोग" बंद करता हूं तो साइट काफी तेज़ी से निर्माण करेगी। (मैंने इसे छोटी वेबसाइटों में से एक पर साबित कर दिया है। यह 4 मिनट से 45 सेकंड तक चला गया)।
c:\Projects\Web\Site.master(146): error CS0433: The type 'ASP.usercontrols_modules_viewprofilepopup_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_viewprofilepopup.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_xa514so5.dll'
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_site.master.cdcab7d2.0.cs(927): error CS0433: The type 'ASP.usercontrols_modules_viewprofilepopup_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_viewprofilepopup.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_xa514so5.dll'
error ASPPARSE: c:\Projects\web\Web\UserControls\Modules\JobsLeftMenu.ascx(128): error CS0433: The type 'ASP.usercontrols_modules_imagesgallerymodule_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_imagesgallerymodule.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_nvrj33tx.dll'
error ASPPARSE: c:\Projects\web\Web\Site.master(146): error CS0433: The type 'ASP.usercontrols_modules_viewprofilepopup_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_viewprofilepopup.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_xa514so5.dll'
यहाँ सटीक aspnet_compiler.exe आदेश है:: मैं अजीब निर्माण त्रुटियों हो रही है जब मैं उस निकालें सेटिंग कर
aspnet_compiler.exe -v/वेब -p वेब \ -f " प्रीकंपिल्ड वेब "
मैंने जवाब के लिए चारों ओर गुगल किया। नहीं, वे कहीं भी कोड में डुप्लीकेट नहीं हैं। वे अलग-अलग फ़ोल्डर्स में होते हैं, जो विभिन्न फ़ोल्डरों में अन्य नियंत्रणों द्वारा उपयोग किए जाते हैं। मुझे लगता है कि यह परिपत्र फ़ाइल संदर्भ वस्तु के कारण है। अच्छी बात है। मैंने इनमें से कुछ का उपयोग यह देखने के लिए हटा दिया कि यह निर्माण करेगा या नहीं, निर्माण प्रक्रिया सिर्फ इस तरह की अन्य त्रुटियों पर ही चलती है। मैं इसे समायोजित करने के लिए केवल कोड को हटा नहीं सकता ... मैं "निश्चित नामकरण असेंबली का उपयोग" चालू किए बिना इन त्रुटियों को कैसे ठीक कर सकता हूं?
बात की मैं
- की कोशिश की है को साफ कर दिया
Temporary ASP.NET Files
सब मेरी प्रणाली में। - दृश्य स्टूडियो 2012 के भीतर से "प्रकाशित" करने का प्रयास किया। वही त्रुटियां।
- साइट को वेब एप्लिकेशन में कनवर्ट करने का प्रयास किया लेकिन बहुत सारी त्रुटियां मिलीं (600+ के ऊपर)।
- फिर से: सुनिश्चित करें कि कोई डुप्लिकेट फ़ाइलें और कोड नहीं था जो इसे समझाएगा। मैंने पाठ को संपूर्ण समाधान फ़ोल्डर को नोटपैड ++ के साथ खोजा ताकि यह सत्यापित किया जा सके कि उसी नाम के साथ कोई अन्य नियंत्रण नहीं था।
/m /p:CreateHardLinksForCopyLocalIfPossible=true /p:BuildInParallel=true
मैं स्टंप्डया हूँ और लगता है कि करने के लिए अपने ही एकमात्र विकल्प एप्लिकेशन के पुनर्लेखन के लिए, त्रुटियों माध्यम से आगे बढ़ना के रूप में मैं एक वेब अनुप्रयोग में बदलने का है लगते हैं:
क्या आपके द्वारा aspnet_compiler चलाने से प्राप्त त्रुटि के ऊपर सूचीबद्ध त्रुटि आउटपुट है? मैं इसके बजाय परिपत्र संदर्भ त्रुटि देखने की उम्मीद की होगी। –
@DavidEbbo यह त्रुटि web.config के साथ चलने के कारण होती है: संकलन बैच = "झूठी" और "निश्चित नाम" के बिना msbuild। –
तो फिर 'परिपत्र फ़ाइल संदर्भों की अनुमति नहीं है' त्रुटि को देखने के बजाय आप किस स्थिति में हैं? एक छोटे परिपत्र परिदृश्य का परीक्षण करते समय, मुझे यही मिलता है। –