asp.net - विजुअल स्टूडियो 2012 वेब प्रकाशन फाइलों की प्रतिलिपि नहीं करता है




asp.net-mvc visual-studio-2012 (20)

मेरे पास वीएस 2012 में एक वेब एप्लीकेशन प्रोजेक्ट है और जब मैं वेब प्रकाशन टूल का उपयोग करता हूं तो यह सफलतापूर्वक बनाता है लेकिन किसी भी फाइल को प्रकाशित लक्ष्य (इस मामले में फाइल सिस्टम) में कॉपी नहीं करता है।

अगर मैं बिल्ड आउटपुट को देखता हूं तो मैं देख सकता हूं कि सब कुछ obj \ release \ Package \ PackageTmp \ पर सही ढंग से कॉपी हो जाता है लेकिन फिर मैं बिल्ड आउटपुट में देखता हूं यह है:

4> होन बिल्डिंग प्रोजेक्ट "{प्रोजेक्ट} .csproj"।
4> मौजूदा फाइलों को हटा रहा है ...
4> प्रकाशन फ़ोल्डर / ...
4> ========== बिल्ड: 3 सफल, 0 असफल, 1 अप-टू-डेट, 0 छोड़ा गया ==========
========== प्रकाशित करें: 1 सफल हुआ, 0 असफल रहा, 0 छोड़ दिया गया ==========

भले ही यह कहता है कि प्रकाशित हुआ, प्रकाशित होने के लिए लक्ष्य निर्देशिका में फ़ाइलें नहीं हैं।

मैंने इसे कई परियोजनाओं में देखा है और कभी-कभी ऐसा लगता है कि समाधान / प्लेटफ़ॉर्म कॉन्फ़िगरेशन इस समस्या का कारण बनता है लेकिन मैं इसके लिए सटीक कारण निर्धारित करने में सक्षम नहीं हूं।

क्या किसी और ने यह देखा है या इस बारे में कोई विचार है कि यह सही ढंग से कैसे काम कर रहा है?

अद्यतन करें:

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

अद्यतन 2:

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

अद्यतन 3:

इसे हाल ही में विजुअल स्टूडियो 2012 अपडेट 2 के साथ तय किया गया है


अंत में मुझे जवाब मिला। उपरोक्त सभी समाधान मेरे लिए काम नहीं करते हैं।

मैंने जो किया था वह यह है कि मैं परियोजना को स्थानांतरित करने के लिए प्रोजेक्ट फ़ोल्डर को कुछ छोटे से बदलता हूं और इसे प्रकाशित करता हूं ..

मेरे पक्ष में यह असफल होने का कारण यह है कि मेरे पास बहुत लंबा प्रोजेक्ट नाम / विरासत था।

सी: \ उपयोगकर्ता \ उपयोगकर्ता \ डेस्कटॉप \ अनुपालन प्रबंधन प्रणाली \ अनुपालन IssueManagementSystem \ ComplianceIssueManagementSystem

मैंने इस बारे में सोचा था क्योंकि कभी-कभी जब मैंने रार फ़ाइल निकाली तो यह कहता है कि नाम / पथ बहुत लंबा है। मैंने सोचा कि यह दृश्य स्टूडियो 2012 प्रकाशित के समान होगा। और यह करता है!

उम्मीद है कि यह आपको लोगों की मदद करेगा।


अपनी वर्तमान प्रोजेक्ट की जांच करें कि क्या आपने एक ही कक्षा के नाम और अलग-अलग पेज नाम के साथ प्रतिलिपि बनाई है (कक्षा का नाम प्रतिलिपि फ़ाइल का उत्तराधिकारी होगा)। आखिरकार संकलक को भ्रमित कर देगा !!!

CodeFile = "Consolidated.aspx.vb" Inherits = "समेकित


इसे थोड़ा और आगे ले जाने के लिए। आपके पास दो फाइलें हैं जो बनाई गई हैं जब आप एक प्रकाशित प्रोफ़ाइल बनाते हैं।

  • NewProfile.pubxml
  • NewProfile.pubxml.user

जब आप एक प्रोजेक्ट खोलते हैं जिसमें इन फ़ाइलों को PublishProfile फ़ोल्डर में स्रोत नियंत्रण से है, तो इसमें केवल .pubxml फ़ाइल है और .pubxml फ़ाइल नहीं है, इसलिए जब आप प्रोजेक्ट खोलते हैं तो यह फ्लाई पर .publxml.user फ़ाइल बनाता है। । जब यह .publxml.user पर नया .publxml.user बनाता है तो एक्सएमएल इस तरह दिखता है:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

जब आप एक नई प्रोफ़ाइल बनाते हैं तो यह xml बनाता है जो इस तरह दिखता है:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <TimeStampOfAssociatedLegacyPublishXmlFile />
    <EncryptedPassword />
  </PropertyGroup>
</Project>

यदि आप <PropertyGroup> नोड लेते हैं और इसे .pubxml.user फ़ाइल में .pubxml.user हैं तो आपके PublishProfiles फिर से काम करना शुरू कर देंगे।


उपर्युक्त समाधानों में से कोई भी मेरे लिए काम नहीं करता है।

लेकिन मैंने देखा कि हमारे मुख्य समाधान में हमारी पांच एएसपी.नेट एमवीसी परियोजनाओं में से चार ने तैनाती पैकेज को सही जगह पर रखा है, जबकि एक ने इसे obj \ Debug के नीचे छोड़ा है।

मैंने परियोजनाओं की तुलना की और एक विसंगति पाई। समाधान इसे बदलना था :

<Import
    Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

इसके लिए :

<Import
  Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"
  Condition="'$(VSToolsPath)' != ''" />
<Import
  Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"
  Condition="false" />

इस बदलाव के बाद, सभी पांच परियोजनाओं ने अपने तैनाती पैकेज को सही जगह पर रखा।

(लंबी लाइनों के बारे में खेद है, लेकिन मुझे उन्हें परेशान करने का एक बेहतर तरीका नहीं मिला।)


एक डिस्क प्रकाशित लक्ष्य के साथ वीएस 2012 प्रो के साथ एक ही समस्या। प्रोजेक्ट सही ढंग से प्रकाशित करने के लिए प्रयुक्त होता था लेकिन इस समस्या को करना शुरू कर दिया जहां यह फ़ाइलों को गंतव्य फ़ोल्डर में कॉपी करने में विफल रहा।

समाधान प्रकाशित प्रोफाइल को संपादित करना था, रिलीज (किसी भी सीपीयू) से मोड को फिर से रिलीज (किसी भी सीपीयू) पर डीबग करने के लिए बदलें। ऐसा करने से PublishProfiles \ projname.pubxml.user फ़ाइल को फिर से लिखा जा सकता है (ऊपर वर्णित अनुसार)। ऐसा लगता है कि यह LastUsedBuild, LastUsedPlatform और TimeStampOfAssociatedLegacyPublishXmlFile तत्वों को संपत्ति समूह नोड के अंतर्गत जोड़ा गया है। प्रकाशित होने के बाद, यह व्यक्तिगत फाइलों और प्रकाशित समय के साथ एक और आइटम समूह जोड़ता है।


एक ही समस्या है। कामकाज रिलीज से डिबग तक प्रकाशित सेटिंग्स बदल रहा था। पुन: प्रकाशित करें और उन्हें रिलीज करने के लिए वापस chage ...


निम्नलिखित मेरे लिए काम किया:

बस रिलीज> डीबग> रिलीज (या इसके विपरीत) से बदलें और फिर प्रकाशित करें।

आपको जिस चीज की आवश्यकता नहीं है उसे हटाने, संपादित करने, प्रकाशित करने की कोई ज़रूरत नहीं है।


प्रथम:

  • रिलीज कॉन्फ़िगरेशन में बनाएँ।
  • प्रोजेक्ट प्रॉपर्टीज-> पेज पैकेज / प्रकाशित वेब के तहत सभी फाइलों और फ़ोल्डर्स का चयन करें।
  • समाधान पुनर्निर्माण (स्वच्छ समाधान के बाद)।
  • अब प्रकाशित करें।

आपने जो भी चुना है उसे पुनः जांचने के दौरान।
यह करना चाहिए। यह मेरे लिए किया था! :)


मुझे एक ही समस्या है। उपर्युक्त समाधानों में से कोई भी मेरे लिए काम नहीं करता है।

इसलिए, मैंने उन फ़ाइलों को बाहर कर दिया है जो प्रकाशन करते समय कॉपी करने में विफल रहे।


मुझे यह वही समस्या थी हालांकि इस धागे में कोई भी जवाब मेरे लिए काम नहीं करता था। मेरी समस्या यह थी कि एक निर्देशिका है जिसमें गतिशील रूप से जेनरेट की गई है (मेरे ऐप द्वारा) स्थिर HTML फ़ाइलें। पूरी निर्देशिका प्रकाशित नहीं की जा रही थी।

मेरे लिए काम किया गया समाधान here पाया गया था:

एक मुद्दा मुझे थोड़ी देर पहले मिला और सोचा कि मुझे दस्तावेज होना चाहिए था कि जब मैंने अपनी परियोजना प्रकाशित की तो कुछ फाइल प्रकार अपलोड नहीं किए जा रहे थे।

प्रश्न में फ़ाइल प्रकार .pdf फ़ाइलें और .rtf थे।

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

उन फाइलों का चयन करें जिन्हें कॉपी नहीं किया जा रहा है। गुणों में यह सुनिश्चित करें कि बिल्ड एक्शन सामग्री पर सेट है।

यदि यह काम नहीं करता है तो निम्नलिखित की कोशिश की जा सकती है।

प्रोजेक्ट मेनू के तहत पैकेज / प्रकाशित वेब का चयन करें और इस ड्रॉप डाउन को नोट करें:

इस प्रोजेक्ट फ़ोल्डर में सभी फ़ाइलों को बदलने का प्रयास करें।


मेरी समस्या myproject.csproj फ़ाइल की गलत कॉन्फ़िगरेशन में थी। '_address-step1-saved.cshtml' फ़ाइल प्रकाशित पर प्रतिलिपि नहीं बनाई गई थी। 'कोई नहीं' 'सामग्री' में बदल गया, अब यह ठीक है।


मेरे पास समाधान में कई अन्य संदर्भित परियोजनाओं के साथ एक वेब अनुप्रयोग है। मैंने अतीत में कई बार एक प्रकाशन प्रकाशन के साथ सफलतापूर्वक तैनात किया है। मैंने प्रोजेक्ट कॉन्फ़िगरेशन को डीबग से रिलीज करने के लिए एक परियोजना के लिए रिलीज़ किया था जिसे अतीत में याद किया गया था। अगली बार जब मैंने तैनात करने का प्रयास किया तो मुझे इन लक्षणों को मिला, जहां प्रकाशित बस चुपचाप विफल रहता है - यह कुछ भी नहीं करता और कहता है कि यह सफल हुआ:

1>------ Build started: Project: Project, Configuration: DeployProduction Any CPU ------
1>  
2>Publishing folder /...
========== Build: 1 succeeded, 0 failed, 9 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

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

विन 8 वीएस2012, क्रैपी लैपटॉप।


मैंने इन सभी समाधानों का प्रयास किया लेकिन यह वह है जो हर बार काम करता है।

हम "फाइल सिस्टम" से "प्रकाशित करें": उदाहरण के लिए "वेब डिप्लॉयमेंट" को बदल दें, और इसे तुरंत "फाइल सिस्टम" में बदलें।


मैंने कई परियोजनाओं के लिए एक ही समस्या है (था)। एकमात्र हिट वेब प्रोजेक्ट्स प्रतीत होता है। प्रोफ़ाइल को हटाने और पुनर्निर्मित करने से समस्या केवल एक बार हल हो जाती है। Additionaly, publxml उत्पन्न की तुलना में कोई अंतर नहीं पैदा करता है, इसलिए यह प्रोफ़ाइल से संबंधित प्रतीत नहीं होता है।

निर्माण समस्याओं को आगे बढ़ाने के लिए ओपी द्वारा उल्लिखित कार्यवाही इस समय एकमात्र विश्वसनीय समाधान प्रतीत होती है।


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

मेरे कामकाज पर, मुझे एक समाधान मिला।

  1. प्रकाशित करने के दौरान प्रकाशन विज़ार्ड किसी भी त्रुटि को प्रतिबिंबित करेगा लेकिन किसी भी फ़ाइल को गंतव्य फ़ोल्डर में कॉपी नहीं करेगा।

  2. त्रुटि उत्पन्न करने वाली फ़ाइल को खोजने के लिए बस वेबसाइट फ़ोल्डर सामग्री को एक नए फ़ोल्डर में कॉपी करें और उस वेबसाइट के साथ दृश्य स्टूडियो शुरू करें।

  3. अब जब आप इसे प्रकाशित करने का प्रयास करेंगे तो आपको फ़ाइल नाम दिया जाएगा जिसमें त्रुटियां हैं।

  4. बस मूल वेबसाइट फ़ोल्डर में त्रुटि को ठीक करें और प्रकाशित करने का प्रयास करें, यह पहले की तरह काम करेगा।


यह कार्रवाई मेरे लिए सफल रही थी:

"Properties> PublishProfiles> xxxx.pubxml" में प्रकाशित प्रोफ़ाइल को मारें और फिर से सेट करें।


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

हम "फाइल सिस्टम" से "प्रकाशित करें": उदाहरण के लिए "वेब डिप्लॉयमेंट" को बदल दें, और इसे तुरंत "फाइल सिस्टम" में बदलें।


विजुअल स्टूडियो 2012 में, रिलीज के बीच स्विचिंग अभी भी समस्याएं पैदा करती है।

हमने obj फ़ोल्डर को हटाने के लिए प्री-बिल्ड इवेंट जोड़ा: del /s /f /q $(ProjectDir)\obj और यह प्रकाशन के मुद्दे को ठीक करता है। सफाई कभी-कभी काम करती है, लेकिन हमेशा नहीं।


हल करने के लिए इन चरणों का पालन करें:

Build > Publish > Profile > New

एक नई प्रोफ़ाइल बनाएं और इसे अपनी मौजूदा प्रोफ़ाइल के समान सेटिंग्स के साथ कॉन्फ़िगर करें।

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


हाल ही में एक एमवीसी परियोजना के लिए वीएस 2013 में एक ही समस्या थी जिसमें मैंने उम्ब्राको सीएमएस आयात किया था। मैं प्रकाशित नहीं कर सका। ऊपर दिए गए उत्तर में मदद मिली, हालांकि मुझे यह पता लगाने के लिए कुछ समय चाहिए कि मुझे वास्तव में वीएस में क्या करना चाहिए। इसे कुछ शोध की आवश्यकता है जैसे एमएस ब्लॉग पर पता लगाने के लिए। मैं इसे सरल कहने की कोशिश करता हूं:

  • वीएस टूलबार में एक निश्चित विन्यास जैसे रिलीज और कोई सीपीयू चुनें। परियोजना चलाओ।
  • बाद में समाधान समाधान पर समाधान एक्सप्लोरर में राइट-क्लिक करें, प्रकाशित करें चुनें। एक नई प्रकाशन प्रोफ़ाइल बनाएं या किसी दिए गए का उपयोग करें, लेकिन हमेशा यह सुनिश्चित करें कि सेटिंग्स में एक ही कॉन्फ़िगरेशन (जैसे रिलीज और कोई भी CPU) चुना जाता है, जैसा कि आपने पिछली बार प्रोजेक्ट चलाया था।
  • इसके अतिरिक्त मेरे मामले में ओबीजे फ़ोल्डर को हटाना आवश्यक था क्योंकि यहां मेरे आखिरी असफल प्रयासों की सेटिंग्स को प्रकाशित करने की कोशिश की गई, हालांकि मैंने वीएस को पुनरारंभ किया और सभी प्रकाशन प्रोफाइल को हटा दिया।




msbuild-wpp