2011-10-07 27 views
10

Trong vài ngày gần đây, mỗi lần tôi biên dịch giải pháp của mình (MVC 3 Web Application + một số dự án khác), tôi gặp lỗi này trong Danh sách lỗi:Lỗi nghiêm trọng, không thể tiếp tục: Phương thức 'ToStringJS' không phải là chung

Fatal error, cannot continue: The method 'ToStringJS' is not generic (Site.css, line 1, column 1).

Vì lỗi này liên quan đến tệp css rõ ràng là tôi có thể chạy dự án.

Tôi không thấy lỗi trong tệp css.

Thậm chí nếu tôi xóa tất cả nội dung tệp css, tôi vẫn gặp phải lỗi này.

Tuy nhiên, việc làm nổi bật mã biến mất, trong khi intellisense và ReSharper vẫn hoạt động.

Tôi không chắc chắn nơi cần tìm sự cố này (Googling không mang lại kết quả nào, cả Stack Exchange hoặc các trang web cụ thể khác). Nó có thể là một vấn đề ReSharper, nhưng tôi có phương tiện thực tế để đổ lỗi cho R #, vì vậy tôi muốn bắt đầu từ đây, trước khi liên hệ với họ.

+0

Tôi cũng gặp sự cố nhưng tôi chưa cài đặt lại bộ chia sẻ lại. Tôi làm, tuy nhiên, có cài đặt chirpy - phải không? –

+0

Không, theo như tôi biết. Ít nhất điều này không bao gồm ReSharper. –

+0

Tôi có cùng một vấn đề ... vì vậy tôi đã thêm tiền thưởng cho câu hỏi của bạn .. –

Trả lời

10

Lỗi bạn đang gặp phải xuất phát từ thư viện Jurassic được sử dụng bởi Chirpy Bổ trợ.

Tôi đã thực hiện tra cứu ngắn trong các nguồn ChirpyJurassic và tôi đã tìm thấy vị trí chính xác nơi ngoại lệ được ném và gây ra sự cố bạn mô tả.

Trong các nguồn Jurassic, hãy truy cập vào thư mục Jurassic\Compiler\Binders và mở JSBinder.cs tệp. Các vấn đề xảy ra trong phương pháp protected override void GenerateStub(ILGenerator generator, int argumentCount) mà chính nó được sử dụng để tạo ra một phương pháp khác ... yadayadayada. Nó khá phức tạp.

Dù sao đi nữa. Dưới đây là đoạn code từ file rằng đó là chịu trách nhiệm về lỗi bạn đang nhận được:

// Line 156 (Change Set df266524321d) 
// Convert to the target type. 
EmitTypeConversion(generator, typeof(object), argument.Type); 

if (argument.Type != typeof(ObjectInstance) && inheritsFromObjectInstance == true) 
{ 
    // EmitConversionToObjectInstance can emit null if the toType is derived from ObjectInstance. 
    // Therefore, if the value emitted is null it means that the "thisObject" is a type derived 
    // from ObjectInstance (e.g. FunctionInstance) and the value provided is a different type 
    // (e.g. ArrayInstance). In this case, throw an exception explaining that the function is 
    // not generic. 
    var endOfThrowLabel = generator.CreateLabel(); 
    generator.Duplicate(); 
    generator.BranchIfNotNull(endOfThrowLabel); 
    generator.LoadArgument(0); 
    EmitHelpers.EmitThrow(generator, "TypeError", string.Format("The method '{0}' is not generic", binderMethod.Name)); 
    generator.DefineLabelPosition(endOfThrowLabel); 
} 

Nếu bạn muốn to digg một chút sâu hơn, bạn có thể có một cái nhìn tại Jurassic\Library\Array\ArrayInstance.csJurassic\Library\Object\ObjectInstance.cs nơi public static string ToStringJS(ScriptEngine engine, object thisObject) được thực hiện. Ngoài ra, trong tệp Chirpy lib, tệp CSSLint.cs chứa một số dòng mã thú vị (những nơi mà Jurassic được sử dụng).

Tôi phải thừa nhận, tôi không biết chính xác lý do bạn nhận được "lỗi nghiêm trọng" hoặc cách khắc phục sự cố. Điều này đòi hỏi khá nhiều nỗ lực thử nghiệm/gỡ lỗi. Bất kỳ ai?

Dù sao, đừng đổ lỗi cho Resharper! Đó là phần mềm tuyệt vời ;-)

+2

Hey, tôi không đổ lỗi cho R #: là một công cụ tuyệt vời và hỗ trợ của họ cũng tuyệt vời;) Về Chirpy/Jurassic, trước khi mở câu hỏi này, tôi thậm chí không biết chúng là gì. Thật vậy, tôi đã cài đặt, nhưng tôi không nhớ tại sao hoặc khi tôi đã cài đặt nó. Ngay bây giờ tôi không cần các tính năng của nó, vì vậy tôi có thể tự do gỡ cài đặt và giải quyết vấn đề. –

+0

Tôi rất sẵn lòng trợ giúp thử nghiệm nhưng sự cố đã biến mất trong 2-3 tuần qua. Điều duy nhất thay đổi trong môi trường của tôi là phiên bản Parallels Desktop tôi đang sử dụng nó (vâng, tôi là Mac, nhưng tôi phải sử dụng Windows cho công việc;): Tôi không thể tin rằng vấn đề là do Parallels gây ra:) –

5

Vấn đề là với CSSLint. Bạn có thể tải xuống mã nguồn và cố khắc phục mã nguồn hoặc bạn chỉ có thể tắt mã nguồn.

Chuyển đến Công cụ> Tùy chọn> Chirpy> CssLint

Bỏ chọn hộp 'Chạy CSS Lint'.

Nếu bạn gặp phải vấn đề tương tự với JS, hơn vô hiệu hóa các JSHint cũng

+0

Chính xác, bạn đang đề cập đến môi trường nào? Trong VS2010: Công cụ -> Tùy chọn không chứa mục "Chirpy" Trong R # có cả Công cụ và Tùy chọn, nhưng không phải Công cụ-> Tùy chọn Đây là hai môi trường tôi có thể nghĩ, nhưng tôi cho rằng bạn ' đang nói về một cái gì đó hoàn toàn khác. –

+0

Vô hiệu hóa nó, vẫn đang xảy ra. : ( – rball

+0

@ rball: Vấn đề là một lỗi cú pháp. Xem câu trả lời của ScottCate. Trong trường hợp của tôi, đó là kết quả của việc viết: 35x thay vì 35px – awrigley

3

Tôi có vấn đề này, và giải quyết nó bằng cách sửa chữa một số css hợp lệ. trong trường hợp của tôi css không hợp lệ là (thông báo thời gian không đúng chỗ?)

#exposeMask{.visibility:hidden;} 

Sau khi sửa lỗi đánh máy, mọi thứ trở lại với cuộc sống.

+1

+1 Tìm tốt! Trong trường hợp của tôi, nhà thiết kế mẫu trang web đã đưa vào một số các ký hiệu không phải ascii lạ trong CSS như là một phần của chữ ký "mát mẻ" của nhà thiết kế (giống như nghệ thuật ascii nhưng với các ký tự bên ngoài bộ ký tự ascii) Mặc dù là một phần của nhận xét, các ký tự kỳ lạ này là một vấn đề. ascii ký tự giải quyết vấn đề! Tôi đang chạy Chirpy 2. – BenSwayne

+1

Tuyệt vời, tôi đã có một dòng 13ss css tập tin với vấn đề.Ban ... Hãy để tôi đi tìm kim ... – rball

+0

Bây giờ nếu Chirpy chỉ có thể cho bạn biết nơi mà dòng nguồn là cho lỗi 'ToStringJS' - điều đó sẽ tuyệt vời! – SliverNinja

0

Tôi có thể trễ một chút với bữa tiệc, nhưng tôi vừa cài đặt bổ trợ Chirpy vào Visual Studio 2010 và gần như ngay lập tức bắt đầu chạy vào các lỗi này.

Tôi đã chuyển đến Công cụ> Tùy chọn, sau đó chọn Chirpy> CssLint và bỏ chọn "Chạy CSS Lint". Tada! Không còn lỗi nữa.

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