সি # 6.0 বৈশিষ্ট্যগুলি ভিজ্যুয়াল স্টুডিও 2015 এর সাথে কাজ করছে না


135

আমি ভিজুয়াল স্টুডিও 2015 সি # 6.0 দিয়ে পরীক্ষা করছি তবে ভাষার বৈশিষ্ট্যগুলি কাজ করছে না। একটি এমভিসি ওয়েব অ্যাপ্লিকেশনে, নিম্নলিখিত কোডগুলি সংকলন করে:

if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
    // More logic here...
}

যাইহোক, আমি যখন ডিবাগ এবং আইআইএস এক্সপ্রেসের মাধ্যমে অ্যাপ্লিকেশনটি চালিত করি তখন আমি নিম্নলিখিত ত্রুটিটি পাই:

CS1525: অবৈধ অভিব্যক্তি শব্দ '।'

আমি কীভাবে এই বৈশিষ্ট্যগুলি সক্ষম করব?


1
এটি এমভিসি-নির্দিষ্ট (বা কমপক্ষে ASP.NET- সুনির্দিষ্ট) বলে মনে হচ্ছে তাই আমি একটি ট্যাগ যুক্ত করেছি - কারণ ভিজ্যুয়াল স্টুডিও নিজেই সি # 6 সম্পর্কে স্পষ্টভাবে জানে ... সংস্করণটির ক্ষেত্রে আপনি যেখানে এমভিসি কনফিগার করেন সেখানে আপনার নজর দেওয়া উচিত এটি নেট টার্গেট করছে ... এটি সম্ভবত রয়েছে যে সেখানে এমন কিছু আছে যা আপনাকে ব্যবহারের জন্য সংকলকটি নির্দিষ্ট করতে দেবে।
জন স্কিটি

হতে পারে আপনি একটি যোগ করতে হবে compilerRoslyn codeprovider জন্য উপাদান msdn.microsoft.com/en-us/library/y9x69bzw(v=vs.110).aspx web.config মধ্যে?
Rene

এই কোডটি কি একটি এসপেক্স পৃষ্ঠা বা রেজার পৃষ্ঠায় রয়েছে? বা কোড .cs ফাইলের মধ্যে রয়েছে?
এরিক ফানকেনবাশ

এই টুইটটি একটি রেজার পাতায় রয়েছে
ক্রিস শিফহাউয়ার

1
হ্যাঁ, এমভিসি 5 রোজলিনের সাথে সামঞ্জস্যপূর্ণ নয়
এরিক ফানকেনবাশ

উত্তর:


209

এটি এমভিসি 5 তে কাজ করে (5.2.3 পরীক্ষিত), আপনাকে কেবল রোজলিন কোড ডোম নিউগেজ প্যাকেজ যুক্ত করতে হবে

.NET কম্পাইলারের জন্য কোডডম সরবরাহকারী ...

সার্ভিস এপিআই হিসাবে নতুন। নেট সংকলক প্ল্যাটফর্ম ("রোজলিন") সংকলক ব্যবহার করে এমন প্রতিস্থাপন কোডডোম সরবরাহকারী কোডডোম (যেমন এএসপি.এনইটি রানটাইম সংকলন) ব্যবহার করার পাশাপাশি এই সিস্টেমগুলির সংকলন কার্যকারিতা উন্নত করার জন্য এটি সিস্টেমে নতুন ভাষার বৈশিষ্ট্যগুলির জন্য সমর্থন সরবরাহ করে।

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/


4
এটি একটি উত্তর হিসাবে জমা দেওয়া উচিত, কারণ এটি এমভিসির একটি বিটা সংস্করণে আপগ্রেড করার চেয়ে সমস্যাটি ঠিক করে।
ড্যানিয়েল ইউজেন

3
@ ভুল আপনি ভুল Microsoft.Net.Compilers Msbuild সাথে সম্পর্কিত হয়। CodeDOM প্রোভাইডার ASP.NET সঙ্গে সম্পর্কযুক্ত এবং অন্যান্য API রানটাইম এ কম্পাইল না।
jbtule

1
হ্যাঁ তুমি সঠিক. আমি ভুল / ভুল ব্যাখ্যা দিয়েছি কারণ তারা কখনও কখনও প্যাকেজগুলিকে নতুন নাম দিয়ে প্রতিস্থাপন করে কেবল নির্ভরতা হিসাবে যুক্ত করে।
ডেভিড ডি স্লোভার

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

1
@ রোনো, আপনার প্যাকেজ উত্স কিনা তা নিশ্চিত করুন nuget.org। আপনি লিঙ্কটি থেকে দেখতে পাচ্ছেন, এটি সঠিক নাম এবং প্যাকেজটি বিদ্যমান।
jbtule

17

ঠিক আছে, আমার কাছে এমভিসি 5 রয়েছে এবং সম্প্রতি ভিএস 2015 ইনস্টল হয়েছে।

আমি কোডডোম সরবরাহকারী প্যাকেজটি ইনস্টল করেছি, তবে এটি কোনও লাভ হয়নি ... তবে আমি বুঝতে পেরেছিলাম, প্যাকেজটি কেবল ফ্রেমওয়ার্ক 4.5 সমর্থন করে, যখন আমার পরীক্ষার সময় লক্ষ্য ফ্রেমওয়ার্কটি 4.6 নির্ধারণ করা হয়েছে - যদিও এটি 4.5 নিয়ে কাজ করে ...

সুতরাং কাঠামো লক্ষ্য করতেও মনোযোগ দিন। আপনার যদি 4.5 থাকে - কেবল মাইক্রোসফ্ট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্ম ইনস্টল করুন। তবে আপনার যদি লক্ষ্য হিসাবে 4.5.1-4-6 থাকে তবে আপনাকে ওয়েবকনফিগ বিভাগে পরিবর্তন করতে হবে

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
          <providerOption name="CompilerVersion" value="v4.0"/>
      </compiler>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>

জন্য C # এর শুধু পরিবর্তন টাইপ করুন:

type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 

এটি অবশ্যই আমাকে C# 6কাজ করতে সাহায্য করেছিল ASP.NET 4.6, তবে typeসেখানে ইতিমধ্যে সঠিক দিয়ে কোডটি পোস্ট করা ভাল ছিল ...
Serj Sagan

ধন্যবাদ, আমি যখন মঙ্গলবার বাড়ি গিয়েছিলাম তখন কাজ করেছিলাম এবং বৃহস্পতিবার ফিরে এসে কাজ করি নি। একরকম, কনফিগারেশনের এই বিভাগটি আউওএল গিয়েছিল, কারণ আমি মনে করি এটি দেখেছি যখন এটি আসল কাজ করার জন্য পেয়েছিলাম!
কার্ল

16

ভিজ্যুয়াল স্টুডিও 2015-এ আমার একই সমস্যা ছিল here এখানে অন্য একটি উত্তর আমার ব্যবহৃত সমাধানটির ইঙ্গিত দিয়েছে, তবে তারা ভুলভাবে সমাধানটি নির্দিষ্ট করেছে এবং কখনও স্পষ্টতা দেয়নি gave

ভিজ্যুয়াল স্টুডিও মেনুতে, প্রজেক্টটি নির্বাচন করুন এবং আপনার যদি সমস্যা হয় তবে আপনার সাব-আইটেমটি সি # 6 / ভিবি 14 সক্ষম করুন । এই মেনু উপ-আইটেমটি নির্বাচন করুন। এটি নিউগেট থেকে সঠিক প্যাকেজগুলি ডাউনলোড করবে এবং সেগুলি ইনস্টল করবে। এর পরে, ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন এবং আপনার সমাধানটি পুনরায় লোড করুন।

এটি প্রকল্পের বৈশিষ্ট্য> বিল্ড> অ্যাডভান্সড> ভাষা সংস্করণ নির্বাচন সি # 6 তেও ঠিক করে দিবে কিনা তা আমি যাচাই করতে পারি না , তাই মেনু থেকে C # 6 সক্ষম করার পরে আপনি এটিও পরীক্ষা করতে চাইতে পারেন।


2
এই উপ-আইটেমটি আমার প্রকল্প মেনুতে নেই। আমার Unক্য 5.5.2 রয়েছে যা কিছু স্ক্রিপ্ট তৈরি করতে আমার ভিএস 2015 সম্প্রদায়টি খুলল। কোনও সম্পত্তিতে একটি ডিফল্ট যুক্ত করার পরে, রেড আনলাইন দ্বারা একটি সংকলক ত্রুটি দেখানো হয়েছে, উল্লেখ করে যে আমার সি # 6 প্রয়োজন কারণ সি # ভি 4 বর্তমানে লোড হয়েছে। যে কোনও সময় আমি প্রকল্পের বৈশিষ্ট্যগুলি বেছে নেওয়ার চেষ্টা করি পর্দাটি কেবল জ্বলজ্বল করে তবে কোনও পৃষ্ঠা আসে না।
এডওয়ার্ড

15

আপনার প্রকল্পের বৈশিষ্ট্যগুলি পরীক্ষা করুন, বিল্ড করতে যান, উন্নত হন এবং দেখুন সি # 6.0 যদি আপনার এটি ডিফল্ট না থাকে।

বর্তমানে এমভিসি 5 এবং সি # 6.0 এর জন্য নিখুঁত সমর্থন রয়েছে এবং আশ্চর্যজনকভাবে ভাল কাজ করে!


18
"বৈশিষ্ট্য 'নাল প্রচারকারী অপারেটর' সি # 5 তে পাওয়া যায় না দয়া করে 6 বা ততোধিক ভাষা সংস্করণ ব্যবহার করুন।" উন্নত সেটিং সম্পর্কে জানতাম না তবে এখানে কাজ করবে বলে মনে হচ্ছে না।
juFo

3
আপনি কীভাবে ডিফল্ট সংস্করণটি 6 এ পরিবর্তন করবেন যাতে আমাকে প্রতিটি প্রকল্পে সেট না করতে হয়?
মীর

3
"কিছু" সংজ্ঞায়িত করুন। এটি বনাম 2015 আপডেট 3
রবার্ট ইভানক

1
যখন আমি প্রকল্পের বৈশিষ্ট্যগুলি পেয়েছি, তখন আমি কোনও বিল্ড মেনু পাই না। আমি যদি "সম্পত্তি পৃষ্ঠা" এ যাই তবে আমি একটি বিল্ড মেনু পাই তবে বিল্ড স্ক্রিনে আমার কাছে "অ্যাডভান্সড" বোতাম নেই। অনুবাদ, "এটি কাজ করে না" (আমার জন্য)
ম্যালকম অ্যান্ডারসন

আমার ভিএস সংস্করণটি সম্প্রদায় 2015 আপডেট 3 (14.0.25431.01)
ম্যালকম অ্যান্ডারসন

10

সর্বশেষে ইনস্টল করার পরামর্শ অনুসরণ করে Microsoft.CodeDom.Providers.DotNetCompilerPlatformআমাকে শেষ পর্যন্ত যা করতে হবে ততোধিক ত্রুটি পেতে সর্বদা এটির Web.config system.codedom জন্য আমার রুটটিও সেট Visual Studio 2015করতে হয়েছিল:

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>

এখন পুনরায় আরম্ভ করুন Visual Studioএবং এটি করা উচিত।


6

ভিজুয়াল স্টুডিও 2015 Enable C#6 / VB 14এএসপি.এনইটি ওয়েব সাইট / ওয়েব অ্যাপ্লিকেশন নির্বাচন করে প্রজেক্ট মেনুতেও একটি প্রদর্শন করবে ।

এটি আপনার প্রকল্পে প্রকৃতপক্ষে Microsoft.CodeDom.Providers.DotNetCompilerPlatformএবং Microsoft.Net.Compilersপ্যাকেজগুলি ইনস্টল করবে এবং ওয়েবকনফিগ ফাইলে উপযুক্ত ট্যাগ যুক্ত করবে।

ভিজ্যুয়াল স্টুডিও 2015 - সিএস 6 স্নিপ সক্ষম করুন


1
কোন ওয়েবসাইটের ট্যাব? আপনি যদি সম্পত্তি / ওয়েব বোঝাতে চান তবে সেখানে কোনও বৈশিষ্ট্য নেই।
রবার্ট ইভানক

1
আই ভিজ্যুয়াল স্টুডিও, আপনি যখন কোনও ওয়েবসাইট ওয়েবসাইট নির্বাচন করেন, ওয়েবসাইট ট্যাবটি দেখুন ট্যাবের পাশেই উপস্থিত হয়। সেখানে আপনি এই বৈশিষ্ট্যটি খুঁজে পেতে পারেন।
মিশাল Šuvada

1
আমি আপাতত ডাউনটিভোট করেছি, দয়া করে আপনার ঠিক কী বোঝাতে চাইছেন তা বোঝাতে সম্পাদনা করুন, যেমন স্ক্রিনশট যুক্ত করে।
ব্যবহারকারী 247702

আমি একটি ওয়েবসাইট দিয়ে সমস্যাটি সমাধান করার চেষ্টা করছি, এবং সেই মেনু আইটেমটি আমার জন্য উপলব্ধ নয়। নোট করুন যে একই সমাধানের অন্যান্য নন-ওয়েব প্রকল্পগুলির ভিবি 14 বৈশিষ্ট্যগুলি ব্যবহার করতে কোনও সমস্যা নেই। তারা সমস্ত লক্ষ্য .NET 4.7, এবং আমি কোডডম সংকলক ইনস্টল করেছি।
অ্যান্ড্রু এস

-1
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.