सवाल माइक्रोसॉफ्ट.WebApplication.targets बिल्ड सर्वर पर नहीं मिला था। आपका समाधान क्या है?


बिल्ड सर्वर पर अपनी परियोजना बनाने की कोशिश कर मुझे निम्नलिखित त्रुटि देता है:

Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

बिल्ड सर्वर पर विजुअल स्टूडियो 2010 को स्थापित करने के साथ, मैंने कुछ महीने पहले इस समस्या को हल किया था। लेकिन अब मैं खरोंच से एक नया सर्वर स्थापित कर रहा हूं, और मैं जानना चाहता हूं कि इस मुद्दे को हल करने के लिए कोई बेहतर समाधान है या नहीं।


348
2017-10-20 18:05


मूल


क्या वेब अनुप्रयोग परियोजनाएं बहिष्कृत हैं? मुझे आश्चर्य है कि उन्हें बनाने के लिए विजुअल स्टूडियो के पुराने संस्करणों की आवश्यकता के लिए तर्क क्या है? - brianary
बिंदु पर और, क्या आप वास्तव में बिल्ड सर्वर के माध्यम से तैनात करते हैं? जैसे मैं नहीं करता, मेरे पास समाधान में एक अलग वेब इंस्टॉलर प्रोजेक्ट भी है ... और यह अभी भी यह खूनी चीज़ चाहता है ... answer = इसे proj फ़ाइल से हटा दें! आसान। - Paul Zahra


जवाब:


प्रश्न के शीर्षक का जवाब देने के लिए (लेकिन आपके द्वारा प्राप्त किए जा रहे आउटपुट के बारे में प्रश्न नहीं):

अपने डीवी मशीन से अपने बिल्ड सर्वर पर निम्न फ़ोल्डर की प्रतिलिपि बनाना यह ठीक करता है अगर यह सिर्फ वेब अनुप्रयोग है

सी: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications

अपने बिल्ड को तोड़ने के तरीके के अनुसार x86 निकालें। यदि आपके पास अन्य प्रोजेक्ट प्रकार हैं तो आपको शायद पूरे एमएसबिल्ड फ़ोल्डर की प्रतिलिपि बनाने की आवश्यकता होगी।


190
2018-03-17 19:36



V10.0 को v11.0 में बदलने के बाद, यह V22012 प्रोजेक्ट के साथ m2 के लिए काम किया - DenNukem
क्या हम इसके बजाय एमएसबिल्ड टूल्स इंस्टॉल नहीं कर सकते? microsoft.com/en-us/download/confirmation.aspx?id=40760 - user20358
हां, MSBuild उपकरण स्थापित करना उन परियोजनाओं को बनाने के लिए पर्याप्त नहीं है जो VisualStudio 2013 में ठीक संकलित करते हैं - Michael Shaw
वीएस2013 स्थापित करने के बाद इसे काम करने के लिए मुझे वेब फ़ोल्डर को v11.0 पर कॉपी करना पड़ा, यह वहां गायब था। वीएस में संकलित कर सकते हैं लेकिन एमएसबीयूआईएलडी के माध्यम से सीधे नहीं। - modiX
वीएस2017 के लिए काम किया। सी: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ Microsoft \ VisualStudio \ vXX.0 \ WebApplications को सी: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ Microsoft \ VisualStudio \ v15.0 \ WebApplications की प्रतिलिपि बनाएँ - jokab


यदि वीएस स्थापित नहीं है तो WAPs का निर्माण और प्रकाशन समर्थित नहीं है। इसके साथ, अगर आप वास्तव में वीएस स्थापित नहीं करना चाहते हैं तो आपको नीचे दी गई सभी फाइलों की प्रतिलिपि बनाना होगा %ProgramFiles32%\MSBuild\Microsoft\

आपको स्थापित करने की आवश्यकता होगी वेब परिनियोजन उपकरण भी। मुझे लगता है यही है।


95
2017-10-22 01:06



कहा - नीचे से जवाब देखें नीचे - क्या आपका जवाब सही है? यहां तक ​​कि वीएस 2010 शैल एकीकृत पैकेज स्थापित करना, और .NET SDK वेब अनुप्रयोग प्रोजेक्ट समर्थन को सही ढंग से इंस्टॉल नहीं करेगा? - Adam
@SayedIbrahimHashimi क्या आपको मैन्युअल फ़ोल्डर प्रतिलिपि करते समय डीएसी को जीएसी के साथ पंजीकृत करना है? - TheOptimusPrimus
मेरी जानकारी में नहीं। - Sayed Ibrahim Hashimi
और माइक्रोसॉफ्ट के बारे में क्या .extTemplating.targets? उन्हें अपने फ़ोल्डर में लाने के लिए मुझे क्या करना है? सी: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 - Academy of Programmer
@ClarkKent, क्षमा करें मैं TextTemplating फ़ाइल से बात नहीं कर सकता। मैं उनसे परिचित नहीं हूं। - Sayed Ibrahim Hashimi


यूपीडी: वीएस2017 के अनुसार, बिल्ड टूल्स में वर्कलोड है जो इस समस्या को पूरी तरह समाप्त करता है। @Soreader उत्तर देखें।

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

<Import Project="$(SolutionDir)\BuildTargets\WebApplications\Microsoft.WebApplication.targets" />
<Import Condition="false" Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

पहली पंक्ति समाधान निर्देशिका से संबंधित नए स्थान से वास्तविक आयात है। दूसरा एक बंद संस्करण है (Condition="false") मूल लाइन की है जो विजुअल स्टूडियो को अभी भी आपकी परियोजना को वैध वेब एप्लिकेशन प्रोजेक्ट मानने की अनुमति देती है (यह वह चाल है जिसे वीएस 2010 एसपी 1 स्वयं करता है)।

कॉपी करने के लिए मत भूलना C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplications सेवा मेरे BuildTargets आपके स्रोत नियंत्रण के तहत फ़ोल्डर।


69
2017-10-19 13:20



यह समाधान मेरे लिए काम करता था और वास्तव में मेरे मामले में सबसे अच्छा विकल्प था। ऐसा इसलिए है क्योंकि मेरे पास बिल्ड सर्वर तक पहुंच नहीं है। मैं एटलसियन के लोचदार बांस का उपयोग कर रहा हूं जो बिल्ड सर्वर के रूप में कार्य करने के लिए एक नया सर्वर स्पिन करता है। यह पहली नज़र में प्रकट नहीं होता है कि इन एएमआई में वेब एप्लिकेशन लक्ष्य शामिल हैं ?? यह मुझे समझ में नहीं आता है लेकिन ऐसा लगता है कि ऐसा लगता है। - Cody Clark
यह एक अच्छा अपमान है, लेकिन इस बदलाव के लिए प्रत्येक csproj फ़ाइल को बदलने की आवश्यकता है। यदि आप समाधान में नई परियोजनाओं को जोड़ते हैं तो यह मुश्किल है। बेशक इसे कस्टम प्रोजेक्ट टेम्पलेट्स के साथ हल किया जा सकता है, लेकिन फिर भी .. वैसे भी, इस जवाब ने मुझे सही दिशा में इंगित किया। धन्यवाद! - 100r


आप NuGet पैकेज का भी उपयोग कर सकते हैं MSBuild.Microsoft.VisualStudio.Web.targets, उन्हें अपने विजुअल स्टूडियो प्रोजेक्ट के भीतर संदर्भित करना, फिर एंड्री के सुझाव के रूप में अपने संदर्भों को बदलें।


60
2017-08-12 09:50



इसका उपयोग करना असंभव है क्योंकि मुझे पहले समाधान खोलना है लेकिन मैं त्रुटि के कारण नहीं कर सकता। - Academy of Programmer
यदि समाधान में एक से अधिक प्रोजेक्ट हैं, तो आपको अभी भी सक्षम होना चाहिए 1. समाधान खोलें - अनदेखा करें कि वेब प्रोजेक्ट लोड नहीं होता है; 2. nuget संदर्भ जोड़ें; 3. उसके बाद उल्लिखित दृष्टिकोणों में से एक ले लो; आप प्रोजेक्ट फ़ाइल को मैन्युअल रूप से संपादित कर सकते हैं, या TeamCity में env.VSToolsPath चर को ओवरराइड कर सकते हैं। - Damon
क्या यह आधिकारिक तौर पर जारी एमएस नुजेट पैकेज है, या किसी ने इसे अभी बनाया है? - Simon_Weaver
अद्भुत समाधान - वीएस के विभिन्न संस्करणों के लिए काम करता है। मुझे .csproj फ़ाइल, वाईएमएमवी संपादित करने की आवश्यकता है - Jonno
यह आधिकारिक तौर पर जारी माइक्रोसॉफ्ट न्यूज पैकेज नहीं है। मुझे पता है क्योंकि मैंने इसे बनाया है। - mak


पर आधारित यह पोस्ट यहाँ आप बस डाउनलोड कर सकते हैं माइक्रोसॉफ्ट विजुअल स्टूडियो 2010 शैल (एकीकृत) पुनर्वितरण योग्य पैकेज और लक्ष्य स्थापित हैं।

यह बिल्ड सर्वर पर विजुअल स्टूडियो को स्थापित करने की आवश्यकता से बचाता है।

मैंने अभी यह कोशिश की है, और यह सत्यापित कर सकता है कि यह काम करता है:

पहले:

त्रुटि एमएसबी 401 9: आयातित परियोजना "सी: \ प्रोग्राम फ़ाइलें   (X86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets "   नहीं मिला। पुष्टि करें कि घोषणा में पथ है   सही, और यह कि डिस्क डिस्क पर मौजूद है।

स्थापित करने के बाद:

[सही ढंग से बनाता है]

जाहिर है, एक बिल्ड सर्वर पर विजुअल स्टूडियो स्थापित करने से यह एक बेहतर समाधान है।


56
2017-09-12 15:43



यह आईएमओ का सबसे आसान और सरल समाधान है। मैं वीएस 2013 का उपयोग कर रहा हूं, और मैंने पाया कि विजुअल स्टूडियो 2013 शैल (पृथक) पुनर्वितरण योग्य काम था (एकीकृत एक अलग पर निर्भरता के कारण स्थापित नहीं होगा)। - Matt Miller
@ मैथ्यूस्केल्टन - इसका क्या अर्थ है सर्वर का निर्माण? - student
@ बाउंटीमेन - एक बिल्ड सर्वर एक ऐसा सर्वर है जो सतत एकीकरण (सीआई) सॉफ्टवेयर का निर्माण करता है या नियंत्रित करता है। उदाहरण: जेनकींस, टीमसिटी, क्रूज़ कंट्रोल इत्यादि। - Matthew Skelton
दुर्भाग्य से वीएस v14.0 के साथ, पैकेज स्थापित करने का तरीका nuget के माध्यम से है, लेकिन मेरी समस्या यह थी कि बिल्ड सर्वर के पास वीएस स्थापित नहीं था (केवल एमएसबिल्ड), असंभव के बगल में साबित पैकेज स्थापित करना। मैंने अपने पीसी से सर्वर पर प्रतिलिपि बनाने से पहले पावरशेल और नूजेट की विभिन्न आधा समर्थित स्थापना के साथ घंटों बिताए। - pasx
@pasx अगर त्रुटि संदेश में "v14" है, तो आप इसके बजाय विजुअल स्टूडियो 2015 पृथक शैल स्थापित कर सकते हैं - visualstudioextensibility.com/downloads/vs-shells ("यूआरएल डाउनलोड करें" के तहत; एक अनिवार्य सर्वेक्षण है, आनंद लें!) - Dunc


ऊपर वर्णित नवीनतम विंडोज एसडीके, इसके अलावा "माइक्रोसॉफ्ट विजुअल स्टूडियो 2010 शैल (एकीकृत) पुनर्वितरण योग्य पैकेज" माइक्रोसॉफ्ट.WebApplication.targets और के लिए "माइक्रोसॉफ्ट विजुअल स्टूडियो टीम सिस्टम 2008 डाटाबेस संस्करण जीडीआर आर 2" माइक्रोसॉफ्ट के लिए। डेटा .chema.SqlTasks.targets को विजुअल स्टूडियो 2010 को स्थापित करने की आवश्यकता को कम करना चाहिए। हालांकि, वीएस 2010 स्थापित करना वास्तव में अंत में डाउनलोड और कम काम करने के लिए कम समग्र हो सकता है।


39
2017-08-14 15:45



एफवाईआई - यदि आप एक बिल्ड सर्वर पर एसक्यूएल प्रोजेक्ट्स बनाने की कोशिश कर रहे हैं, तो पूर्ण उड़ा वीएस स्थापित करने के लिए, आप यहां उल्लिखित टीम सिस्टम 2008 डाटाबेस संस्करण जीडीआर आर 2 इंस्टॉलर के साथ भाग्य से बाहर हैं। यह प्री-रेक्स विजुअल स्टूडियो टीम सिस्टम 2008 डाटाबेस संस्करण एसपी 1 (अंग्रेजी) या विजुअल स्टूडियो टीम सिस्टम 2008 सूट एसपी 1 (अंग्रेजी) और विजुअल स्टूडियो 2008 सर्विस पैक 1 है। ऐसा लगता है कि आप .NET Framework से SqlServer.targets को कॉपी कर सकते हैं \ v4 निर्देशिका और TeamData msbuild \ प्रोग्राम फ़ाइलों \ msbuild \ microsoft \ visual studio \ v10.0 \ और आपके csprojs का निर्माण करेगा। - Ethan J. Brown
यह निश्चित रूप से सबसे सुंदर समाधान नहीं है, लेकिन मेरे लिए समय सबसे महत्वपूर्ण है। बस MSBuild निर्देशिका पर प्रतिलिपि बनाने से मेरे लिए और अधिक समस्याएं आती हैं।
यह वास्तव में एक महत्वपूर्ण उत्तर है क्योंकि यदि आप एक स्वतंत्र डेवलपर हैं जो क्लाइंट के लिए बिल्ड सर्वर स्थापित कर रहे हैं, तो आप नहीं चाहते कि क्लाइंट को अपने सॉफ्टवेयर बनाने में सक्षम होने के लिए विजुअल स्टूडियो लाइसेंस बनाए रखना पड़े। - thelsdj
मेरा निर्माण करने के लिए मुझे केवल वीएस -2010 शैल एकीकृत पैकेज और एंटीलिब 5 की आवश्यकता थी। टीम सिस्टम की आवश्यकता नहीं थी। - Robin Winslow
वीएस 2010 शैल अब उस लिंक पर उपलब्ध नहीं है, "जिस संसाधन को आप ढूंढ रहे हैं उसे हटा दिया गया है, इसका नाम बदला गया है, या अस्थायी रूप से अनुपलब्ध है।" - kristianp


अभी, 2017 में, आप MSBuildTools के साथ वेब अनुप्रयोगों को फिर से स्थापित कर सकते हैं। बस जाओ यह पन्ना जो MSBuild 2017 टूल्स डाउनलोड करेगा और इंस्टॉलेशन के दौरान क्लिक करेगा Web development build tools इन लक्ष्यों को भी स्थापित करने के लिए: enter image description here

इससे लापता पुस्तकालयों को स्थापित करना होगा C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications डिफ़ॉल्ट रूप से


29
2018-06-22 15:55



मैं बहुत आश्चर्यचकित हूं कि मेरे पांच साल पुराने स्रोत नियंत्रण में libs पैकिंग के बारे में पुराना है, और यह संशोधन अभी भी वोट प्राप्त कर रहे हैं, जबकि यह बॉक्स के जवाब से सही है। - Andriy K
@AndriyK आपका समाधान मैंने जो सुझाव दिया है उससे थोड़ा अलग है और मैं समझता हूं कि कोई मेरा ख्याल क्यों नहीं ले सकता है ... जब तक कि यह केवल आलस्य न हो; डी - SOReader
विजुअल स्टूडियो के भविष्य के संस्करणों के लिए इसे और अधिक सामान्य बनाने के लिए, आप नवीनतम बिल्ड टूल्स डाउनलोड कर सकते हैं visualstudio.microsoft.com/downloads  पृष्ठ को नीचे स्क्रॉल करें और नीचे के पास "विजुअल स्टूडियो के लिए उपकरण" अनुभाग का विस्तार करें, फिर "विजुअल स्टूडियो के लिए टूल बनाएं" डाउनलोड करें। वर्तमान में ये वीएस 2017 के लिए हैं, लेकिन मुझे लगता है कि यह भविष्य के संस्करणों के लिए समान होगा। वैसे, अगर आपको अपने सीआई उपकरण (उदाहरण के लिए जेनकींस) के लिए msbuild.exe के पथ की आवश्यकता है, तो वीएस 2017 के लिए यह सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 पर स्थापित किया जाएगा \ Bin \ msbuild.exe। - Simon Tewsi


निर्माण / सीआई सर्वर पर निर्माण करते समय, आयात बंद करें Microsoft.WebApplication.targets पूरी तरह से निर्दिष्ट करके /p:VSToolsPath=''। यह अनिवार्य रूप से, निम्न पंक्ति की स्थिति को गलत बना देगा:

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


टीमसीटी में यह किया गया है:

enter image description here


16
2018-03-03 19:43



यदि आप विजुअल स्टूडियो के "प्रकाशित" तंत्र का उपयोग कर रहे हैं तो लक्ष्य बनाएं आवश्यक हैं। ऐसा करने से संकलन आगे बढ़ने और पूरा करने की अनुमति देता है, लेकिन, यह अपूर्ण हो सकता है। - starlocke
आपने मेरा दिन बचाया, मैंने कई स्विच की कोशिश की और यह एक काम किया - Oğuzhan Kahyaoğlu