2017-05-19 10 views
13

मैं विजुअल स्टूडियो 2015 से 2017 तक हमारे बिल्डर्सवर (जेनकींस) को अपग्रेड करने का प्रयास कर रहा हूं। हम एमएस-बिल्ड के माध्यम से निर्माण कर रहे हैं। मैंने इस answer में वर्णित एमएस-बुलड टूल्स को डाउनलोड और इंस्टॉल किया है। अगर मैं अपनी परियोजनाओं को संकलित करता हूं तो मुझे एक त्रुटि मिलती है कि Microsoft.WebApplication.targets नहीं मिला था।एमएस-बिल्ड 2017 "माइक्रोसॉफ्ट.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-बिल्ड निर्देशिका में खोज प्रदर्शन किया:

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 भी स्थापित किया है। अगर मैं विजुअल स्टूडियो 2017 के साथ संकलित करता हूं तो यह प्रोजेक्ट बनाने में सफल होता है।

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

Thx

+0

आप परियोजना का निर्माण कैसे किया एमएसबिल्ड के साथ? चूंकि आपने बिल्ड सर्वर पर विजुअल स्टूडियो 2017 स्थापित किया है, फिर भी आप एमएस-बिल्ड टूल क्यों स्थापित कर रहे हैं? विजुअल स्टूडियो 2013 से शुरू, एमएसबिल्ड .NET Framework के बजाय विजुअल स्टूडियो के हिस्से के रूप में शिप करेगा। –

उत्तर

17

ऐसा लगता है आप Microsoft.VisualStudio.Workload.WebBuildTools काम का बोझ याद कर रहे हैं।

आप

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

समस्या हल, thx। – Moerwald

+2

मैं इस आदेश को कैसे बना सकता हूं 'vs_buildtools.exe' को डेवलपर टूल 2017 – Developerzzz

+5

में आंतरिक या बाहरी कमांड त्रुटि के रूप में पहचाना नहीं गया है यदि आपने पहले ही "विजुअल स्टूडियो 2017 के लिए उपकरण बनाएं" इंस्टॉलर डाउनलोड किया है (https: // www .visualstudio.com/धन्यवाद-डाउनलोड-विज़ुअल-स्टूडियो /? sku = BuildTools और rel = 15), फिर आप उस इंस्टॉलर को लॉन्च कर सकते हैं, संशोधित हिट कर सकते हैं और "वेब डेवलपमेंट बिल्ड वर्क" वर्कलोड मॉड्यूल चेकबॉक्स पर निशान लगा सकते हैं। फिर संशोधित करें बटन पर क्लिक करें और इंस्टॉलर को खत्म करने दें। – Spiralis

17

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

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

  2. वीएसबी प्रो अभी भी मेरी परियोजना का निर्माण नहीं किया है। मैं उपरोक्त एक ही त्रुटि फेंक दिया। गुप्त सॉस 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 फ़ाइल रखी।

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

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

+1

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

+0

फ़ोल्डर की प्रतिलिपि मेरे लिए चाल थी। धन्यवाद – rodrigorf

+0

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

1

वीएस 2017 समर्थक, एएसपीनेट एमवीसी एप्लिकेशन कैसे बनाएं और इसे जेनकींस के साथ कैसे बनाएं?

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

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

MSBuild उपकरण
सी करने के लिए सेट: \ Program Files (x86) \ माइक्रोसॉफ्ट विजुअल स्टूडियो \ 2017 \ व्यावसायिक \ MSBuild \ 15.0 \ बिन \ MSBuild.exe में जेनकींस वैश्विक विन्यास प्रबंधक

जेनकींस के साथ , निष्पादित विंडोज़ बैच आदेश:
retore nugets: "C: \ प्रोग्राम फ़ाइलें (x86) \ जेनकींस \ उपकरण \ nuget \ NuGet.exe" बहाल "C: \ प्रोग्राम फ़ाइलें (x86) \ जेनकींस \ कार्यक्षेत्र \ theapp_build \ theapp.sln "

जेनकींस के साथ , निष्पादित विंडोज़ बैच आदेश: theapp.sln
कमांड लाइन तर्क:

MSBuild फ़ाइल बनाएँ/Nologo/टी: बहाल/टी: पुनर्निर्माण/पी: कॉन्फ़िगरेशन = "डीबग" /p:VisualStudioVersion=15.0

1

chocolaty का उपयोग करके WebBuildTools विकल्प पहले से ही शामिल किए गए 2017 बिल्ड टूल्स को स्थापित करना आसान है। एक बार जब choco is installed प्रकार एक व्यवस्थापक कमांड प्रॉम्प्ट पर निम्न:

choco install microsoft-build-tools --version 15.0.26228.0 -y 
4

कॉपी 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

ऊंचा अनुमतियाँ

0

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

The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Also, tried to find "WebApplications\Microsoft.WebApplication.targets" in the fallback search path(s) for $(VSToolsPath) - "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0" . These search paths are defined in "C:\Users\xxx\AppData\Local\Microsoft\VisualStudio\15.0_558e146f\devenv.exe.config". Confirm that the path in the declaration is correct, and that the file exists on disk in one of the search paths.

इस त्रुटि का समाधान मुझे here मिला।

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

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

मेरे मामले में, .csproj फ़ाइल निम्नलिखित लाइनों निहित।

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

<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-regarding-microso.html?childToView=123664#comment-123664 (पर क्लिक करें अधिक दिखाएं टिप्पणी पूरी चर्चा धागा देखने के लिए - दुर्भाग्य से मैं सीधे इस "अधिक" अनुभाग में टिप्पणी करने के लिए लिंक नहीं कर सकते।)

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