2013-01-18 50 views
11

मुझे पता चला कि Web Deployment ProjectsVisual Studio 2012 में समर्थित नहीं हैं। this article पढ़ने के बाद, मैंने काम करने के लिए Publish Profiles प्राप्त करने का प्रयास किया।वेबसाइट प्रोजेक्ट बनाने के दौरान प्रोफ़ाइल काम नहीं कर रही है

Visual Studio Web Publish Update स्थापित करने के बाद मैं Visual Studio 2012 में नए प्रकाशन संवाद के साथ वेब साइट परियोजनाओं और वेब अनुप्रयोग परियोजनाओं को प्रकाशित करने में सक्षम था।

क्योंकि हम TFS 2010 Team Build का उपयोग कर रहे हैं, मैंने MSBuild पैरामीटर के माध्यम से प्रकाशित प्रोफ़ाइल का उपयोग करने का प्रयास किया। लेकिन निम्नलिखित कथन केवल वेब अनुप्रयोग परियोजनाओं को प्रकाशित करने के लिए काम करता है।

MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml 

यदि मैं वेबसाइट परियोजनाओं को प्रकाशित करने का प्रयास करता हूं तो कुछ भी नहीं होता है। मेरी वेबसाइट परियोजनाओं की प्रकाशित प्रोफ़ाइल केवल Visual Studio 2012 में नए प्रकाशन संवाद के साथ काम करती है लेकिन MSBuild पर कॉल करते समय नहीं।

कोई विचार?

+1

क्या आप गुण सूची में VisualStudioVersion = 11.0 जोड़ने का प्रयास कर सकते हैं? अगर यह काम नहीं करता है, तो अगर आप मुझे एक विस्तृत लॉग ईमेल कर सकते हैं तो मैं आपकी मदद कर सकता हूं। मेरा ईमेल कहता है [at] {MicrosoftDOTcom}। Http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx पर VisualStudioVersion पर अधिक जानकारी। –

+0

ठीक है अब मुझे एक ही समस्या है, सिवाय इसके कि मुझे लगता है कि बिल्ड सारांश कहता है कि इसे प्रकाशित प्रोफ़ाइल xml नहीं मिल सकता है, जहां इसे बिल्ड सर्वर पर इसकी अपेक्षा है।जब मैं इस स्थान पर जाता हूं, तो मुझे पुराना संस्करण (अलग-अलग नाम) मिलता है लेकिन नई प्रकाशित प्रोफ़ाइल नहीं। कोई सुराग क्यों पुराना दिखता रहता है? मैंने इसे समाधान और फ़ाइल सिस्टम से हटा दिया है। – Ian

+0

@Ian - यह सुनिश्चित नहीं है कि यह मदद करता है, लेकिन मुझे एक बग मिला (मुझे लगता है) जहां msbuild आपकी प्रकाशित प्रोफ़ाइल के लिए गलत जगह पर दिखेगा। PublishProfile तर्क से ".pubxml" को हटाने का प्रयास करें। कृपया अधिक जानकारी के लिए यहां देखें: http://discens.blogspot.co.uk/2013/02/msbuild-publish-profiles-and-web-site.html – gregpakes

उत्तर

5

मैंने अपने पर्यावरण में लगभग 3 सप्ताह कुश्ती बिताई है और मुझे लगता है कि मेरे पास समाधान है।

मुझे लगता है कि मुद्दा यह है कि जब आप समाधान में जाते हैं तो वेबसाइट.publishproj फ़ाइल वास्तव में कभी नहीं बनाई जाती है। मैंने निम्न कार्य करके इसे हल करने में कामयाब रहा:

  1. कृपया सुनिश्चित करें कि आप नए एएसपी.Net और टूल्स 2012.2 अपडेट का उपयोग कर रहे हैं। Download Here
  2. बाद में हल की गई समाधान फ़ाइल के आगे एक फ़ाइल बनाएं। MyWebs.sln.targets। इस फ़ाइल के रूप में देखना चाहिए इस प्रकार है:

    <!--?xml version="1.0" encoding="utf-8"?--> 
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
        <Target Name="Deploy Website" AfterTargets="Build"> 
         <Message Text="Starting Website deployment" Importance="high"> 
         </Message> 
         <MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj" 
         BuildInParallel="true" /> 
        </Target> 
    </Project> 
    

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

यह एकमात्र तरीका था जिसे मैं नई प्रकाशन प्रोफाइल प्राप्त कर सकता था ताकि मुझे पुराना वेब परिनियोजन प्रस्ताव प्राप्त हो सके।

चेतावनी की

शब्द: आप तो इस परिदृश्य में एक TFS में इस का उपयोग, निर्माण करना चाहते हैं, तो आप आप pubxml फ़ाइल में निर्दिष्ट PublishUrl की बूंद स्थान स्वतंत्र में एक _PublishedWebsites फ़ोल्डर मिल जाएगा। यह कुछ ऐसा है जिसे मैं हल करने की कोशिश कर रहा हूं लेकिन अब तक, ज्यादा खुशी नहीं है।

1

मुझे ऊपर जैसा ही समस्या थी। मैंने निम्नलिखित कुंजी हटा दी और स्वचालित निर्माण ठीक काम करना शुरू कर दिया।

**<Content Include="website.publishproj" />**