19

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

Build file path: .\src\Solution.sln 
Targets: Rebuild 
Command line parameters: /p:DeployOnBuild=true;PublishProfile=Ci 

जब इस कदम मैं निम्नलिखित त्रुटि मिलती है निष्पादित हो रहा है:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377, 5): error ERROR_USER_NOT_ADMIN: Web deployment task failed. 
(Connected to 'dev.domain.com' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'dev.domain.com'. 

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

उत्तर

12

मैंने अभी इस बारे में http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx पर ब्लॉग किया है।

आप बहुत करीब हैं, उम्मीद है कि मैं अंतर को बंद कर सकता हूं।

आप सही हैं कि उपयोगकर्ता नाम और पासवर्ड VS प्रकाशित संवाद में निर्दिष्ट हैं, लेकिन हम .pubxml फ़ाइल में पासवर्ड को सहेजते नहीं हैं। वर्तमान में यह .pubxml.user फ़ाइल में सहेजा जा रहा है, और उस फ़ाइल का उपयोग कमांड लाइन परिदृश्यों के लिए बिल्कुल नहीं किया जाता है। इसके कारण आपको संपत्ति में प्रवेश करने की आवश्यकता होगी। तो अपने मामले में यह

msbuild .\src\solution.sln /p:DeployOnBuild=true /p:PublishProfile=ci /p:Password=<insert-password> 

होना चाहिए अपने वेब सर्वर पर भरोसा प्रमाणपत्र आप भी /p:AllowUntrustedCertificate=true में पारित करने के लिए आवश्यकता हो सकती है नहीं है, तो।

एक छोटा सा अतिरिक्त जो आपके मुद्दे से सीधे संबंधित नहीं हो सकता है, लेकिन यह उन लोगों के लिए सहायक हो सकता है जो बाद में इसे देख सकते हैं। यदि आप .csproj/.vbproj फ़ाइल (और संभावित रूप से कुछ परिदृश्यों में बना रहे हैं जहां .sln फ़ाइल का उपयोग किया जाता है) आपको /p:VisualStudioVersion=11.0 संपत्ति में पास करना चाहिए। इस पर अधिक जानकारी मेरे ब्लॉग http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx

पर उपलब्ध है