2011-06-28 39 views
11

Tôi đang cố gắng để Intellisense làm việc cho các khung nhìn dao cạo trong một dự án non -ASP.NET và muốn hiểu mối quan hệ giữa trình soạn thảo Razor của VisualStudio và BuildProviders.Visual Studio, Razor, BuildProviders và Intellisense

Đối với nền, tôi đang viết một khuôn khổ trên Manos (máy chủ web đơn) sử dụng Razor cho công cụ xem của nó. Tôi đã có một phần làm việc hoàn hảo, nhưng Intellisense trong VS không làm việc đưa ra một loạt các lỗi từ các loại không xác định cho các nhà cung cấp xây dựng chưa đăng ký, tùy thuộc vào nơi đầu ra DLL của dự án được đặt.

Dự án của tôi là Thư viện lớp .NET, có tệp .cshtml (không có tác vụ xây dựng). Lớp xem dao cạo cơ sở được định nghĩa trong một hội đồng riêng biệt (bên ngoài dự án) có thể được đăng ký trong GAC, nhưng hiện tại thì không.

Tôi đã đọc những bài viết này:

Âm thanh như tôi cần phải viết BuildProvider của riêng tôi, nhưng có thể' t tìm thấy bất kỳ tài liệu nào giải thích mối quan hệ giữa một nhà cung cấp xây dựng và intellisense dao cạo.

+0

Vì vậy, tôi hiểu rằng bạn đã cố gắng để thả một web.config từ một dự án MVC vào dự án thư viện lớp học của bạn và nó không hoạt động? Bạn đã lấy web.config nào: thư mục gốc từ thư mục gốc hoặc thư mục con từ thư mục con Chế độ xem? –

Trả lời

1

Dao động intellisense là flaky lúc tốt nhất hiện nay. Tuy nhiên, nếu bạn đang sử dụng VS SP1, nó tốt hơn một chút. Các work.ound web.config (như chỉ trong liên kết thứ ba của bạn) làm việc cho tôi trong một thư viện lớp miễn là phần mở rộng là cshtml (đã không cố gắng vbhtml vì vậy không thể nói chắc chắn).

Ngoài ra hãy xem tại đây: http://razorpad.codeplex.com/ Tương tự như LinqPad, điều này sẽ cho phép bạn kiểm tra mã dao cạo của mình trước thời hạn.

1

Trình chỉnh sửa Dao cạo được gắn khá nhiều vào thời gian chạy ASP.Net, trên thực tế nó thực sự chạy ASP.Net trong nền để thu thập thông tin thời gian chạy cần thiết.

Đề xuất duy nhất của tôi để có được sự trung thực thực sự IntelliSense là một chút siêu hack. Thay vì một thư viện lớp, bạn có thể làm cho ứng dụng của bạn trở thành một dự án ứng dụng web. Một WAP thực sự chỉ là một thư viện lớp mà VS có thể lưu trữ một trang web từ. nếu bạn làm sạch TẤT CẢ các công cụ bổ sung (Global.asax, web.config, vv) bạn có thể nhận được chính xác những gì bạn đang tìm kiếm. Đó là một cách giải quyết, và một chút của một căng ở đó nhưng cho nó một shot, nó chỉ có thể làm việc :)

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