এমএসবিল্ডকে সি # 6 এ কীভাবে আপগ্রেড করবেন?


106

আমি আমার প্রকল্পে সি # 6 ব্যবহার করতে চাই (নাল প্রচার, অন্যান্য বৈশিষ্ট্য)।

আমি আমার পিসিতে ভিএস 2015 ইনস্টল করেছি এবং এটি দুর্দান্তভাবে কাজ করে এবং পরীক্ষার কোড তৈরি করে

var user = new SingleUserModel(); //all model fields are null
var test = user.User?.Avatar?["blah"];

কিন্তু যখন আমি আমার প্রকল্পটি রেপোর দিকে ঠেলে দেই এবং সিআই এটি নির্মাণ শুরু করে, অসমর্থিত কারণে ব্যর্থ হয় ?

আমি সিআই সার্ভারেও ভিএস ২০১৫ ইনস্টল করেছি কিন্তু দেখেছি এটি এটি ব্যবহার করে না। আমি কি করতে পারি?

সিআই - ক্রুজকন্ট্রোল। নেট সাথে তৈরি করে C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe


3
নিচে দেওয়া লিঙ্ক থেকে ডাউনলোড করার মাইক্রোসফট বিল্ড সরঞ্জামসমূহ 2015 কারো কাছে, তারা বাগ আছে যা একটি পুরানো (প্রাক-আপডেট) সংস্করণের জন্য হয় ... আমি একটি লিঙ্ক পাওয়া এখানে 2015 এ আপডেট করুন 3.
bdrajer

উত্তর:


164

আপনি কল করেছেন তা নিশ্চিত করুন:

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

এটি এমস বিল্ডের সংস্করণ যা ভিজ্যুয়াল স্টুডিও 2015 এর সাথে জাহাজে পাঠায় এবং সি # সংকলককে এটি বোঝে calls আপনি ভিসুয়াল স্টুডিও 2015 এর যে কোনও সংস্করণ ইনস্টল করে অথবা একা একা মাইক্রোসফ্ট বিল্ড সরঞ্জাম 2015 ইনস্টল করে আপনার সিস্টেমে এমস বিল্ডের এই সংস্করণটি পেতে পারেন ।

নিম্নলিখিত নিউগেট প্যাকেজটিতে একটি রেফারেন্স যুক্ত করাও নতুন সংকলকটির ব্যবহারকে বাধ্য করবে:

Install-Package Microsoft.Net.Compilers

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

ভিজুয়াল স্টুডিও 2015 এর জন্য:

Install-Package Microsoft.Net.Compilers -Version 1.0.0

2
রিউজিআইটি বা যেহেতু এতগুলি বাগ রয়েছে তার পর থেকে এই সমস্যার কারণগুলি সম্পর্কে কোনও উদ্বেগ রয়েছে?
মাসলো ২

3
এ সম্পর্কে কেবল একটি নোট, আপনি যদি নিজের প্যাথ এনভিভ ভেরিয়েবল আপডেট করে থাকেন তবে পুরানো অবস্থানটি সরিয়ে ফেলতে ভুলবেন না (উদা: সি: \ উইন্ডোজ \ মাইক্রোসফট.নাইট \ ফ্রেমওয়ার্ক \ v4.0.30319) কারণ এটি "এমএসবিল্ড নির্বাহের সময় কল করতে পারে" "
সেন্টিমিডি

2
আমিও nuget প্যাকেজ Microsoft.Net.Compilers ইনস্টল করার ছিল: দেখুন stackoverflow.com/a/36774876/584714
DrGriff

2
প্রতিটি প্রকল্পে নুগেট প্যাকেজ ইনস্টল না করে কী এর কোনও সমাধান আছে? আমার 100 টি প্রকল্প রয়েছে যা এটির প্রয়োজন হবে এবং এটি আমার কাছে অপ্রয়োজনীয় বলে মনে হচ্ছে। কোথাও বাগের মতো মনে হচ্ছে।
কোল ডাব্লু

2
@ কোলডাব্লু প্রশ্নের কোনও উত্তর কি আছে?
জিনভ

61

আপনি যাইহোক আপনার বিল্ড সার্ভারে ভিএস2015 এর পরিবর্তে "মাইক্রোসফ্ট বিল্ড সরঞ্জাম 2015" ইনস্টল করতে পারেন।

https://www.microsoft.com/en-us/download/details.aspx?id=48159

এটি এমএসবিল্ডকে একই পথে ইনস্টল করে:

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

আইএমএইচও-র একটি কারণ রয়েছে, প্রশ্নটি কেন সেই পরিবেশের সাথে সম্পর্কিত। প্রশ্নের একটি মন্তব্য করা ভাল।
জোগো

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

একবার আপনি "মাইক্রোসফ্ট বিল্ড টুলস 2015" (বা "মাইক্রোসফ্ট বিল্ড টুলস 2017") ইনস্টল করার পরে আপনি সমাধানটি তৈরি করতে ভিজুয়াল স্টুডিওটির কোন সংস্করণ ব্যবহার করতে চান তা নিয়ন্ত্রণ করতে পারেন: এমএসবাইল্ড.এক্স / ট: বিল্ড ইয়োর সলিউশন.স্লেন / পি : ভিজ্যুয়াল স্টুডিওভিশন = 14.0 [এটি ভিএস2010 এর জন্য 10.0 এ সেট করুন, ভিএস ২০১৫ এর জন্য ১৪.০ এবং ভিএস ২০১ for-এর জন্য 15.0 তে]
অ্যালেক্স সানসাউ

মাইক্রোসফ্ট বিল্ড টুলস 2015 আপডেট 3 ডাউনলোড এবং ইনস্টল করতে , পুরানো ভিএস ডাউনলোডগুলি দেখুন এবং Redistributables and Build Toolsবিভাগে যান go
আরবিটি

12

আপনার সম্ভবত ইতিমধ্যে এটি কাজ করছে তবে এটি ভবিষ্যতে অন্য কাউকে সহায়তা করতে পারে। আমি সম্প্রতি এই প্রশ্নটি পেরিয়ে এসেছি এবং এটি আমাকে সঠিক দিকে এগিয়ে নিয়ে গেছে এবং শেষ পর্যন্ত একটি সমাধানের দিকে নিয়ে যায়।

এর আর একটি সম্ভাব্য সমাধান হ'ল এমএসবিল্ড সংস্করণটিকে টার্গেট করতে আপনার প্রকল্প ফাইলগুলি ম্যানুয়ালি আপডেট করে আপনি চান যে আপনার প্রকল্পগুলি তৈরি করা হোক।

আমি সম্প্রতি একটি টিমসিটি বিল্ড সার্ভার আপডেটের মধ্য দিয়ে গিয়েছি এবং এরই মধ্যে আমি মাইক্রোসফ্ট বিল্ড সরঞ্জাম 2015 ইনস্টল করেছি। আমি ভেবেছিলাম বিল্ড সার্ভারে আমার সবকিছু ঠিক আছে, আমি সি # 6.0 লক্ষ্য করে আমার সমাধান পেয়েছি, এবং আমার প্রতিটি প্রকল্প। নেট 4.6.1 লক্ষ্য করে ছিল। আপনার মত, সি # 6.0-নির্দিষ্ট কোড সহ সমস্ত কিছু আমার স্থানীয় পরিবেশে ঠিক সূক্ষ্মভাবে নির্মিত, তবে আমার টিমসিটি বিল্ড সার্ভার এগুলির কোনও পছন্দ করেনি।

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

আমি যেটা করতে পেরেছিলাম তা হল শেষ পর্যন্ত আমার সমাধানের প্রতিটি প্রকল্পের ফাইলটি নির্দিষ্ট করে এমএসবিল্ড সংস্করণকে লক্ষ্য করে যাতে সি # 6.0 কোড হ্যান্ডেল করতে পারে target আমার প্রতিটি প্রকল্পের ফাইলগুলিতে আমি নিম্নলিখিত লাইনের অনুরূপ একটি লাইন পেয়েছি:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

সেই লাইনের মূল উপাদানটি এর সরঞ্জামসংশ্লিষ্ট অংশ হিসাবে রয়েছে। নিম্নলিখিতটি পড়তে আমি কেবল আমার প্রকল্প ফাইলগুলিতে এই লাইনটি পরিবর্তন করেছি:

<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

এখানে পার্থক্যটি হ'ল আমি সংস্করণ ১৪ টি লক্ষ্যবস্তু করেছিলাম, ৪ নয় Version সংস্করণ ১৪.০ বিল্ড সরঞ্জামগুলির সাথে মিল 2015 এই পরিবর্তন করে আমার টিমসিটি বিল্ড সার্ভারটি সঠিক এমএসবিল্ড সংস্করণ ব্যবহার করেছে এবং আমার সি # 6.0 কোডটি তৈরি করতে সক্ষম হয়েছিল।

আমি এটিকে 4.6.1 ব্যবহার করার জন্য এর টার্গেটফ্রেমওয়ার্ক ভার্সন এক্সএমএল নোডটি ম্যানুয়ালি আপডেট করতে হয়েছিল কারণ ভিএস2015 সঠিকভাবে কিছু করছে না এবং আমার স্থানীয় বিল্ডকে গণ্ডগোল করেছে, তবে এটি এখানে প্রাসঙ্গিক নয়।

দয়া করে, আমি ভুল হলে কেউ আমাকে সংশোধন করেন, তবে কেবলমাত্র রেফারেন্সের জন্য, আমি মনে করি সংস্করণ নম্বরগুলি এরকম কিছু হয়:

4.0 = ভিএস2012

12.0 = ভিএস2013

14.0 = ভিএস2015

15.0 = ভিএস2017

আমি বিশ্বাস করি আপনি যদি নেট নেট 4.7 ব্যবহার করতে চান তবে আপনার বিল্ড সরঞ্জাম 2017 ইনস্টল করতে হবে এবং আপনার প্রকল্পগুলি 14.0 এর পরিবর্তে 15.0 টার্গেট করতে হবে, তবে আমি এটি যাচাই করে নি।

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