2017-10-05 65 views
6

Sử dụng chuỗi nội suy trong chế độ xem .cshtml đang đưa ra lỗi intellisense sau: Feature 'interpolated strings' is not used in C#5. Please use language version 6 or greater. Tính năng ngôn ngữ C# 7 này đang hoạt động trong mã được biên dịch (tệp .cs) .VS2017 - Các tính năng ngôn ngữ C# 7 không hoạt động trong chế độ xem MVC

Như bạn có thể thấy bên dưới, phiên bản chính mới nhất C# 7.

enter image description here

Theo một bình luận trong this question, "mặc định" có nghĩa là "phiên bản chính mới nhất".

Vậy tại sao lại xảy ra lỗi? Ngoài ra, tại sao nó không hiển thị "Phiên bản chính mới nhất" và "Phiên bản nhỏ nhất mới nhất" dưới dạng các tùy chọn danh sách riêng biệt, như tôi đã thấy trong nhiều ví dụ trực tuyến?

UPDATE:.

Cuối cùng tôi quản lý để có được chuỗi suy làm việc trong quan điểm của tôi bằng cách cài đặt CodeDom providers package (The Microsoft.Net.Compilers gói có liên quan đến Msbuild Các gói phần mềm cung cấp CodeDOM có liên quan đến ASP.NET và khác apis biên dịch tại thời gian chạy do đó tại sao các tập tin cshtml sẽ hiển thị lỗi nếu điều này không được cài đặt ngay cả khi phiên bản ngôn ngữ mới nhất được chọn cho msbuild). Đây tự động thêm vào phần sau đây để web.config của tôi:

<system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.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.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> 
    </compilers> 
    </system.codedom> 

Ref: C# 6.0 Features Not Working with Visual Studio 2015

Nâng cấp lên MVC6 cũng đã cố định nó, tôi tin.

+3

Bạn đang sử dụng phiên bản VS2017 nào? Ảnh chụp màn hình của bạn trông gợi nhớ đến các phiên bản RC; không phải phiên bản được phát hành. –

+0

@DavidArno - Doanh nghiệp. – Kev

+0

Xin lỗi, tôi có nghĩa là phiên bản như trong ví dụ 15.3.5. Bạn có thể thấy điều đó thông qua 'Trợ giúp -> Giới thiệu về Microsoft Visual Studio ' –

Trả lời

4

Tôi nghi ngờ câu hỏi quan trọng của bạn là khi bạn nói "trong chế độ xem". Giả sử đây là trong ngữ cảnh của ASP.Net, bạn nên xem web.config của bạn, có thể chỉ định cài đặt LangVersion của riêng nó (có thể đã được mã hóa cứng thành 5 trong trường hợp của bạn).

Thêm chi tiết về định cấu hình ASP.Net để sử dụng các phiên bản C# mới hơn có thể được tìm thấy trong Roslyn documentation issue này.

+0

Không có LangVerson trong web.config của tôi. Tôi đã thử cài đặt Microsoft.Net.Compilers (mặc dù tôi không cần phải có trong VS2017) theo đề nghị trong trang liên kết. Vẫn không có LangVersion. Vẫn đưa ra lỗi. – Kev

+0

Bạn có thể chia sẻ web.config của mình không? Nên có một cái gì đó như: '' –

+0

Không có gì giống như vậy. Tôi có thể sử dụng nội suy chuỗi trong các tệp .cs, nhưng không sử dụng tệp .cshtml. – Kev

Các vấn đề liên quan