2015-08-07 12 views
66

Tôi đang cố gắng nhắm mục tiêu .NET 4.6 và cũng tận dụng phiên bản C# mới nhất bằng cách thay đổi phiên bản ngôn ngữ C# thành 6.Lỗi Tùy chọn không hợp lệ '6' cho/langversion; phải là ISO-1, ISO-2, 3, 4, 5 hoặc Mặc định

Tuy nhiên trong biên soạn tôi đã nhận lỗi này:

Error Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default

Nếu tôi cập nhật /langversion:6 trong việc thiết đến 5 nó hoạt động Web.Config,

<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"> 

Nhưng làm thế nào để giải quyết này mà không cần đến phiên bản ngôn ngữ thấp hơn?

Tôi đang sử dụng Visual Studio 2015 Community Edition, và tôi cũng đã cài đặt .NET Framework 4.6 bằng tay chỉ trong trường hợp nó không được cài đặt theo mặc định bởi Visual Studio 2015.

Dự án được một tiêu chuẩn ASP.NET MVC mẫu dự án tạo ra bởi Visual Studio 2015.

+1

Trong trường hợp của mình, tôi chỉ phải xóa '/ langversion: 6' ... –

+0

@modosansreves Điều đó sẽ hoàn nguyên về phiên bản ngôn ngữ mặc định .. đó là C# 5 Tôi tin ... hãy kiểm tra xem bạn có thể sử dụng bất kỳ C# nào không 6 tính năng ngôn ngữ. –

+0

Thật vậy. Điều này không được sử dụng các tính năng C# 6. Cảm ơn. –

Trả lời

73

Pay attantion để trình biên dịch "loại" trong file Web.Config, khi thay đổi Framework phiên bản:

cho 4.5 và C# 5 -

type="Microsoft.CSharp.CSharpCodeProvider...

cho 4.6 và C# 6 -

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

More info here...

+17

Công trình này! .. Mặc dù tôi coi đó là lỗi trong Visual Studio 2015 vì không cập nhật tự động khi tôi nhắm mục tiêu lại ứng dụng của mình lên .NET 4.6 và C# 6. –

+0

Tôi nghĩ rằng bạn đang ở trong đó. Tôi bị choáng váng với nó và vấp phải câu hỏi của bạn. May mắn thay, liên kết tiếp theo tôi tìm thấy là câu trả lời. – DrewB

+2

Thêm này vào nhiều lỗi tôi chạy vào với VS2015. –

0

Xem câu trả lời cho ASP.NET strange compilation error!.

Hạ cấp ngôn ngữ C# của bạn xuống còn 5 mặt nạ, ngay khi ai đó sử dụng tính năng C# 6, trang web/dự án của bạn sẽ bị hỏng và bạn vẫn sẽ dành thời gian sửa lại. Hãy thử giải pháp trong liên kết.

3

Tôi đã gặp hành vi như vậy nếu dự án không được nâng cấp hoàn toàn lên VS2015. Trong trường hợp nếu bạn mở giải pháp từ năm 2015 trong VS2013 - bạn sẽ gặp lỗi này

+0

Tôi cũng vậy, tôi nghĩ lỗi này về cơ bản có nghĩa là bạn cần phải cài đặt VS2015! Một người khác trong dự án đang sử dụng các tính năng ngôn ngữ mới hơn mà 2013 không thể đối phó với –

3

1.Chuyển đến Dự án và chọn Thuộc tính dự án của bạn.

2 Chọn Xây dựng và nhấp vào Nút nâng cao.

3.Chọn phiên bản ngôn ngữ mặc định.

4.Lưu.

https://youtu.be/IP8feQeWqkk

+0

Đã xảy ra lỗi này trong VS2013. Giải pháp này đã không làm việc cho tôi không may. – Jviaches

+1

Điều này làm việc cho tôi. Tất cả các giải pháp được đề xuất khác xoay quanh việc thay đổi tệp web.config, hoặc cách khác, tải xuống gói NuGet/cập nhật. Trình biên dịch tiếp tục ném lỗi về một phiên bản không hợp lệ, điều này làm tôi bối rối vì tôi không có cài đặt đó trong tệp cấu hình. Hóa ra các thuộc tính xây dựng nâng cao không được cập nhật tự động bằng gói cập nhật NuGet. –

12

cập nhật bởi NuGet các

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

có thể giải quyết vấn đề này.

+0

đây là một bình luận nhiều hơn là một câu trả lời –

+0

Đây là giải pháp thực sự !! Gỡ cài đặt gói nuget này và sự cố đã được giải quyết cho tôi – Geomorillo

+0

Tôi đã chuyển sang C# 6.0, nhưng gói vẫn ở trên phiên bản cũ hơn. Cập nhật từ 1.0 lên 1.0.4 đã làm việc cho tôi. – Mixxiphoid

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