c# - बाहरी वीएस2013 बिल्ड त्रुटि "त्रुटि एमएसबी 401 9: आयातित परियोजना<पथ> नहीं मिला"




.net web-applications (15)

मैं कमांड लाइन के माध्यम से एक प्रोजेक्ट का निर्माण कर रहा हूं, न कि विजुअल स्टूडियो 2013 के अंदर। नोट, मैंने विजुअल स्टूडियो 2012 से 2013 तक अपनी परियोजना को अपग्रेड किया था। परियोजना आईडीई के अंदर ठीक बनाती है। इसके अलावा, मैंने पूरी तरह से VS2012 को अनइंस्टॉल किया, रीबूट किया, और VS2013 स्थापित किया। मेरे पास विजुअल स्टूडियो का एकमात्र संस्करण 2013 अल्टीमेट है।

ValidateProjects:
    39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.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.
    39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED.

प्रश्न में दो पंक्तियां दी गई हैं:

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

मूल दूसरी पंक्ति v10.0 थी, लेकिन मैन्युअल रूप से v12.0 में बदल गया।

$ (VSToolsPath) जो मैं v11.0 (VS2012) फ़ोल्डर में देखता हूं उससे स्पष्ट करता है, जो स्पष्ट रूप से अब और नहीं है। पथ v12.0 होना चाहिए था।

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

मैंने अपने सिस्टम पर्यावरण चर तालिका में VSToolsPath निर्दिष्ट करने का प्रयास किया, लेकिन बाहरी निर्माण उपयोगिता अभी भी v11.0 का उपयोग करती है। मैंने रजिस्ट्री के माध्यम से खोज करने की कोशिश की और यह कुछ भी नहीं आया।

अफसोस की बात है, मुझे सटीक कमांड लाइन का उपयोग करने का कोई आसान तरीका नहीं दिखता है। मैं एक निर्माण उपकरण का उपयोग करें।

विचार?


आप पाएंगे

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

csproj फ़ाइल में जिसके लिए यह त्रुटि दिखाई दे रही है। बस इसे csproj से हटा दें और फिर बनाएं।


आपको C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ से C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ से फ़ोल्डर वेब अनुप्रयोगों की प्रतिलिपि बनाना चाहिए \


जब मैं कुछ वीएस घटकों को स्थापित करता हूं तो मुझे यह त्रुटि मिली। दुर्भाग्यवश इन उत्तरों में से कोई भी मेरी मदद नहीं करता था। मैं कमांड विकास के लिए टीएफएस का उपयोग करता हूं और मुझे बिल्ड परिभाषा को संपादित करने की कोई अनुमति नहीं है। मैंने पर्यावरण समस्या को हटाकर इस समस्या को हल किया जिसे VS110COMNTOOLS और VS120COMNTOOLS कहा जाता है। मुझे लगता है कि यह मेरे वीएस घटकों के साथ स्थापित किया गया था।


मुझे इसी तरह का मुद्दा था। सभी प्रस्तावित समाधान इस मुद्दे के लिए बस काम कर रहे हैं लेकिन त्रुटि के स्रोत को हल नहीं कर रहे हैं। @giammin समाधान लागू नहीं किया जाना चाहिए यदि आप tfs build server का उपयोग कर रहे हैं क्योंकि यह केवल प्रकाशित कार्यक्षमता क्रैश हो गया है। @ cat5dev समाधान - समस्या हल करता है लेकिन इसका स्रोत हल नहीं करता है।

मुझे लगभग यकीन है कि आप VS2012 के लिए बिल्ड प्रक्रिया टेम्पलेट का उपयोग कर रहे हैं जैसे ReleaseDefaultTemplate.11.1.xaml or DefaultTemplate.11.1.xaml टेम्पलेट ReleaseDefaultTemplate.11.1.xaml or DefaultTemplate.11.1.xaml इन बिल्ड टेम्पलेट्स VS2012 और $ (VisualStudioVersion) के लिए 11.0 पर सेट किए गए हैं

आपको VS2013 ReleaseTfvcTemplate.12.xaml or TfvcTemplate.12.xaml लिए बिल्ड प्रक्रिया टेम्पलेट का उपयोग करना चाहिए जिसमें $ (VisualStudioVersion) 12.0 पर सेट है

यह प्रोजेक्ट फ़ाइल में किसी भी बदलाव के बिना काम करता है।


मुझे बस किनुक से एक प्रतिक्रिया मिली, जिसने मुझे एक link दिया:

असल में, मुझे बल्बिंग से पहले निम्नलिखित कॉल करने की आवश्यकता है। मुझे लगता है कि विजुअल स्टूडियो 2013 पहले पर्यावरण को स्वचालित रूप से पंजीकृत नहीं करता है, लेकिन 2012 ने किया, या मैंने किया और भूल गया।

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86

उम्मीद है कि यह पोस्ट किसी और की मदद करता है।


मुझे भी वही त्रुटि मिली .. मैंने इसे ठीक करने के लिए किया

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />

में बदलो

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

और यह हो गया है।


मेरे पास यह भी था और आप इसे अपनी बिल्ड परिभाषा में टूल संस्करण सेट करके ठीक कर सकते हैं।

यह करने में बहुत आसान है। अपनी बिल्ड परिभाषा खोलें और " प्रक्रिया " पृष्ठ पर जाएं। फिर " 3. उन्नत " समूह के तहत आपके पास " MSBuild Arguments " नामक एक संपत्ति है। निम्नलिखित वाक्यविन्यास के साथ पैरामीटर रखें

/p:VisualStudioVersion=12.0 

यदि आपके पास अधिक पैरामीटर हैं, तो उन्हें एक स्पेस से अलग करें, न कि अल्पविराम।


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

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

तो मैंने स्थिति को == से != और 10.0 से 12.0 तक की स्थिति बदल दी है।


मेरे मामले में मैं बस .csproj फ़ाइल खोलकर लाइन के नीचे टिप्पणी करता हूं और चाल करता हूं

<!-- <Import Project="..\PRPJECTNAME.targets" /> -->

मेरी समस्या अलग हो सकती है लेकिन मुझे यहां खींच लिया गया है, लेकिन यह किसी की मदद कर सकता है।

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


मैं - VisualStudioVersion चर के v11.0 मान को v10.0 में बदलने में कुछ भी मदद नहीं कर रहा था। .csproj फ़ाइल में परिवर्तनीय बदलना नहीं था। इसे कमांड प्रोम के माध्यम से सेट करना नहीं था। आदि...

मेरे निर्माण सर्वर पर उस विशिष्ट संस्करण (v11.0) के मेरे स्थानीय फ़ोल्डर की प्रतिलिपि समाप्त हो गई।


मैंने उपरोक्त सभी समाधानों की कोशिश की थी और अभी भी कोई भाग्य नहीं था। मैंने लोगों को अपने निर्माण सर्वर पर दृश्य स्टूडियो स्थापित करने के बारे में सुना था, लेकिन मेरे पास केवल 5 जीबी खाली रिक्त स्थान थे, इसलिए मैंने अपने निर्माण सर्वर पर सी: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ Microsoft \ VisualStudio की प्रतिलिपि बनाई और इसे एक दिन कहा । उसके बाद काम करना शुरू किया, टीम शहर 9.x और विजुअल स्टूडियो 2013 का उपयोग करना शुरू किया।


मैंने पाया कि मैं अपने स्थानीय पीसी पर वेब ऐप्लिकेशंस फ़ोल्डर खो रहा था, जब मैं 2012 का उपयोग कर रहा था तब विजुअल स्टूडियो 2017 के साथ स्थापित नहीं किया था।


यह निकटता से संबंधित है लेकिन OPs विशिष्ट समस्या को ठीक या नहीं कर सकता है। मेरे मामले में मैं वीएस2013 का उपयोग कर एक एज़ूर साइट की तैनाती को स्वचालित करने की कोशिश कर रहा था। वीएस कार्यों के माध्यम से बिल्डिंग और तैनाती, हालांकि, एमएसबिल्ड का उपयोग करके "लक्ष्य" के आसपास एक समान त्रुटि दिखाई गई। एमएसबिल्ड वीएस2013 के तहत अलग है, और अब वीएस का हिस्सा है और नेट फ्रेमवर्क नहीं है ( http://timrayburn.net/blog/visual-studio-2013-and-msbuild/ देखें)। असल में, एमएसबिल्ड के सही संस्करण का उपयोग करें:

ओल्ड, वीएस2012

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

नया, वीएस2013

C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe

नया, वीएस2015

C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe

नया अभी भी, वीएस2017 (पूरी तरह से परीक्षण नहीं किया गया लेकिन खोजा - उन्होंने चीजों को थोड़ा सा स्थानांतरित कर दिया है)

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe

समस्या को हल करने के लिए केवल एक चीज की आवश्यकता है: संस्करण 8.1.x या उच्चतर के लिए टीमसिटी को अपग्रेड करें क्योंकि विजुअल स्टूडियो 2012/2013 और एमएसबिल्ड टूल्स 2013 के लिए समर्थन केवल टीमसिटी 8.1 में पेश किया गया था। एक बार जब आप अपनी टीमसिटी को अपग्रेड कर लेते हैं तो एमएसबिल्ड टूल्स वर्जन सेटिंग को अपने बिल्ड चरण में संशोधित करें, जवाब के बाद समस्या गायब हो जाएगी। अधिक जानकारी के लिए यहां पढ़ें: http://blog.turlov.com/2014/07/upgrade-teamcity-to-enable-support-for.html


giammin का समाधान आंशिक रूप से गलत है। आपको अपने पूरे समाधान से उस संपूर्ण संपत्ति समूह को नहीं हटा देना चाहिए । यदि आप करते हैं, तो एमएसबिल्ड की "तैनाती लक्ष्य = पैकेज" सुविधा काम करना बंद कर देगी। यह सुविधा "VSToolsPath" सेट पर निर्भर करती है ।

<PropertyGroup>
  <!-- VisualStudioVersion is incompatible with later versions of Visual Studio.  Removing. -->
  <!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> -->
  <!-- VSToolsPath is required by MSBuild for features like "DeployTarget=Package" -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />




visual-studio-2013