মাইক্রোসফ্ট.ওয়েব অ্যাপ্লিকেশন.আর্টেজগুলি বিল্ড সার্ভারে পাওয়া যায় নি। আপনার সমাধান কি?


410

বিল্ড সার্ভারে আমার প্রকল্পটি নির্মাণের চেষ্টা আমাকে নিম্নলিখিত ত্রুটিটি দেয়:

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 ইনস্টল করে আমি কয়েক মাস আগে এই সমস্যাটি সমাধান করেছি। তবে এখন আমি স্ক্র্যাচ থেকে একটি নতুন সার্ভার সেটআপ করছি, এবং আমি জানতে চাই যে এই সমস্যাটি সমাধানের জন্য আরও ভাল কোনও সমাধান আছে কিনা।


1
ওয়েব অ্যাপ্লিকেশন প্রকল্পগুলি হ্রাস করা হয়? আমি অবাক হই যে এগুলি তৈরি করার জন্য ভিজুয়াল স্টুডিওর পুরানো সংস্করণগুলির প্রয়োজনীয়তার জন্য যুক্তিটি কী?
ব্রায়ানারি

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


1
<Import Project="..\Packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />পথটি এর পরিবর্তে স্থির করে $(VSToolsPath):<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" />
জিজে

উত্তর:


207

প্রশ্নের শিরোনামের উত্তর দিতে (তবে আপনি যে আউটপুটটি পাচ্ছেন সে সম্পর্কে প্রশ্ন নয়):

আপনার বিল্ড সার্ভারে আপনার ডিভ মেশিন থেকে নিম্নলিখিত ফোল্ডারটি অনুলিপি করা যদি এটি কেবল ওয়েব অ্যাপ্লিকেশন থাকে তবে এটি ঠিক করে

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

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


11
এই VS2012 প্রকল্পের সঙ্গে মি 2 জন্য কাজ করেন, v11.0 করার v10.0 প্রতিস্থাপন পর
DenNukem

2
আমরা কি এর পরিবর্তে এমএসবিল্ড সরঞ্জাম ইনস্টল করতে পারি না? মাইক্রোসফট.ইন-
ইউএস

1
হায়, এমএসবিল্ড সরঞ্জাম ইনস্টল করা ভিজ্যুয়ালস্টুডিও 2013 তে জরিমানা সংকলনকারী প্রকল্পগুলি তৈরি করতে যথেষ্ট নয়
মাইকেল শ

VS2013 ইনস্টল করার পরে এটি কাজ করার জন্য আমাকে ওয়েব ফোল্ডারটি v11.0 এ অনুলিপি করতে হয়েছিল, এটি সেখানে অনুপস্থিত ছিল। ভিএস মধ্যে সংকলন করতে পারে কিন্তু সরাসরি এমএসবিল্ডের মাধ্যমে নয়।
মার্টিন ব্রাউন

9
VS2017 এর জন্য কাজ করেছেন। শুধু সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএসবাইল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়াল স্টুডিও \ ভিএক্সএক্স.0 C সি-তে ওয়েব অ্যাপ্লিকেশন: \ প্রোগ্রাম ফাইল (x86) \ এমএসবাইল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়াল স্টুডিও \ v15.0 \ ওয়েব অ্যাপ্লিকেশনস
জোকাব

95

ভিএস ইনস্টল করা না থাকলে WAPs বিল্ডিং এবং প্রকাশ সমর্থন নয়। এই বলে যে, আপনি যদি সত্যিই ভিএস ইনস্টল করতে না চান তবে আপনাকে নীচের সমস্ত ফাইল অনুলিপি করতে হবে %ProgramFiles32%\MSBuild\Microsoft\

আপনার পাশাপাশি ওয়েব ডিপ্লয়ে সরঞ্জাম ইনস্টল করতে হবে । আমি মনে করি এটি হয়।


4
সায়েদ - নীচের উত্তরটি ড্যান্সোমথিং থেকে দেখুন - আপনার উত্তরটি কি সঠিক? এমনকি ভিএস ২০১০ শেল ইন্টিগ্রেটেড প্যাকেজ ইনস্টল করা আছে, এবং। নেট এসডিকে সঠিকভাবে ওয়েব অ্যাপ্লিকেশন প্রকল্প সমর্থন ইনস্টল করবে না?
আদম

@ সায়েদআইব্রাহিম হাশমি আপনি যদি ম্যানুয়াল ফোল্ডার অনুলিপি করেন তবে আপনাকে কি জিএসি-তে ডিএলএল নিবন্ধন করতে হবে?
TheOptimusPrimus

এবং মাইক্রোসফ্ট.পাখিচেম্পলেটিং.টারজেটসের কী? তাদের ফোল্ডারে আনার জন্য আমাকে কী করতে হবে? সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএস বিল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়ালস্টুডিও \ v10.0
বিকাশকারী

@ ক্লার্ককেন্ট, দুঃখিত আমি টেক্সটেম্প্লেটিং ফাইলটিতে কথা বলতে পারি না। আমি তাদের সাথে পরিচিত নই।
সাedদ ইব্রাহিম হাশমি

77

ইউপিডি: ভিএস ২০১7 অনুসারে বিল্ড সরঞ্জামগুলিতে কাজের চাপ রয়েছে যা এই সমস্যাটিকে পুরোপুরি দূর করে। @ সরদার উত্তর দেখুন ।

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

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

প্রথম লাইনটি হ'ল নতুন ডিরেক্টরি থেকে আসল আমদানি যা সমাধান ডিরেক্টরিটির সাথে সম্পর্কিত। দ্বিতীয়টি হ'ল Condition="false"মূল লাইনের একটি টার্নড-অফ সংস্করণ ( ) যা ভিজ্যুয়াল স্টুডিওটিকে এখনও আপনার প্রকল্পটিকে একটি বৈধ ওয়েব অ্যাপ্লিকেশন প্রকল্প হিসাবে বিবেচনা করতে দেয় (এটি সেই কৌশলটি যা ভিএস ২০১০ এসপি 1 নিজেই করে থাকে)।

ভুলবেন কপি করতে না C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplicationsকরতে BuildTargetsআপনার সোর্স নিয়ন্ত্রণে ফোল্ডার।


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

1
এটি একটি ভাল অ্যাপ্রোচ, তবে এই পরিবর্তনের জন্য প্রতিটি সিএসপোজ ফাইল পরিবর্তন করা দরকার। আপনি সমাধানে নতুন প্রকল্প যুক্ত করলে এটি মুশকিল। অবশ্যই এটি কাস্টম প্রকল্পের টেম্পলেটগুলির সাথে সমাধান করা যেতে পারে, তবে এখনও .. যাইহোক, এই উত্তরটি আমাকে সঠিক দিক নির্দেশ করেছে। ধন্যবাদ!
100r

75

এখনই, 2017 সালে, আপনি এমএসবাইলডুলস সহ ওয়েব অ্যাপ্লিকেশন রেডলিস্টগুলি ইনস্টল করতে পারেন। কেবল এখানে যান এই পৃষ্ঠার যে MSBuild 2017 সরঞ্জামসমূহ ডাউনলোড করবে এবং যখন ইনস্টলেশন ক্লিক Web development build toolsএই লক্ষ্যমাত্রা পাশাপাশি ইনস্টল পেতে: এখানে চিত্র বর্ণনা লিখুন

এটি C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplicationsডিফল্টরূপে অনুপস্থিত লাইব্রেরিগুলি ইনস্টল করতে পরিচালিত করবে


2
আমি বেশ অবাক হয়েছি, উত্স নিয়ন্ত্রণে আমার প্যাকিং সম্পর্কে আমার পাঁচ বছরের পুরানো এবং এটি পরিবর্তনগুলি আজও ভোট পাচ্ছে, যখন বাক্সের উত্তরটি সঠিক নয়।
অ্যান্ড্রি কে

2
@ অ্যান্ড্রি কে আপনার সমাধান আমার প্রস্তাবের চেয়ে কিছুটা আলাদা এবং আমি বুঝতে পারি যে কেন কেউ আমার চেয়ে আপনার পছন্দ করতে পারে ... যদি না এটি কেবল অলসতা হয়; ডি
সোরিয়েডার

2
এটিকে আরও সাধারণ করে তুলতে, ভিজ্যুয়াল স্টুডিওর ভবিষ্যতের সংস্করণগুলির জন্য, আপনি ভিজ্যুয়াল স্টুডিও.সাইক্রোসফট.ডাউনলোডগুলি থেকে সর্বশেষ বিল্ড সরঞ্জামগুলি ডাউনলোড করতে পারেন পৃষ্ঠাটি নীচে স্ক্রোল করুন এবং নীচের দিকে "ভিজ্যুয়াল স্টুডিওগুলির সরঞ্জাম" বিভাগটি প্রসারিত করুন, তারপরে " ভিজ্যুয়াল স্টুডিওর জন্য সরঞ্জামগুলি তৈরি করুন "। বর্তমানে এগুলি ভিএস 2017 এর জন্য তবে আমি ধরে নিয়েছি এটি ভবিষ্যতের সংস্করণগুলির জন্য একই হবে। যাইহোক, আপনার সিআই সরঞ্জাম (যেমন জেনকিনস) এর জন্য এমসবিল্ড.এক্সে পথের প্রয়োজন হলে, ভিএস 2017 এর জন্য এটি সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট ভিজুয়াল স্টুডিও \ 2017 \ বিল্ডটুলস \ এমএসবিল্ড \ 15.0 এ ইনস্টল করা হবে \ বিন \ msbuild.exe।
সাইমন তেউসি

2
বিল্ড-সার্ভার-সামঞ্জস্যপূর্ণ (পড়ুন: কমান্ড লাইন) এটি করার উপায় choco install visualstudio2017-workload-webbuildtools
পল

1
এছাড়াও মনে রাখবেন "ওয়েব ডেভেলপমেন্ট বিল্ড সরঞ্জামগুলি" প্যাকেজ , Microsoft.VisualStudio.Workload.WebBuildTools, কল করে কম্যান্ড লাইনের মাধ্যমে ইনস্টল করা যাবে vs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools--passiveব্যবহারকারী হস্তক্ষেপ প্রয়োজন না যোগ করুন ।
ওয়াই হা লি

70

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


2
এটি ব্যবহার করা অসম্ভব কারণ আমাকে প্রথমে সমাধানটি খুলতে হবে তবে আমি ত্রুটির কারণে পারছি না।
বিকাশকারী

যদি সমাধানে একাধিক প্রকল্প থাকে তবে আপনার এখনও 1. সমাধানটি সক্ষম হওয়া উচিত - উপেক্ষা করুন যে ওয়েব প্রকল্পটি লোড হয় না; ২. নুগেট রেফারেন্স যুক্ত করুন; ৩. তারপরে বর্ণিত একটি পদ্ধতির নিন; আপনি প্রকল্প ফাইলটি ম্যানুয়ালি সম্পাদনা করতে পারবেন বা টিমসিটিতে env.VSToolsPath ভেরিয়েবলকে ওভাররাইড করতে পারেন।
দামন

1
এটি কি আনুষ্ঠানিকভাবে প্রকাশিত এমএস নুগেট প্যাকেজ, নাকি কেউ এটি তৈরি করেছেন?
সাইমন_উইভার

দুর্দান্ত সমাধান - ভিএস এর বিভিন্ন সংস্করণের জন্য কাজ করে আমি সম্পাদনা করতে .csproj ফাইল, YMMV প্রয়োজন
Jonno থেকে

39
এটি আনুষ্ঠানিকভাবে প্রকাশিত মাইক্রোসফ্ট নুগেট প্যাকেজ নয়। আমি এটি জানি কারণ আমি এটি তৈরি করেছি।
মাক

54

এখানে এই পোস্টের উপর ভিত্তি করে আপনি কেবল মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 2010 শেল (ইন্টিগ্রেটেড) পুনরায় বিতরণযোগ্য প্যাকেজ ডাউনলোড করতে পারেন এবং লক্ষ্যগুলি ইনস্টল করা আছে।

এটি বিল্ড সার্ভারে ভিজ্যুয়াল স্টুডিও ইনস্টল করার প্রয়োজনীয়তা এড়ায়।

আমি এখনই এটি ব্যবহার করে দেখেছি এবং এটি কার্যকর কিনা তা যাচাই করতে পারি:

আগে:

ত্রুটি এমএসবি 4019: আমদানি করা প্রকল্প "সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএসবাইল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়াল স্টুডিও \ v10.0 \ ওয়েব অ্যাপ্লিকেশনস \ মাইক্রোসফট.ওয়েব অ্যাপ্লিকেশন.টারাজেটস" পাওয়া যায় নি। নিশ্চিত করুন যে ঘোষণার পথেটি সঠিক এবং ফাইলটি ডিস্কে রয়েছে।

ইনস্টলের পরে:

[সঠিকভাবে তৈরি করে]

এটি একটি বিল্ড সার্ভারে ভিজ্যুয়াল স্টুডিও ইনস্টল করার চেয়ে অবশ্যই আরও ভাল সমাধান solution


7
এটি হ'ল সবচেয়ে সহজ এবং সহজ সমাধান আইএমও। আমি ভিএস 2013 ব্যবহার করছি, এবং আমি দেখতে পেয়েছি যে ভিজ্যুয়াল স্টুডিও 2013 শেল (বিচ্ছিন্ন) পুনরায় বিতরণযোগ্য যা কাজ করেছিল (বিচ্ছিন্নতার উপর নির্ভরতার কারণে ইন্টিগ্রেটেডটি ইনস্টল করতে পারে না)।
ম্যাট মিলার

@ ম্যাথহেস্কেলটন - বিল্ড সার্ভারের অর্থ কী ?
মোহাম্মদ জমির

2
@ বাউটিমিমন - একটি বিল্ড সার্ভার এমন একটি সার্ভার যা সফ্টওয়্যারটির নিরবিচ্ছিন্ন ইন্টিগ্রেশন (সিআই) তৈরি করে বা নিয়ন্ত্রণ করে। উদাহরণ: জেনকিন্স, TeamCity, CruiseControl, ইত্যাদি
ম্যাথু Skelton

3
দুর্ভাগ্যক্রমে ভিএস ভি 14.0 এর সাথে প্যাকেজটি ইনস্টল করার উপায়টি নুগেটের মাধ্যমে হয় তবে যেহেতু আমার সমস্যাটি ছিল যে বিল্ড সার্ভারটিতে ভিএস ইনস্টল করা হয়নি (কেবলমাত্র এমএসবিল্ড), প্যাকেজটি ইনস্টল করা অসম্ভব প্রমাণিত হয়েছিল। আমি আমার পিসি থেকে সার্ভারে ফোল্ডারটি অনুলিপি করার আগে পাওয়ারশেল এবং নুগেটের বিভিন্ন অর্ধযুক্ত ব্যাক ইনস্টলমেন্টের সাথে ঘন্টার পর ঘন্টা কাটিয়েছি।
pasx

1
@ পাসেক্স যদি ত্রুটি বার্তায় "v14" থাকে তবে আপনি তার পরিবর্তে ভিজ্যুয়াল স্টুডিও 2015 বিচ্ছিন্ন শেলটি ইনস্টল করতে পারেন, আমার জন্য কাজ করেছেন - ভিজ্যুয়াল স্টুডিও এক্সটেনসিবিলিটি। ডাউনলোড / ভিএস- শেলস ("ইউআরএল ডাউনলোড করুন" এর অধীনে; একটি বাধ্যতামূলক সমীক্ষা আছে, উপভোগ করুন!)
ডানক

38

সর্বশেষ উইন্ডোজ SDK এর সাহায্যে, উপরে উল্লিখিত হিসাবে ছাড়াও, "Microsoft ভিসুয়াল স্টুডিও 2010 শেল (একত্রিত) পুনরায় বিতরণ প্যাকেজ" Microsoft.WebApplication.targets এবং "Microsoft ভিসুয়াল স্টুডিও টিম সিস্টেম 2008 ডাটাবেস সংস্করণ জিডিআর R2 হলো" Microsoft.Data.Schema জন্য .SqlTasks.targets ভিজ্যুয়াল স্টুডিও 2010 ইনস্টল করার প্রয়োজনীয়তা হ্রাস করা উচিত। তবে, ভিএস 2010 ইনস্টল করার ফলে সম্ভবত ডাউনলোডের ক্ষেত্রে সামগ্রিকভাবে কম এবং শেষ পর্যন্ত কম কাজ হতে পারে।


এফওয়াইআই - আপনি যদি বিকাশ সার্ভার ডাব্লু / আউট পুরো ব্লোন্ড ভিএস ইনস্টল করে স্কিল প্রকল্পগুলি তৈরির চেষ্টা করছেন, আপনি এখানে উল্লিখিত টিম সিস্টেম ২০০৮ ডাটাবেস সংস্করণ জিডিআর আর 2 ইনস্টলারটি দিয়ে ভাগ্যের বাইরে রয়েছেন। এটির পূর্ব-প্রতিক্রিয়াগুলি হ'ল ভিজ্যুয়াল স্টুডিও টিম সিস্টেম ২০০৮ ডাটাবেস সংস্করণ এসপি 1 (ইংরেজি) বা ভিজ্যুয়াল স্টুডিও টিম সিস্টেম ২০০৮ স্যুট এসপি 1 (ইংরেজি) এবং ভিজ্যুয়াল স্টুডিও ২০০৮ সার্ভিস প্যাক ১। এটি মনে হয় আপনি নেট স্ক্র্যাওয়ারের বাইরে SqlServer.targets অনুলিপি করতে পারবেন \ ভি 4 ডিরেক্টরি এবং টিমডাটা এমএসবিল্ড লক্ষ্যবস্তুগুলিকে \ প্রোগ্রাম ফাইলগুলি files এমএসবিল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়াল স্টুডিও \ v10.0 out এর মধ্যে ফাইলগুলি তৈরি করবে এবং আপনার সিএসপ্রোজগুলি তৈরি করবে।
ইথান জে ব্রাউন

এটি অবশ্যই প্রাকৃতিক সমাধান নয়, তবে আমার কাছে সময় সর্বাধিক গুরুত্বপূর্ণ। এমএসবিল্ড ডিরেক্টরিটি কেবল অনুলিপি করা আমার পক্ষে আরও সমস্যার সমাধান করে।

21
এটি একটি সত্যই গুরুত্বপূর্ণ উত্তর কারণ যদি আপনি কোনও ক্লায়েন্টের জন্য বিল্ড সার্ভার সেটআপ করতে একজন স্বতন্ত্র বিকাশকারী হন তবে আপনি চান না যে ক্লায়েন্টটি তাদের সফ্টওয়্যারটি তৈরি করতে সক্ষম হওয়ার জন্য একটি ভিজ্যুয়াল স্টুডিও লাইসেন্স বজায় রাখতে হবে।
thelsdj

আমার তৈরি করতে আমার কেবলমাত্র VS2010 শেল ইন্টিগ্রেটেড প্যাকেজ এবং এনটলিব 5 প্রয়োজন। টিম সিস্টেমের দরকার নেই।
রবিন উইনস্লো

1
ভিএস ২০১০ শেলটি সেই লিঙ্কটিতে আর উপলভ্য নয়, "আপনি যে সংস্থানটি সন্ধান করছেন তা সরিয়ে ফেলা হয়েছে, এর নাম পরিবর্তন করা হয়েছে বা অস্থায়ীভাবে অনুপলব্ধ।"
ক্রিশ্চিয়ানপ

22

নিউগেটের মাধ্যমে নির্ভরতা যুক্ত করুন এবং একটি বিল্ড প্যারামিটার সেট করুন

লক্ষ্য: বিল্ড এজেন্টগুলির জন্য কোনও পরিবর্তন / ইনস্টলসের প্রয়োজন নেই

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

যে কারণে আমি এটির মতো আইটেমগুলির সাথে পূর্ব-কনফিগার না করেই নতুন বিল্ড এজেন্ট যুক্ত করতে সক্ষম হতে চাই।

  1. ভিজ্যুয়াল স্টুডিও সহ একটি মেশিনে, সমাধানটি খুলুন; ওয়েব প্রকল্প ব্যর্থ হয় তা উপেক্ষা করুন।
  2. ন্যুগেট প্যাকেজ ম্যানেজারে, এমএসবিল্ড.মাইক্রোসফট.ভিজুয়ালস্টুডিও.ওয়েব.টারজেটস যুক্ত করুন , যেমন লয়েড উল্লেখ করেছেন।
  3. এটি বাইনারিগুলিকে সমাধান করবে [solution]\packages\MSBuild.Microsoft.VisualStudio.Web.targets.nn.n.n.n\tools\VSToolsPath\
    1. আপনি এগুলি একটি রেফারেন্স ফোল্ডারে অনুলিপি করতে পারেন এবং প্রতিশ্রুতিবদ্ধ করতে পারেন,
    2. অথবা তারা যেখানে রয়েছে সেখানে কেবল তাদের ব্যবহার করুন। আমি এটি বেছে নিয়েছি, তবে আমি পরে সংস্করণ নম্বরটি মোকাবেলা করতে যাচ্ছি।

সংস্করণ 7-এ, আমি নিম্নলিখিতগুলি করেছি। এটি সম্ভবত প্রয়োজন হয় নি, এবং মন্তব্যের ভিত্তিতে অবশ্যই এখনই প্রয়োজন হয় না। নীচের মন্তব্য দেখুন দয়া করে।

  1. এরপরে, আপনার টিমসিটি বিল্ড কনফিগারেশনে, এর জন্য একটি বিল্ড প্যারামেন্টার যুক্ত করুন env.VSToolsPathএবং এটি ভিএসটিউলসপথ ফোল্ডারে সেট করুন; আমি ব্যবহার করতাম..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath

8
পদক্ষেপ 4 করার দরকার নেই, যদি আপনি কেবল এই প্রকল্পের সাথে <প্রকল্প> উপাদানটি প্রতিস্থাপন করেন:<Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
নট করুন

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত ... এবং পয়েন্ট 4 মুছে ফেলা উচিত।
ইজজি

@ ইজি ধন্যবাদ, আপনি কি পরিবর্তে নোট ইঙ্গিত হিসাবে মন্তব্য করেছেন? আমি কয়েক বছরে টিসি ব্যবহার করি নি, সংস্করণ i আইরিচ।
দামন

@ ড্যামন আমি জিনকিন্স ব্যবহার করছি, টিসি নয়, যাতে আপনার শেষ পয়েন্টটির দরকার পড়েনি বলেই হতে পারে।
ইজজি

21

যখন বিল্ড / সি আই সার্ভারে বিল্ডিং, আমদানি বন্ধ Microsoft.WebApplication.targetsনির্দিষ্ট করে পুরাপুরি /p:VSToolsPath=''। এটি মূলত নিম্নলিখিত লাইনের শর্তটিকে মিথ্যা করে দেবে:

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


এটি টিমসিটিতে এটি করা হয়েছে:

এখানে চিত্র বর্ণনা লিখুন


আপনি যদি ভিজ্যুয়াল স্টুডিওর "প্রকাশনা" প্রক্রিয়াটি ব্যবহার করে থাকেন তবে লক্ষ্যগুলি তৈরি করা প্রয়োজনীয়। এটি করার ফলে সংকলনটি এগিয়ে যেতে এবং সম্পূর্ণ হতে দেয় তবে এটি অসম্পূর্ণ হতে পারে।
স্টারলোক ২16

14

যদি আপনি ভিজ্যুয়াল স্টুডিও 2012-এ স্থানান্তরিত হন তবে তারপরে * .csproj প্রকল্প ফাইলটি খুলুন।
এবং 'প্রকল্প' ট্যাগের সরঞ্জামদর্শন উপাদানটি পরীক্ষা করে দেখুন।

এর মান 4.0 থেকে 12.0 এ পরিবর্তন করুন

  • থেকে

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" ...
  • প্রতি

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="12.0" ...

অথবা আপনি যদি এমসবিল্ড দিয়ে তৈরি করেন তবে কেবল ভিজ্যুয়াল স্টুডিওভিশন সম্পত্তিটি নির্দিষ্ট করুন

মিসবিল্ড / পি: ভিজ্যুয়াল স্টুডিওভিশন=12.0

সমাধান উত্স


4
টিএফএস ২০১৩ বিল্ড সংজ্ঞা (ভিজ্যুয়াল স্টুডিও 2013-এ তৈরি একটি সমাধানের জন্য) টিএসএফএস 2013 বিল্ড সংজ্ঞায় এমএসবাইল্ড আর্গুমেন্টগুলিতে /p:VisualStudioVersion=1212 যুক্ত করা আমার পক্ষে কাজ করেছে। কোনও কারণে এটি কোনও প্যারামিটার ছাড়াই কোনও v11.0 ফোল্ডারে ফাইলগুলি সন্ধান করবে।
সাচ্চা কে

3
এই সমাধানটি আমার পক্ষে কাজ করেছিল, আমি সেই আদেশটি ব্যবহার করেছি:msbuild /p:Platform=x86 /p:VisualStudioVersion=12.0
E.Meir

9

মনে হচ্ছে এমএসবিল্ডের নতুন সংস্করণটি মাইক্রোসফ্ট.ওয়েব অ্যাপ্লিকেশন.টারাজেটসের সাথে প্রেরণ করে না। ঠিক করার জন্য আপনার সিএসপোজ ফাইলটি তত আপডেট করতে হবে:

1) ওয়েব অ্যাপ্লিকেশন সিএসপিজেজ সম্পাদনা করুন (ডান ক্লিক করুন)। বিল্ড সরঞ্জামগুলি সম্পর্কিত নীচের দিকে সিএসপিজেজে বিভাগটি সন্ধান করুন। এটি দেখতে যেমন দেখতে হবে।

<PropertyGroup>  
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
</PropertyGroup>  
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />  
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />  
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />  

2) আপনার ভিজ্যুয়াল স্টুডিও ভার্সন ট্যাগের নীচে একটি ভিএসটিউলসপথ লাইন যুক্ত করা দরকার যাতে এটির মতো দেখতে লাগে

<PropertyGroup>  
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <!--Add the below line to fix the project loading in VS 2017 -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  <!--End -->
</PropertyGroup>  
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />  
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />  
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />  

রেফারেন্স লিংক: https://alastaircrabtree.com/cannot-open-vs-2015-web-project-in-vs-2017/


8

এই আপনার প্রয়োজন হয়। মাত্র 103 এমবি। সবকিছু ইনস্টল করবেন না

এখানে চিত্র বর্ণনা লিখুন


আমি কীভাবে কিছু ইনস্টল না করে সেই ফর্মটিতে একটি চেকমার্ক রাখতে পারি?
খ্রিস্টান

5

আমি এমএস সংযোগে এটি পেয়েছি :

হ্যাঁ, ডাটাবেস প্রকল্পগুলি তৈরি করতে আপনাকে আপনার বিল্ড মেশিনে ভিজ্যুয়াল স্টুডিও 2010 ইনস্টল করতে হবে। এটি করার জন্য ভিজ্যুয়াল স্টুডিওর অতিরিক্ত লাইসেন্সের প্রয়োজন হয় না।

সুতরাং, এখনই আমার কাছে এটিই একমাত্র বিকল্প।


2
লিঙ্কটি নষ্ট হয়ে গেছে বলে মনে হচ্ছে।
বিভ্রান্তি

2

আমার সমাধানটি এখানে বেশ কয়েকটি উত্তরের মিশ্রণ।

আমি বিল্ড সার্ভারটি পরীক্ষা করে দেখেছি এবং উইন্ডোজ 7 / নেট 4.0 এসডিকে ইতিমধ্যে ইনস্টল করা আছে, তাই আমি পথটি খুঁজে পেয়েছি:

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

তবে, এই লাইনে:

<আমদানি প্রকল্প = "MS (এমএসবিল্ড এক্সটেনশনপথ) \ মাইক্রোসফ্ট \ ভিজ্যুয়ালস্টুডিও \ v9.0 \ ওয়েব অ্যাপ্লিকেশনস \ মাইক্রোসফ্ট.ওয়েব অ্যাপ্লিকেশন.এটারজেটস" />

$ (MSBuildExtensionsPath) বিস্তৃতি সি: \ প্রোগ্রাম ফাইল \ MSBuild যা পাথ নেই।

সুতরাং আমি যা করেছি তা হ'ল এই আদেশটি ব্যবহার করে একটি সিমিলিংক তৈরি করা:

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

এইভাবে $ (এমএসবিল্ড এক্সটেনশনসপথ) একটি বৈধ পথে প্রসারিত হয় এবং অ্যাপটিতে নিজেই কোনও পরিবর্তনের প্রয়োজন হয় না, কেবল বিল্ড সার্ভারে (সম্ভবত কেউ প্রতিটি বিল্ড সিমলিংক তৈরি করতে পারে, যাতে এই পদক্ষেপটি হারিয়ে না যায় এবং এটি "নথিভুক্ত" ")।


2

আমি যোগ করে এটি ঠিক
/p:VCTargetsPath="C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120"

মধ্যে
Build > Build a Visual Studio project or solution using MSBuild > Command Line Arguments


2

আমি বেশ কয়েকটি সমাধানের চেষ্টা করেছি, তবে শেষ পর্যন্ত এই উত্তরটি আমার পক্ষে কাজ করেছে: https://stackoverflow.com/a/19826448/431522

এটি মূলত ভিজুয়াল স্টুডিও ডিরেক্টরিটির পরিবর্তে এমএসবিল্ড ডিরেক্টরি থেকে এমএসবিল্ডকে কল করে।

স্ক্রিপ্টগুলি কোড করা সহজ করার জন্য আমি আমার পথে এমএসবিল্ড ডিরেক্টরিটি যুক্ত করেছি।


2

যে কেউ এখানে ভিজ্যুয়াল স্টুডিও 2017 এর জন্য আসবে I আমাকে এমএসবুল্ড সরঞ্জাম ইনস্টল করতে হয়েছিল তবে তবুও ত্রুটি ছিল।

আমি একই ফোল্ডারে v14.0ফোল্ডারটি অনুলিপি করে সমস্যাটি সমাধান করতে সক্ষম হয়েছি এবং এটি সমস্ত ত্রুটি সমাধান করেছে। সুতরাং এখন আমার ফোল্ডারের কাঠামো নীচের মত দেখাচ্ছে যেখানে উভয় ফোল্ডারে একই সামগ্রী রয়েছে।C:\Program Files (x86)\MSBuild\Microsoft\VisualStudiov15.0

এখানে চিত্র বর্ণনা লিখুন


2

আপনি যদি বিল্ড সার্ভারের ক্ষেত্রে এমএসবাইল ব্যবহার করে থাকেন তবে আমার জন্য যা কাজ করেছে তা হ'ল:

নিম্নলিখিত পরিবর্তন করুন:

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

প্রতি:

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

আমার এমএসবিল্ড কমান্ডটি হ'ল: *"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" solution.sln /p:Configuration=Debug /p:Platform="Any CPU"*

আশা করি এটি কাউকে সাহায্য করবে।


উল্লেখ করার জন্য, আপত্তিজনক .csproj, vbproj ফাইলগুলিতে পরিবর্তনগুলি করা উচিত।
কলিন কিউ

0

যদি আপনি ভিএসটিএস ব্যবহার করে কোনও প্রকল্প স্থাপন করার চেষ্টা করছেন, তবে সমস্যাটি "হোস্টেড ভিএস ২০১7" (বা 18 ইত্যাদি) এর পরিবর্তে "হোস্টেড উইন্ডোজ কনটেইনার" বিকল্পটি চেক করার সাথে সংযুক্ত থাকতে পারে:

এখানে চিত্র বর্ণনা লিখুন


0
  • মাইক্রোসফ্ট থেকে এমএসবিল্ড সরঞ্জাম ইনস্টল করার পরে, পরিবেশ পরিবর্তনশীলে এমএসবিল্ড পাথটি সংজ্ঞায়িত করুন, যাতে এটি যে কোনও পথ থেকে চালানো যায়।
  • নোটপ্যাড ++ এর মতো কোনও নোটপ্যাড সম্পাদকে .csproj ফাইলটি সম্পাদনা করুন এবং মন্তব্য করুন
  • নিম্নলিখিত উপাদানগুলির জন্য পরীক্ষা করুন ->
    • আপনি একবারে আমদানি ব্যবহার করেছেন তা নিশ্চিত করুন, যে কোনও কাজই বেছে নিন।
    • ড্রাইভটিতে আপনার নীচের ফোল্ডারটি বিদ্যমান রয়েছে তা নিশ্চিত করুন, "সি: \ প্রোগ্রাম ফাইল (x86) \ এমএসবাইল্ড \ মাইক্রোসফ্ট \ ভিজ্যুয়ালস্টুডিও \ v14.0" বা যে কোনও সংস্করণ এমএসবাইল্ড দ্বারা "সি: \ প্রোগ্রাম ফাইলগুলি (x86) এ রেফারেন্স করা হয়েছে \ MSBuild \ মাইক্রোসফট \ VisualStudio \ v14.0 \ WebApplications \ Microsoft.WebApplication.targets "
    • কমান্ড প্রম্পট থেকে, পরীক্ষা করতে নিম্নলিখিত কমান্ডটি চালান

সি:> মিসবিল্ড "সি: ot ডটনেটসিআইএসএলএন" / পি: কনফিগারেশন = রিলিজ / পি: UseWPP_CopyWeb অ্যাপ্লিকেশন = সত্য / পি: পাইপলাইনডিপেন্ডসঅনবিল্ড = মিথ্যা


0

আমি এই সমস্যাটি একটি সিআই / সিডি পাইপলাইনে একটি এসকিউএল সার্ভার প্রকল্প তৈরি করছিলাম। আসলে, আমি স্থানীয়ভাবে এটিও করছিলাম এবং এটি সমাধান করার ব্যবস্থাও করি নি।

আমার জন্য যা কাজ করেছে তা হ'ল একটি এমএসবিল্ড এসডিকে ব্যবহার করা .dacpac, যা এসকিউএল স্ক্রিপ্টগুলির একটি সেট থেকে এসকিউএল সার্ভার ডেটা-টায়ার অ্যাপ্লিকেশন প্যাকেজ ( ) তৈরি করতে সক্ষম , যা একটি নতুন প্রকল্প তৈরি করে বোঝায়। তবে আমি এসকিউএল সার্ভার প্রকল্পটি রাখতে চেয়েছিলাম, যাতে আমি ভিজ্যুয়াল স্টুডিওতে এসকিউএল সার্ভার অবজেক্ট এক্সপ্লোরারের মাধ্যমে এটি লাইভ ডাটাবেসের সাথে সংযুক্ত করতে পারি। এটি চালিয়ে যাওয়ার জন্য আমি নিম্নলিখিত পদক্ষেপ নিয়েছি:

  1. .sqlডাটাবেস স্ক্রিপ্টগুলির সাথে আমার এসকিউএল সার্ভার প্রকল্পটি রেখেছি ।
  2. উপরের লিঙ্কের গাইডলাইন অনুযায়ী লক্ষ্য কাঠামোটি .NET স্ট্যান্ডার্ড 2.0 ছিল কিনা তা নিশ্চিত করে একটি নেট নেট স্ট্যান্ডার্ড ২.০ শ্রেণিক পাঠাগার প্রকল্প তৈরি করা হয়েছে।
  3. নিম্নলিখিত বিষয়বস্তু সেট করুন .csproj:

    <?xml version="1.0" encoding="utf-8"?>
    <Project Sdk="MSBuild.Sdk.SqlProj/1.0.0">
      <PropertyGroup>
        <SqlServerVersion>Sql140</SqlServerVersion>
        <TargetFramework>netstandard2.0</TargetFramework>
      </PropertyGroup>
    </Project>
  4. আমি এসকিউএল 140 টি এসকিউএল সার্ভার সংস্করণ হিসাবে বেছে নিয়েছি কারণ আমি এসকিউএল সার্ভার 2019 ব্যবহার করছি you আপনি যে সংস্করণটি ব্যবহার করছেন তাতে ম্যাপিংয়ের জন্য এই উত্তরটি দেখুন ।

  5. বিল্ডে থাকা এসকিউএল সার্ভার প্রকল্পটিকে উপেক্ষা করুন, যাতে এটি স্থানীয়ভাবে বিরতি বন্ধ করে দেয় (এটি ভিজ্যুয়াল স্টুডিওতে তৈরি করে তবে এটি ভিএস কোডে ব্যর্থ হয়)।

  6. এখন আমাদের কেবল এটি তৈরি করতে হবে যে .sqlফাইলগুলি এসডিকে প্রকল্পের অভ্যন্তরে রয়েছে তা নিশ্চিত করতে হবে । আমি সিআই / সিডি পাইপলাইনে একটি সাধারণ পাওয়ারশেল রুটিন দিয়ে এটি অর্জন করেছি যা এসকিউএল সার্ভার প্রকল্প থেকে এসডিকে প্রকল্পে ফাইলগুলি অনুলিপি করবে:

অনুলিপি-আইটেম -পথ "Path.To.The.Dat database.Project \ dbo \ Tables \ *" - নির্ধারণ (নতুন-আইটেম -নাম "dbo \ টেবিল" -Type ডিরেক্টরি -পথ "পথ .To.The.DatabaseSDK.Project \ ")

পিএস: ফাইলগুলি মূলত অথবা কোনও ফোল্ডারে এসডিকে প্রকল্পে শারীরিকভাবে থাকতে হবে, সুতরাং .sdkএসকিউএল সার্ভার প্রকল্পের ফাইলগুলির লিঙ্কগুলি কাজ করবে না। তত্ত্বগতভাবে, প্রাক-বিল্ড শর্ত দিয়ে এই ফাইলগুলি অনুলিপি করা সম্ভব হওয়া উচিত, তবে কিছু অস্পষ্ট কারণে, এটি আমার পক্ষে কাজ করছে না। আমি .sqlএসডিকে প্রকল্পে ফাইলগুলি রাখার এবং এসকিউএল সার্ভার প্রকল্পের সাথে তাদের লিঙ্ক করার চেষ্টা করেছি, তবে এটি সহজেই এসকিউএল সার্ভার অবজেক্ট এক্সপ্লোরারের সাথে লিঙ্কটি ভেঙে ফেলবে, তাই আমি এটিকেও ফেলে দেওয়ার সিদ্ধান্ত নিয়েছি।

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