MS-Build 2017 "Microsoft.WebApplication.targets" गायब है


85

मैं विजुअल स्टूडियो 2015 से 2017 तक हमारे बिल्डरों (जेनकींस) को अपग्रेड करने की कोशिश कर रहा हूं। हम एमएस-बिल्ड के माध्यम से निर्माण कर रहे हैं। मैंने इस उत्तर में बताए अनुसार MS-Buld टूल डाउनलोड और इंस्टॉल किया है । यदि मैं अपनी परियोजनाओं को संकलित करता हूं तो मुझे एक त्रुटि मिलती है जो Microsoft.WebApplication.targetsनहीं मिली।

विस्तृत त्रुटि:

 error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"

मैंने MS-Build निर्देशिका में एक प्रदर्शन किया:

PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets"


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


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       11.01.2012     00:23          19654 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       22.07.2013     01:25          19995 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       06.07.2015     21:55          20118 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       22.07.2013     01:25          19995 Microsoft.WebApplication.targets

जैसा कि देखा जा सकता है कि फ़ाइल पुराने संकलक संस्करणों के लिए मौजूद है, लेकिन v15.0 के लिए यह गायब है।

मैंने बिल्ड-सर्वर पर विजुअल स्टूडियो 2017 भी स्थापित किया है। यदि मैं Visual Studio 2017 के साथ संकलित करता हूं, तो प्रोजेक्ट बनाने में सफल होता है।

कोई संकेत कैसे इस समस्या को हल करने के लिए? एक संभावित समाधान C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplicationsबिंदु से पुरानी v14.0 फ़ाइलों (नीचे स्थित C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications) के लिए एक प्रतीकात्मक लिंक उत्पन्न करना है ।

धन्यवाद



1
मेरे पास वीएस 2019 का उपयोग करते हुए एक परियोजना के साथ यह समस्या थी। मैंने यह कैसे तय किया कि यह csproj फ़ाइल खोलकर, लाइन की पहचान कर रहा है <आयात परियोजना = "$ (MSBuildExtensionsPath32) \ Microsoft \ VisualStudio \14.0 \ WebApplications \ Microsoft.WebApplication.targets "/> और <आयात परियोजना =" $ (MSBuildExtensionsPath32) \ Microsoft \ VisualStudio \ v $ (VisualStudioVersion) \
WebApplications

जवाबों:


124

ऐसा लगता है कि आप "वेब डेवलपमेंट बिल्ड टूल्स" के लिए कार्यभार को याद कर रहे हैं Microsoft.VisualStudio.Workload.WebBuildTools:।

आप से इंस्टॉलर निर्माण उपकरण डाउनलोड करके इसे स्थापित कर सकते हैं यहाँ (VS2017) या यहाँ (VS2019) तो चल रहा है

vs_buildtools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools

vs_buildtools.exeGUI में "वेब डेवलपमेंट बिल्ड टूल्स" घटक को खोलना या चुनना:

जीयूआई से स्क्रीनशॉट


3
मैं इस कमांड को कैसे चला सकता हूं इसके 'vs_buildtools.exe' को डेवलपर टूल 2017 में आंतरिक या बाहरी कमांड एरर के रूप में मान्यता नहीं दी गई है
Developerzz

26
यदि आपने पहले से ही "बिल्ड टूल फॉर विजुअल स्टूडियो 2017" इंस्टॉलर ( Visualstudio.com/thank-you-downloading-visual-studio/… ) डाउनलोड कर लिया है, तो आप उस इंस्टॉलर को लॉन्च कर सकते हैं, संशोधित कर सकते हैं और "वेब डेवलपमेंट बिल्ड टास्क" पर टिक कर सकते हैं। "वर्कलोड मॉड्यूल चेकबॉक्स। फिर संशोधित बटन पर क्लिक करें और इंस्टॉलर को समाप्त होने दें।
Spiralis

हां, आपको इंस्टॉल करने के लिए ऊपर कमांड लाइन का उपयोग करना होगा। आप इसे GUI पर नहीं पा सकते हैं।
स्काई 91

4
मैंने लिंक के Build Tools for Visual Studio 2017साथ स्थापित किया Web development build tasksहै, हालांकि यह अभी C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplicationsभी फ़ोल्डर नहीं बनाता है..मैं भी नहीं देखता हूं .. मैंने vs_buildtools.exeपूरे `c:`
LP13

1
thanks..looks का मूल्य वी.एस. 2017 से चाहते $(MSBuildExtensionsPath)में बदल गया था C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild stackoverflow.com/questions/47077150/... कि
LP13

88

ऊपर दिया गया स्वीकृत उत्तर तकनीकी रूप से सही, अपूर्ण, थोड़ा भ्रमित करने वाला, कम से कम मेरे लिए, और विजुअल प्रोफेशनल वर्किंग पाने के लिए एक अतिरिक्त कदम की आवश्यकता है।

  1. vs_buildtools.exe तकनीकी रूप से मौजूद नहीं है। मुझे एक प्रश्न बनाना था कि वह फ़ाइल कहाँ थी। यह स्पष्ट नहीं था कि vs_buildtools.exe vs_buildtools _ *******। Exe है और वास्तविक स्थापना प्रोग्राम है। इसके अतिरिक्त, ऊपर वर्णित "-add ***" केवल एक आशुलिपि है। कोई GUI पर जा सकता है और दोनों वर्कफ़्लो कार्यों की जाँच कर सकता है। वही काम करता है। मैं vs_buildtools फ़ाइल होने घाव, हालांकि यह जरूरत नहीं है।

  2. VSB प्रो ने अभी भी मेरा प्रोजेक्ट नहीं बनाया है। मैंने वही त्रुटि ऊपर फेंक दी। गुप्त सॉस बस में WebApplicationsफ़ोल्डर की प्रतिलिपि बनाने के C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0लिए था C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0। मैंने तब परियोजना का पुनर्निर्माण किया और सब ठीक था। मैंने अपेक्षित स्थान पर WebApplication.targets फ़ाइल रखी।

Microsoft ऐसा क्यों नहीं कर सकता था जो मुझसे परे है। इसके अलावा, अलग स्थापना क्यों। VS17 सामान की एक विशाल राशि स्थापित करता है। बिल्ड टूल्स निहित है, हमेशा की तरह। जो कुछ।

मैं इस जवाब को पोस्ट कर रहा हूं उम्मीद है कि यह दूसरों की मदद करेगा। मैं जाल में गिर गया और अपनी परियोजना के निर्माण के साथ बहुत समय खो दिया। मुझे उम्मीद है कि यह उत्तर चीजों को थोड़ा स्पष्ट करता है।


4
पुष्टि की गई कि "बिल्ड टूल फॉर विजुअल स्टूडियो 2017" वास्तव में C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ Microsoft \ VisualStudio \ v15.0 को लक्ष्य कॉपी करता है, जबकि msbuild वास्तव में C पर लक्ष्यों का पता लगाने की कोशिश करता है : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v15.0, इसलिए मुझे फ़ोल्डर्स को कॉपी करना होगा। जाहिरा तौर पर पहले एक आईडीई द्वारा उपयोग किया जाता है और दूसरा एक स्टैंड अकेले एमएसबिल्ट द्वारा उपयोग किया जाता है। अजीब।
ZZZ

1
आपको कुछ भी मैन्युअल रूप से कॉपी नहीं करना चाहिए। vs_buildtools.exe सिर्फ Visual Studio Installer है। यह आपको Build Tools या Visual Studio को स्थापित करने में मदद करता है। दोनों के लिए, आप विभिन्न वर्कलोड और घटकों को स्थापित कर सकते हैं। यदि आप Visual Studio के लिए वर्कलोड स्थापित करना चाहते हैं, तो आपको इसके लिए "संशोधित करें" बटन पर क्लिक करना होगा। इस तरह से आप आवश्यक घटक स्थापित कर सकते हैं।
व्लादिमीर शेरिख

2
ज़रूर, लेकिन समस्या यह है कि Visual Studio इंस्टॉलर WebApplications फ़ोल्डर को उन दोनों स्थानों पर मज़बूती से रखने की आवश्यकता नहीं है। मैनुअल की नकल, जैसा कि सारा ने सुझाव दिया है, एकमात्र तरीका है जिसे मैंने विश्वसनीय रूप से प्रबंधित करने के लिए अपने देव मशीन पर काम करने का निर्माण किया है।
बार्ट पढ़ें

21

विजुअल स्टूडियो 2015 से 2017 तक अपग्रेड होने के बाद मेरे पास एक समान मुद्दा था। जब मैं वेब एप्लिकेशन प्रोजेक्ट को लोड करने का प्रयास करता हूं, तो यह मुझे त्रुटि देता है:

आयातित प्रोजेक्ट "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ WebApplications \ Microsoft.WebApplication.targets" नहीं मिला। इसके अलावा, $ (VSToolsPath) - "C: \ Program Files (x86) \ MSBuild \" Microsoft \ VisualStudio \ v15.0 "के लिए फ़ॉलबैक खोज पथ (ओं) में" WebApplications \ Microsoft.WebApplication.targets "खोजने की कोशिश की गई। ये खोज पथ "C: \ Users \ xxx \ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_558e146f \ devenv.exe.config" में परिभाषित हैं। पुष्टि करें कि घोषणा में पथ सही है, और यह कि खोज डिस्क में से किसी एक में फ़ाइल डिस्क पर मौजूद है।

इस त्रुटि का हल मुझे यहां मिला ।

मेरे मामले में, .csproj फ़ाइल में निम्न पंक्तियाँ थीं:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0</VSToolsPath>
</PropertyGroup>

टैग में v14.0बाय की जगह के बाद , प्रोजेक्ट लोड किया जा सकता है।v$(VisualStudioVersion)VSToolPath

मैंने टैग में इसके v14.0द्वारा भी प्रतिस्थापित किया , जैसा कि उपरोक्त लिंक शो में समाधान है। लेकिन मेरे लिए भी इसे 14.0 पर छोड़ कर काम किया।v10.0VisualStudioVersion

यहां बताया गया है कि इन लाइनों को आखिर में कैसे देखना चाहिए:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

यदि आपके .csproj में ये रेखाएँ बिल्कुल नहीं हैं, तो आपको इस पंक्ति को मैन्युअल रूप से दाईं ओर जोड़ना होगा:

<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />

मेरे मामले में (थोड़ा अलग त्रुटि संदेश लेकिन एक ही समस्या) यह यह रेखा थी:

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

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

इस जानकारी का स्रोत: https://developercommunity.visualstudio.com/content/problem/27735/project-fails-to-load-with-error-regcing-microso.html?childTechView=123664#comment-123664 ( शो पर क्लिक करें) पूर्ण चर्चा धागा देखने के लिए अधिक टिप्पणियां - दुर्भाग्य से मैं इस "अधिक" अनुभाग में टिप्पणियों से सीधे लिंक नहीं कर सकता।)


11

चॉकलेट बनानेWebBuildTools का उपयोग करके पहले से ही शामिल विकल्प के साथ 2017 बिल्ड टूल को स्थापित करना आसान है । एक बार इसे स्थापित करने के बाद, एडमिन कमांड प्रॉम्प्ट में निम्नलिखित टाइप करें:

choco install visualstudio2017buildtools -y

वीएस 2019 के लिए, यह समान है:

choco install visualstudio2019buildtools -y

2
आपको एक विशिष्ट संस्करण स्थापित करने की आवश्यकता नहीं है, आप इसे cinst visualstudio2017buildtools -params '--add Microsoft.VisualStudio.Workload.WebBuildTools' -y ; cinst microsoft-build-tools -y
चॉकलेटरी

8

WebApplicationsसे फ़ोल्डर कॉपी करें

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

सेवा

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

या अपनी बिल्ड स्क्रिप्ट में संकलन करने से पहले निम्नलिखित पंक्ति जोड़ें

Copy-Item "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications" -Recurse -Force

इसे उन्नत अनुमतियों के साथ चलाना सुनिश्चित करें


3

VS 2017 प्रो, asp.net MVC एप्लिकेशन कैसे बनाएं और इसे जेनकिंस के साथ कैसे बनाएं?

देव मशीन और बिल्ड सर्वर दोनों में बनाम 2017 प्रो का उपयोग करें

देखें कि VisualStudio 15
आयात परियोजना पर सेट है = "$ (MSBuildExtensionsPath32) \ Microsoft \ VisualStudio \ v15.0 \ WebApplications \ Microsoft.WebApplication.targets" Condition = "false"

msbuild उपकरण
को C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ MSBuild.exe में जेनकिंस वैश्विक कॉन्फ़िगरेशन प्रबंधक पर सेट करें


जेनकिंस के साथ, विंडोज़ कमांड बैच को निष्पादित करें: नगोरे को फिर से लिखें: "C: \ Program Files (x86) \ Jenkins \ tools \ nuget \ NuGet.exe" को पुनर्स्थापित करें "C: \ Program Files (x86) \ Jkkins \ वर्कस्पेस \ theapp_build \ theapp। SLN "


जेनकिंस के साथ, विंडोज़ कमांड बैच निष्पादित करें: MSBuild Build File: theapp.sln
Command Line Arguments: / nologo / t: Restore / t: rebuild / p: configuration = "Debug" /p .VisualStudioVersion=15.0


2

वीएस 2019 के लिए, मैंने इसे कॉपी करके तय किया:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Microsoft \ VisualStudio + v16.0

सेवा

C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio


कैसे प्राप्त करने के लिए C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Microsoft \ VisualStudio \ v15.0 VS2019 के लिए
somegeek

-1

मैं विजुअल स्टूडियो कम्युनिटी 2017 को अपडेट करने के लिए सिर्फ विजुअल स्टूडियो इंस्टॉलर का उपयोग करता हूं , फिर समस्या हल हो जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.