v11.0 \ ওয়েব অ্যাপ্লিকেশন \ মাইক্রোসফ্ট.ওয়েব অ্যাপ্লিকেশন.টারাজেটগুলি ফাইলটি আসলে ভি 10-র রেফারেন্স পাওয়া যায় নি


84

প্রথমে কিছু ব্যাকগ্রাউন্ড। ২০১২ সালের শেষে আমরা আমাদের vs2008 সমাধানটি vs2010 এ স্থানান্তরিত করেছিলাম তবে আমরা এখনও .NET 3.5 লক্ষ্য করেছি। (আমি এখানে সর্বশেষতম এবং সর্বোত্তম ছাড়া কিছুই জানি না!)

লোকেরা এই ত্রুটিগুলি পেতে শুরু করার কয়েক সপ্তাহ আগে পর্যন্ত আমাদের এই সেটআপটি নিয়ে কোনও সমস্যা হয়নি:

"foo.csproj" (Rebuild target) (16:5) ->
  C:\...\foo.csproj(142,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 declaration is correct, and that the file exists on disk.

মজার বিষয় হ'ল আপনি যদি প্রকল্পের ফাইলটি দেখুন তবে এটি ভি 10 এর উল্লেখ করে যা বোঝায় কারণ আমরা ভিজ্যুয়াল স্টুডিও 2012 ব্যবহার করি না।

এই ত্রুটিটি আমাদের বেশ কয়েকটিকে একবারে এমনকি পুরানো কোড শাখাগুলিতেও আঘাত করে যা কয়েক মাসে পরিবর্তিত হয়নি।

আমার সন্দেহ হয় যে কিছু আপডেট আমাদের মেশিনগুলিতে ধাক্কা খেয়েছে যা বিভ্রান্ত জিনিসগুলিতে পড়েছিল তবে আমি এটি সম্পর্কে কী করব তা জানি না।

স্বল্পমেয়াদী সমাধানটি ভিএস 2012 ইনস্টল করা এবং এটি ব্যবহার না করা হয়েছে তবে আমি তার চেয়ে কিছুটা পরিষ্কারের জন্য আশা করছি।


17
আমি দেখতে পেয়েছি যে এমএসবিল্ড কমান্ড লাইনে "/p:VisualStudioVersion=10.0" যুক্ত করা এটিকে দূরে সরিয়ে দেয় তবে এটি এখনও হ্যাকের মতো অনুভব করে।
drs9222

উত্তর:


116

আমি ভিজ্যুয়াল স্টুডিও 2013-র সাথে একই সমস্যাটিতে এসেছি It মাইক্রোসফ্ট এখন এমএসবিল্ডকে ভিজ্যুয়াল স্টুডিওর অংশ হিসাবে এবং একটি পৃথক ইনস্টলার হিসাবে প্রকাশ করছে ( http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of- ভিজ্যুয়াল-স্টুডিও.এএসপিএক্স )।

সমাধানটি ছিল এমএসবিল্ড.এক্সির নতুন সংস্করণটিতে অবস্থিত C:\Program Files (x86)\MSBuild\12.0\Bin। একবার আমি এটি করে নিলে সমস্ত টার্গেটের ত্রুটিগুলি অদৃশ্য হয়ে গেল।

সম্পাদনা 1

মন্তব্যে উল্লিখিত হিসাবে, এমএসবাইল্ডের প্রতিটি নতুন সংস্করণ এটি একটি নতুন ডিরেক্টরি নিয়ে আসে। ভিজ্যুয়াল স্টুডিও 2015 এর জন্য, ব্যবহার করুন C:\Program Files (x86)\MSBuild\14.0\Bin

সম্পাদনা 2

মন্তব্যে উল্লিখিত হিসাবে, ভিজ্যুয়াল স্টুডিও 2017 এর জন্য, ব্যবহার করুন C:\Program Files (x86)\Microsoft Visual Studio\2017\<Edition>\MSBuild\15.0\Bin\MSBuild.exe


4
আমি নতুন পথটি অন্তর্ভুক্ত করার জন্য টিমসিটি ফোরামে একটি অনুরোধ পোস্ট করেছি (নুগেট সেটিংস কীভাবে পরিচালনা করা হয়)। আশা করি তারা এটিকে দ্রুত মোকাবেলা করবেন।
ডেভিড পেডেন

4
পৃথক সরঞ্জাম ডাউনলোডে ব্লগ পোস্টের সরাসরি লিঙ্কটি আর বৈধ নয়। সঠিক লিঙ্কটি হ'ল: মাইক্রোসফট /en-us/download/details.aspx?id=40760
ডেভিড পেডেন

4
এবং ঠিক ঠিক এর মতোই, জেটব্রাইনগুলি 8.0.5 সংস্করণ সহ উদ্ধার করতে আসে। অফিসিয়াল ব্লগ পোস্ট: Teamcitydev.blogspot.com/2013/11/…
ডেভিড পেডেন

4
যদি আপনি স্থানীয় পাওয়ারশেল বিল্ড স্ক্রিপ্টগুলি পেয়ে থাকেন তবে আপনি কেবল নিজের পথে যুক্ত করতে পারেন: $env:Path = $env:Path + ";C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications"এবং ভি 4 এমসবিল্ড ব্যবহার করতে পারেন (আপনি আপনার বিল্ড বাক্সেও এটি করতে পারেন)
ক্রিস এস

4
হ্যাঁ! আপনাকে ধন্যবাদ - এটি সঠিক সমাধান।
জোশ এম

53

আপনার যদি এমন একটি বিল্ড সার্ভার থাকে যা ভিএস2012 ইনস্টল না করে থাকে তবে আপনি এটির মাধ্যমে এটি ঠিক করতে পারেন

ক) আপনার সমাধানটিতে এমএসবিল্ড.মাইক্রোসফট.ভিজুয়াল স্টুডিও.উইব.ট্রেজেটস প্যাকেজ ইনস্টল করা এবং এবং

খ) .csproj ফাইলে এই লাইনটি প্রতিস্থাপন করা:

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

এই লাইনটি দিয়ে নুগেট প্যাকেজটির দিকে নির্দেশ করা হচ্ছে

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="true" />

সম্পাদনা

এ আপডেট লাইনে সংস্করণটি @joedragons পয়েন্ট nuget প্যাকেজ সংস্করণ, অর্থাত সুসংগত হওয়া প্রতিস্থাপন targets.11.0.2.1সঙ্গে targets.x.x.x.xবর্তমান সংস্করণ জন্য।


4
তেমনি, দুর্দান্ত পরামর্শ!
কেভিন ওবি

4
ধন্যবাদ, দুর্দান্ত সমাধান
পাভেল

4
সম্ভবত সুস্পষ্ট তবে আপনি যে রেখাটি প্রতিস্থাপন করবেন তাতে আপনার ইনস্টল হওয়া প্যাকেজের সংস্করণ থাকতে হবে। আমি যেটি ইনস্টল করেছি সেটি ছিল ১২.০.৪, সুতরাং আমি যখন প্রতিস্থাপন আমদানি করি, তখন আমি একই ত্রুটি পেয়েছি। যখন আমি ... Web.targets.12.0.4 it এ স্যুইচ করেছি ... সমস্ত ভাল =) অনেক ধন্যবাদ!
joedragons

4
আপনার আর এই উত্তরের অংশ বিয়ের দরকার নেই। কোনও কারণে এসও অপ্রয়োজনীয় বিশদগুলি সরাতে আমার সম্পাদনা প্রত্যাখ্যান করেছে।
bbodenmiller

4
ধন্যবাদ আমি সর্বশেষ সংস্করণ এমএসবিল্ড.মাইক্রোসফট.ভিজুয়াল স্টুডিও.ওয়েব.টারজেটস.14.0.0.3
আহমেদ সমীর

23

এই সমস্যার একটি সহজ সমাধান:

নিম্নলিখিত পথে যান:

সি: \ প্রোগ্রাম ফাইল (x86) \ এমএস বিল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়ালস্টুডিও

আপনার ভিজ্যুয়াল স্টুডিও 2010, 2012 বা 2013 ইনস্টলের উপর নির্ভর করে আপনি সর্বশেষতম সংস্করণ ভি 10.0, ভি 11.0, ভি 12.0 দেখতে পাবেন।

WebApplicationsসর্বশেষতম সংস্করণ ডিরেক্টরি থেকে ফোল্ডারটি অনুলিপি করুন এবং অন্যটিতে আটকান।

আপনার সমস্যাগুলি সমাধান করা উচিত।


4
এই আইএমও হ'ল সেরা এবং সহজ সমাধান :)
গিডিওন

অবশ্যই এটির প্রয়োজন আপনার বিল্ড সার্ভারে এটি করার পক্ষে আসলে অ্যাক্সেস রয়েছে।
ডেভ

4
... তবে আমাদের কেন এটি ম্যানুয়ালি করতে হবে? ধন্যবাদ .. এটি আমার জন্য এটি ভিএস 21017 এ স্থির করেছে (আমার জন্য এটি কেবল ভিএস ২০১7 এর সাথে নতুন করে ইনস্টল করা হয়েছিল - এখন আমি মনে করি এটি এখনও ছিল কারণ আমি এখনও আইআইএস ইনস্টল করি নি)
পাইোটার কুলা

ভি 14.0 এ অনুলিপি করার সময়ও কাজ করে।
উওয়ে কেইম

12

আমি খুঁজে পেয়েছি যে ফ্রি ভিজুয়াল স্টুডিও 2012 শেলটি (বিচ্ছিন্ন) ইনস্টল করা ওয়েব অ্যাপ্লিকেশনগুলি v11 এমএসবিল্ড ফাইলগুলি ইনস্টল করে। ভিজ্যুয়াল স্টুডিও 2012 এর সম্পূর্ণ ইনস্টলের চেয়ে হালকা এবং লাইসেন্স সংক্রান্ত কোনও উদ্বেগ নেই।


8

কি দারুন. আমরা কেবল আমাদের বিল্ড মেশিনে একই ঘটনা ঘটতে দেখেছি। আমরা VS2010 ব্যবহার করি এবং নেট .NET 4.0 লক্ষ্য করি। আমাদের প্রকল্প ফাইলগুলি স্পষ্টভাবে এই লক্ষ্যগুলির v10.0 সংস্করণ আমদানি করে। কোডটিতে কোনও পরিবর্তন না করে, গতকাল বিল্ডটি ঠিক ছিল এবং আজ এটি হারিয়ে যাওয়া v11.0 সংস্করণ সম্পর্কে অভিযোগ নিয়ে ব্যর্থ। স্বয়ংক্রিয় আপডেট হিসাবে এই বিল্ড মেশিনে .NET ফ্রেমওয়ার্ক 4.5.4.1 ইনস্টল / আপডেট হয়েছে। আমরা প্যারামিটার (বা env। পরিবর্তনশীল) দিয়ে v10.0 জোর করতে চলেছি, তবে এটি অবশ্যই আমাদের অবাক করে দিয়েছে ...

আপডেট: এর চেয়েও বিস্ময়কর বিষয়টি হ'ল এটি মনে হয় যে আজকের এমএসবিল্ডের সংস্করণটি ডিফল্টরূপে কোন ভিজ্যুয়াল স্টুডিওভিশন ব্যবহার করবে তা নির্ধারণের জন্য স্লান ফাইলের প্রথম লাইনটি ব্যবহার করছে বলে মনে হচ্ছে, যেখানে গতকালের সংস্করণটি হয়নি:

Format Version 12.00

আমরা ম্যানুয়ালি এটিকে 11.00 এ পরিবর্তন করে পরীক্ষা করেছি এবং বিল্ডটি আবার কাজ শুরু করে।

আমাদের ক্ষেত্রে, যদিও আমরা 2010 / 4.0-এর জন্য সমস্ত কিছু লক্ষ্যবস্তু করে গড়ে তুলছি, কিছু ডেভস ভিএস ২০১২ এর জন্য প্রস্তুত হয়ে আসছে (যেহেতু এমএস দাবি করেছে যে প্রকল্পের ফাইলগুলি সামঞ্জস্যপূর্ণ), এবং এই নির্দিষ্ট সমাধানটি শেষবারে সংরক্ষণ হয়েছিল (মাস আগে) ভিএস ২০১২। আজকের আগে, এটি কোনও সমস্যার কারণ ছিল না।


4
এটি আমাকে সর্বোচ্চ ভোট দেওয়া উত্তরের চেয়ে অনেক বেশি সহায়তা করেছে যা মনে হয় সম্পূর্ণ ভিন্ন পরিস্থিতি সম্পর্কে।
লাম্বডা ক্রুইজার

এখানে একইভাবে @ ল্যাম্বডা ক্রুইজার এই উত্তরটি বেশ কার্যকর করেছে। আমি আমার .sln ফাইলের ইতিহাসের দিকে তাকিয়েছিলাম এবং দ্বিতীয় পংক্তিতে # Visual Studio 2010প্রথম লাইনের পড়াটি শেষ হয়েছে ঠিক Format Version 12.00তেমন কোনও পর্যায়ে আমি vs2012 তে আপগ্রেড করেছিলাম তবে পিছনে পিছনে vs2010 এ স্যুইচ করেছি। ওয়েনের মতো সিআই সার্ভারে উইন্ডোজ আপডেট চালানোর পরে এই সমস্যা দেখা দিয়েছে
wal

6

আমারো একই ইস্যু ছিল. উপরে তালিকাভুক্ত সমাধানগুলির মধ্য দিয়ে স্থির সমস্যাটি সৃষ্টি হয়েছে কারণ বিল্ড সার্ভারে ভিজ্যুয়াল স্টুডিও সরঞ্জামগুলির (বিল্ডটুলগুলি) উপযুক্ত সংস্করণ উপলব্ধ নেই। যথাযথভাবে উল্লিখিত হিসাবে, বিল্ডটুলগুলি ইনস্টল করে এটি সমাধান করা যেতে পারে তবে এটি আমার ক্ষেত্রে বিকল্প নয়।

এখানে আরও একটি বিকল্প রয়েছে - নুগেট ব্যবহার করুন

Install-Package MSBuild.Microsoft.VisualStudio.Web.targets -Version 14.0.0.3

প্রারম্ভিক প্রকল্পটি সনাক্ত করুন এবং ভিজুয়াল স্টুডিও ব্যবহারের সংস্করণের উপর ভিত্তি করে ওয়েব.টারাজেটগুলি ইনস্টল করুন। নিম্নলিখিত ফাইলগুলি সংশোধন করা হবে যা প্রয়োজনীয় পরিবর্তনগুলি অন্তর্ভুক্ত করে

প্যাকেজস.কনফিগ:

<package id="MSBuild.Microsoft.VisualStudio.Web.targets" version="14.0.0.3" targetFramework="net45" />

.Csproj এ:

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props" Condition="Exists('..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props')" />

আশাকরি এটা সাহায্য করবে!!! শুভকামনা,

চিয়ার্স,


4
নিখুঁত উত্তর - সিএসপিজেজ ফাইলের সাথে বানরের প্রয়োজনীয়তা বা বিল্ড সার্ভারের চারপাশে জিনিসগুলি অনুলিপি করে। ভিজ্যুয়াল স্টুডিও এবং এমএসবিল্ড 2017 এর একাধিক সংস্করণ জুড়ে কাজ করেছে I've "ম্যানুয়ালি যদিও আমি" ওয়েব অ্যাপ্লিকেশন.টারাজেটস "লাইনটি সরিয়েছি - নুগেট এটি স্বয়ংক্রিয়ভাবে সরিয়ে ফেলেনি।
গেদাস কুটকা

3

হ্যাক, তবে এটি অনুলিপি করে সমাধান করুন: সি: \ প্রোগ্রাম ফাইল (x86) \ এমএসবাইল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়ালস্টুডিও \ v10.0 \ ওয়েব অ্যাপ্লিকেশন *। * থেকে সি: \ প্রোগ্রাম ফাইল (x86) \ এমএসবাইল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়ালস্টুডিও \ v11.0 \ ওয়েব অ্যাপ্লিকেশন *। *


1

আমার টিমসিটি ইনস্টলেশন বা এমএসবিল্ড ইনস্টলেশন বা উত্স কোডটিতে কোনও পরিবর্তন না করেই নভেম্বরের শেষের দিকে আমি এই ত্রুটিটি পেয়েছি। আমার বিল্ড সার্ভারে ভিজ্যুয়াল স্টুডিও এমনকি ইনস্টল করা নেই, এবং ভিএস 2010 থেকে ভিএস ২০১২ এ পরিবর্তনটি কোনও সমস্যা ছাড়াই আগস্টের শেষে করা হয়েছিল।

আমার এমএসবিল্ড সংস্করণটি 4.0.30319.18408, আমার বিল্ড সার্ভারটি টিমসিটি v6.5.3 সহ একটি উইন্ডোজ সার্ভার 2008 আর 2 এসপি 1।

আমি অন্য কোনও বিল্ড সার্ভার থেকে কেবলমাত্র1111 ফোল্ডারটি অনুলিপি করে অনুলিপিটি সমাধান করেছি।

আমার অনুমান যে এটি দুটি উপায়ে ঘটতে পারে:

  1. এমন কিছু আপডেট হয়েছিল যা v11-ফোল্ডারটি মোছার কারণ হয়ে উঠল। এটি নেট .NET বা উইন্ডোজ আপডেট হতে পারে?

  2. এমন কিছু আপডেট হয়েছিল যা আমার টিমসিটি / এমএসবিল্ড কনফিগারেশনটিকে v10 ব্যবহার করে v11 এ পরিবর্তন করেছে এবং v11 এর অস্তিত্ব নেই বলে বিল্ডগুলি কাজ করা বন্ধ করে দেয়।

আমি 3 শে ডিসেম্বর .NET ফ্রেমওয়ার্ক 4.5.1 এ একটি আপডেট পেয়েছি, এটি কারণ হতে পারে?

ব্রিগেডস

জোনাস


0

আমি সম্প্রতি একই সমস্যার সাথে আটকে গিয়েছি। এবং আমার উপসংহারটি হ'ল ভিএস (ভি 10, ভি 11, ভি 12) এর প্রতিটি সংস্করণ বিল্ড ভেরিয়েবলের পথ পরিবর্তন করে,MSBuildBinPath

সুতরাং ভিএস এর সঠিক সংস্করণ উল্লেখ করা কোনও হ্যাক নয়, কারণ আপনার কাছে ফাইলগুলির উপযুক্ত সংস্করণ ইনস্টল নাও থাকতে পারে। সুতরাং ইন্টেদ আপনি আরও ভালভাবে একটি পরামিতি নির্দিষ্ট করতে এবং আপনার মেশিনে বিদ্যমান লক্ষ্যগুলি ব্যবহার করতে চান।

কিছু বিরল ক্ষেত্রে আপনাকে ভিএস এবং ওয়েব ডিপ্লয় প্যাকেজটির নির্দিষ্ট সংস্করণ ইনস্টল করতে হবে। আমার ক্ষেত্রে সমস্যা সমাধানের জন্য কেবল সংস্করণই যথেষ্ট ছিল।


0

আপনি এর মতো ভিজ্যুয়ালস্টুডিও সংস্করণ সম্পত্তি যুক্ত করতে পারেন:

<ItemGroup>
  <ProjectToBuild Include="$(MSBuildProjectDirectory)\..\MySolution.sln">
    <Properties>Configuration=$(BuildConfiguration);WarningLevel=0;VisualStudioVersion=12.0</Properties>
  </ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild"/>

0

আমি কীভাবে এটির সমাধান করবেন তা অনুসন্ধান করতে গিয়ে প্রায় প্রত্যেকেই অনুপস্থিত এমএসবিল্ড ফোল্ডারটি অনুলিপি করার বা কোনও সংস্করণের কিছু এসডিকে ইনস্টল করার পরামর্শ দিয়েছিল।

ভাগ্যক্রমে, আমি ডোনভান ব্রাউনয়ের এই দুর্দান্ত সহায়ক পোস্টটি পেয়েছি: http://donovanbrown.com/post/So-sick-of-Mic MicrosoftWebApplicationtargets-was-not-found-build-erferences !

সংক্ষেপে, ধারণাটি আপনার বিল্ডটি আপনার বিল্ড সংজ্ঞাতে ব্যবহার করা উচিত ভিজ্যুয়াল স্টুডিও সংস্করণটি কনফিগার করতে হবে:

ডান ক্লিক করুন -> "বিল্ড সংজ্ঞা সম্পাদনা করুন ..."

"প্রকস" -> "3. উন্নত" এ যান

এবং এর সাথে "এমএসবিল্ড আর্গুমেন্টস" সেট করুন

/p:VisualStudioVersion=12.0

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.