এটি কি সমর্থিত?
যদি তাই হয়, এটি সক্ষম করার কিছু কৌশল আছে? আমি ধরে নিচ্ছি রেজার একটি নতুন পর্যাপ্ত সংকলক ব্যবহার করছে না ...? ভিএস ২০১৫ আইডিটি এটির সাথে ঠিক আছে বলে মনে হচ্ছে তবে রানটাইমে আমি পাচ্ছি
CS1056: অপ্রত্যাশিত চরিত্র '$'
এটি কি সমর্থিত?
যদি তাই হয়, এটি সক্ষম করার কিছু কৌশল আছে? আমি ধরে নিচ্ছি রেজার একটি নতুন পর্যাপ্ত সংকলক ব্যবহার করছে না ...? ভিএস ২০১৫ আইডিটি এটির সাথে ঠিক আছে বলে মনে হচ্ছে তবে রানটাইমে আমি পাচ্ছি
CS1056: অপ্রত্যাশিত চরিত্র '$'
উত্তর:
আপডেট :
ভিজ্যুয়াল স্টুডিও 2015 আপডেট 1 থেকে শুরু করে, জিইউআইতে আপনার জন্য নীচের পদক্ষেপগুলি করার জন্য একটি সহজ প্রক্রিয়া রয়েছে। আপনার ওয়েব প্রকল্পকে কেবল ডান-ক্লিক করুন এবং "সি # 6 / ভিবি 14 সক্ষম করুন" নির্বাচন করুন। এমএসডিএন ব্লগ পোস্টে আরও তথ্য পাওয়া যায়, " সি # 6 / ভিবি 14 সক্ষম করার জন্য নতুন বৈশিষ্ট্য "।
যেহেতু এই উত্তরটি লেখা হয়েছিল, নুগেট প্যাকেজের সহায়তায় এই কার্যকারিতা যুক্ত করা হয়েছে।
আপনি যদি এমভিসি 5 ব্যবহার করেন তবে আপনার সমাধানটিতে এই নুগেট প্যাকেজটি যুক্ত করুন।
https://www.nuget.org/packages/ মাইক্রোসফট.কোডডম.প্রভাইডার্স.ডট নেট কম্পিউটার
নুগেট প্যাকেজটি আপনার ওয়েব কোডফাইগটি পরিবর্তন করতে হবে, তবে নীচের কনফিগারেশনটি আপনার ওয়েবকনফাইগ ফাইলে রয়েছে কিনা তা পরীক্ষা করুন (এবং যদি এটি এতে যোগ না করে):
<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=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
এমভিসি 6 এ এটি অন্তর্নির্মিত।
আসল উত্তর:
<div>
@($"Hello {this.Model.SomeProperty}")
</div>
এটি কেবল এমভিসি 6 এর সাথে সি # 6 এ কাজ করে। এমনকি আপনি যদি সি # 6 সংকলক সহ এমভিসি 5 চালাচ্ছেন তবে এটি কার্যকর হবে না।
কৌশলটি হ'ল রেজার পার্সারটি এখনও কিছু বাক্য গঠন সনাক্ত করতে যথেষ্ট স্মার্ট নয়, সুতরাং আপনাকে অবশ্যই পুরো জিনিসটি বন্ধনীতে আবৃত করতে হবে ( ?.
আপনার রেজারের ভিউগুলিতে নাল-কন্ডিশনাল অপারেটর ব্যবহার করার সময়ও আপনাকে এটি করতে হবে )।
এটি বলেছিল যে রেজারে স্ট্রিং ইন্টারপোলেশন এমভিসি 6-তে এই মুহুর্তে কিছুটা বগি , সুতরাং এর সাথে কিছু সমস্যা থাকলে আমি অবাক হব না। তাদের সম্বোধন করা হবে কি না তা অন্য বিষয়।
আপনার প্রকল্পে প্রয়োজনীয় সরবরাহকারী যুক্ত করতে প্যাকেজ ম্যানেজার কনসোলে নিম্নলিখিত কমান্ডটি চালানCodeDom
। এটিতে প্রয়োজনীয় সেটিংস যুক্ত করতে এটি web.config
স্বয়ংক্রিয়ভাবে আপনার ফাইলটি পরিবর্তন CodeDom
করবে।
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
আবার শুরু Visual Studio
দ্রষ্টব্য: @ জ্যাক যেমন এই উত্তরে তার মন্তব্যে উল্লেখ করেছেন, আপনার যদি DotNetCompilerPlatform
ইতিমধ্যে প্যাকেজ থাকে তবে এটি কেবল আপডেট করার প্রয়োজন হতে পারে।
Replacement CodeDOM providers that use the new .NET Compiler Platform ("Roslyn") compiler as a service APIs. This provides support for new language features in systems using CodeDOM (e.g. ASP.NET runtime compilation) as well as improving the compilation performance of these systems.