2012-06-07 11 views
6

मेरे विकास लैपटॉप पर मेरे पास केवल वीएस2012 आरसी स्थापित है, और मैं अपने वेब साइट को हमारे टेस्ट सर्वर पर तैनात करने के लिए पावरहेल (पीएसके के माध्यम से) से नई एमएसडीईओपी। पब्क्समल पाइपलाइन (तैनातीऑनबिल्ड और पब्लिशप्रोफाइल सेटिंग्स) में सफलतापूर्वक हुक करने में सक्षम हूं।मैं कैसे नियंत्रित करूं कि एमएसबिल्ड फ़ाइल का कौन सा संस्करण .NET4 और 4.5RC के बीच उपयोग किया जाता है?

हालांकि, मेरे बिल्ड सर्वर पर, मैंने शुरुआत में वीएस -2010 एसपी 1 स्थापित किया था, और अब मैं अतिरिक्त 2012 आरसी स्थापित किया है (मेरे पास इस मशीन पर अन्य बिल्ड हैं जो अभी भी .NET 4 हैं)।

एक ही स्क्रिप्ट को ठीक उसी पैरामीटर के साथ चलाते समय, मैं अपने देव मशीन और बिल्ड सर्वर के बीच अलग-अलग परिणाम देखता हूं। आदेश मैं चल रहा हूँ

exec { msbuild "Website\WebSite.csproj" /m p:DeployOnBuild=True /p:PublishProfile=MyTestProfile } 

निर्माण सर्वर पर है, इस तथ्य को ट्रिगर MSDeploy में नहीं है, लेकिन बस पैकेजिंग बिट्स कि साइट को ज़िप और एक तैनाती पैकेज बनाता है। मेरी मशीन सफलतापूर्वक pubxml फ़ाइल को चुनती है और एक सफल तैनाती करता है।

आखिरकार, मेरा मानना ​​है कि मैंने फ़ाइल को Microsoft.Web.Publishing.targets में समस्या का पता लगाया है। मेरे देव मशीन पर मैं केवल

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web 

है, लेकिन सर्वर अतिरिक्त

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web 

है और यह इस फाइल (.pubxml सामान के ज्ञान के बिना) की तरह लगता है कि वहाँ क्या इस्तेमाल किया जा रहा है।

क्या किसी को यह पता चला है कि मुझे अपनी खुद की एमएसबिल्ड फाइलों के भीतर क्या करना है, इसलिए मैं 4.0 बिल्डों के लिए बिल्ड सर्वर पर कुछ भी नहीं पेंचता हूं) msbuild को v11.0 संस्करण लेने के लिए फ़ाइल का और इस प्रकार मेरी .pubxml फ़ाइल का उपयोग करें?

उत्तर

12

यह दिलचस्प है कि इसे नवीनतम (v11.0) चुनना चाहिए, ऐसा लगता है कि यहां एक बग है। यह एमएसबिल्ड संपत्ति विजुअलस्टूडियो वीरसन द्वारा नियंत्रित है।

बिल्ड नियम पर यह मान कैसे आबादी के नियम हैं। 1. यदि VisualStudioVersion को पर्यावरण चर या वैश्विक प्रॉपर्टी के रूप में परिभाषित किया गया है (उदा।/P: कमांड लाइन पर) जो जीतता है। इस प्रकार Dev11 & Dev11 कमांड प्रॉम्प्ट हमेशा v11 है - वे दोनों VSV को पर्यावरण परिवर्तनीय के रूप में परिभाषित करते हैं। अन्यथा, यदि उप-टूलसेट है जो समकक्ष समाधान संस्करण से मेल खाता है (जो वर्तमान में हमेशा फ़ाइल स्वरूप संस्करण - 1 है) , चुनें 1. अन्यथा, डिफ़ॉल्ट संस्करण प्राप्त करें; 10.0 यदि Dev10 स्थापित है, उच्चतम संस्करण वाला उप-टूलसेट संस्करण स्थापित है (वर्तमान में हमेशा 11) अन्यथा

आपके मामले में जब आप किसी समस्या में भाग ले रहे हैं तो आप सही लक्ष्य का उपयोग सुनिश्चित करने के लिए /p:VisualStudioVersion=11.0 पर जा सकते हैं।

+0

धन्यवाद, VisualStudioVersion = 11.0 को पास करने से यह तय हो गया है। क्या यह उपयोगी होगा यदि मैं आपको/v: ध्वज के बिना दोनों मशीनों से डायग्नोस्टिक आउटपुट प्रदान करता हूं ताकि आप बेहतर ढंग से यह निर्धारित कर सकें कि यह एक वास्तविक बग है या कुछ मैंने अपने सर्वर पर तोड़ने में कामयाब रहा है? –

+1

कहा, ऐसा लगता है कि वीएस2013 के साथ ऐसा ही हो रहा है। मैंने इसे अपने बिल्ड सर्वर पर चलाया है और सही Azure लक्ष्यों को चुनने के लिए = 12.0 पास करना होगा ... –

+0

मेरे पास कस्टम कोड विश्लेषण नियम हैं और 2 सप्ताह पहले समाधान को अपग्रेड करने के बाद उन्हें VS2013 के विरुद्ध बनाया गया था। सभी ग्राहकों पर जब तक मैंने सीआई निर्माण नहीं किया तब तक सब ठीक हो रहा है। मैंने सीआई निर्माण पर पैरामीटर /p:VisualStudioVersion=12.0 जोड़ा और सब कुछ ठीक था।हम एक TFS2010 SP1 बिल्ड सर्वर और VS2013 RTM क्लाइंट्स का उपयोग करते हैं –

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