2015-09-16 8 views
5

मेरे पास वर्तमान में विजुअल स्टूडियो 2012 का उपयोग करने वाले बहुत से डेवलपर हैं और मैं उन्हें 2015 में दो चरणों में अपग्रेड करना चाहता हूं। पहले विजुअल स्टूडियो 2015 में अपग्रेड करें, फिर नए एमएसबिल्ड (कंपाइलर) टूलसेट में अपग्रेड करें। यह महत्वपूर्ण है क्योंकि मैं विजुअल स्टूडियो में उसी बिल्डसेट का उपयोग करने के लिए अपनी बिल्ड स्क्रिप्ट्स में निर्माण करना चाहता हूं, जो डेवलपर मशीनों पर उपलब्ध हैं और बिल्ड सर्वर द्वारा उपयोग किए जाते हैं। मैं एक दिन चुनने से बचाना चाहता हूं और विजुअल स्टूडियो 2015 को स्थापित करने के लिए प्रत्येक डेवलपर को बताना चाहता हूं, साथ ही निर्माण स्क्रिप्ट को एक बार में अपडेट करने के लिए हमारे रिपोजिटरी/शाखाओं में बदलावों को धक्का देना चाहता हूं।विजुअल स्टूडियो 2015 के साथ विजुअल स्टूडियो 2012 टूल के साथ संकलन

मेरी समझ से, परियोजना फ़ाइल में Project element की ToolsVersion attribute MSBuild संस्करणों के बीच के अंतर को चलाता है। हालांकि, जब दृश्य स्टूडियो 2015 में ToolsVersion = 4.0 के साथ एक परियोजना का निर्माण, मैं निम्नलिखित संदेश प्राप्त:

बिल्डिंग उपकरण संस्करण "14.0" के साथ।
प्रोजेक्ट फ़ाइल में टूल्सवर्सन = "4.0" शामिल है। यह टूलसेट अज्ञात या अनुपलब्ध हो सकता है, जिसमें केस आप MSBuild के उपयुक्त संस्करण को स्थापित करके इसे हल करने में सक्षम हो सकते हैं, या बिल्ड को नीति कारणों से किसी विशेष टूल्सवर्सन पर मजबूर किया जा सकता है। प्रोजेक्ट का इलाज करना जैसे कि टूल्सवर्सन = "14.0" था। अधिक जानकारी के लिए, कृपया http://go.microsoft.com/fwlink/?LinkId=293424 देखें।

इसके अलावा, मैं निर्माण उत्पादन का पालन करें और देखते हैं कि यह दृश्य स्टूडियो 2015 टूलसेट का उपयोग कर कोड को संकलित करने के वास्तव में कर सकते हैं। मुझे पता है कि "4.0" टूलसेट गुम नहीं है (मेरे पास Visual Studio 2012 स्थापित है, .NET Framework संस्करणों के साथ जिसमें MSBuild का संस्करण शामिल है), इसलिए मुझे लगता है कि विजुअल स्टूडियो 2015 इसे नहीं ढूंढ सकता है, या वहां एक "नीति कारण" है जिसे मैं समझ नहीं पा रहा हूं।

Standard and Custom Toolset Configurations के लिए एमएसडीएन पृष्ठ के अनुसार, एमएसबिल्ड 12.0 (विजुअल स्टूडियो 2013) में 4.0 टूलसेट शामिल है। हालांकि मुझे एमएसबिल्ड 14.0 (विजुअल स्टूडियो 2015) पर कोई जानकारी नहीं मिल रही है।

क्या विजुअल स्टूडियो 2015 में निर्माण करना संभव है, लेकिन विजुअल स्टूडियो 2012 टूलसेट का उपयोग करना संभव है? यदि हां, तो कैसे? और निर्माण चेतावनी में वर्णित "नीति कारणों" क्या हैं?

उत्तर

0

समाधान

अपने डेवलपर्स 4.0 को वातावरण चर MSBUILDDEFAULTTOOLSVERSION निर्धारित किया है। यह करने के लिए एक आसान तरीका उन्हें एक ऊंचा PowerShell शीघ्र खोलने के लिए और चलाने के चलाने के लिए है:

[Environment]::SetEnvironmentVariable("MSBUILDDEFAULTTOOLSVERSION", "4.0", "Machine") 

दृश्य स्टूडियो से पहले ही इस बदलाव लेने जाएगा फिर से खोल करने की आवश्यकता होगी। एक बार जब आप नई MSBuild टूलसेट को उन्नत करने के लिए तैयार कर रहे हैं, अपने डेवलपर्स कि वातावरण चर को दूर किया है:

[Environment]::SetEnvironmentVariable("MSBUILDDEFAULTTOOLSVERSION", "4.0", "Machine") 

पृष्ठभूमि

MSDN (जोर मेरा) से:

विजुअल स्टूडियो 2013 से प्रारंभ , एमएसबिल्ड टूलसेट संस्करण विजुअल स्टूडियो संस्करण संख्या के समान है।दृश्य स्टूडियो के भीतर और कमांड लाइन पर इस टूलसेट के लिए MSBuild चूक, टूलसेट संस्करण प्रोजेक्ट फाइल में निर्दिष्ट की परवाह किए बिना। यह व्यवहार /ToolsVersion ध्वज का उपयोग कर ओवरराइड किया जा सकता है। अधिक जानकारी के लिए, Overriding ToolsVersion Settings देखें।

संयोग से, सत्यापित करने के लिए जो MSBuild उपकरण सेट एक मशीन पर उपलब्ध हैं और वे कहाँ स्थित हैं, तो आप सिर्फ PowerShell खुल जाएगा और चला सकते हैं:

dir HKLM:\Software\Microsoft\MSBuild\ToolsVersions 
संबंधित मुद्दे