2012-02-27 65 views
6

Tôi đang sử dụng MiniCSVTypeProvider được cung cấp trong các mẫu powerpack fsharp.nạp lại nhà cung cấp loại

Thật không may, nó nghĩ rằng các giá trị được cung cấp là nổi, trong khi tôi có các định dạng khác nhau (thay đổi). Do đó, tôi viết lại nhà cung cấp MiniCsvType để luôn cung cấp các chuỗi, để lại công việc phân tích cú pháp cho người gọi.

Nhưng vì một số lý do kỳ lạ, sau khi dereferencing DLL cũ và bao gồm một tham chiếu đến DLL mới, nó tiếp tục cung cấp float, sử dụng nhà cung cấp kiểu cũ. Tôi đã phải thay đổi tên của hội đồng và các lớp học để có VS làm mới nó.

Có cách nào khác để thu hồi/đặt lại nhà cung cấp loại cũ để VS thay đổi tài khoản không?

Trả lời

1

Một chút trễ, nhưng gặp phải vấn đề tương tự, tôi đã giải quyết nó bằng cách hủy kích hoạt và kích hoạt lại nhà cung cấp loại từ Tools -> Options -> F # Tools -> Type providers. (Tôi đang sử dụng VS2013)

+1

Đường nối tùy chọn này sẽ bị xóa khỏi VS2015. Nó nằm ở đâu đó khác? Hoặc tôi có cần phải khởi động lại Visual Studio để phát hành một khóa nhà cung cấp loại? – Yodiz

7

Nói chung, khi phát triển một nhà cung cấp loại, bạn sẽ cần tắt phiên bản VS đang tiêu thụ nhà cung cấp loại để cập nhật nhà cung cấp. Một luồng công việc phổ biến là có hai trường hợp VS: một phiên bản đang hoạt động trên mã của chính nhà cung cấp loại, nó vẫn mở và một quy trình khác tham chiếu/tiêu thụ/kiểm tra nhà cung cấp mà bạn đóng mỗi khi bạn thực hiện thay đổi . Người tiêu dùng VS thường khóa các DLL trên đĩa, và cũng không thể bỏ/tải lại lắp ráp vào quá trình của nó, đó là lý do tại sao bạn cần phải kết thúc quá trình VS để lặp lại việc thực hiện nhà cung cấp kiểu của bạn.

+0

Sẽ không tuyệt vời khi có trong cùng một * Visual Studio? Điều đó có thể được thực hiện với khái niệm 'thực thi theo giai đoạn', ở đó mức độ mà chương trình của bạn giả định tất cả các cấp độ sâu hơn đã chạy trước đó. Nhiệm vụ của cấp độ sâu hơn là cung cấp các loại, hoặc biến (aka singleton types) đến cấp độ tiếp theo của họ. – nicolas

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