Tại sao tôi không thể tạo Nhà cung cấp loại dưới dạng tệp * .exe với [<TypeProviderAssembly()>]
và [<EntryPoint>]
bên trong?Nhà cung cấp loại F # được biên soạn dưới dạng tệp * .exe
Khi tôi cố gắng tham khảo ví dụ TP sử dụng #r @"d:\TP\bin\Debug\MyTypeProvider.exe"
, tôi thấy như sau:
test.fsx(3,1): error FS3031: The type provider 'd:\TP\bin\Debug\MyTypeProvider.exe' reported an error: Assembly attribute 'TypeProviderAssemblyAttribute' refers to a designer assembly 'MyTypeProvider' which cannot be loaded or doesn't exist. Could not load file or assembly 'file:///d:\TP\bin\Debug\MyTypeProvider.dll' or one of its dependencies. The system cannot find the file specified.
tôi cần phải có một thời gian chạy kiểu suy luận trong quá trình riêng biệt, bởi vì nó phải được 64bit
(không giống như 32bit
quá trình VS). Nhưng tôi muốn đóng gói tất cả mọi thứ vào một tập tin, tham khảo nó từ VS và bắt đầu như quá trình bên ngoài.
TP sẽ có thể kết nối với SharePoint. Nó chỉ có thể từ quá trình '64bit'. VS là ứng dụng '32bit' có nghĩa là IntelliSense cũng vậy. Tôi không thể làm điều đó trực tiếp từ nhà cung cấp loại. Giải pháp duy nhất mà tôi thấy là bắt đầu quá trình '64bit' riêng biệt và liên lạc giữa chúng bằng cách sử dụng các đường ống có tên WCF. Nó sẽ được tốt đẹp để đóng gói dịch vụ và khách hàng vào một exe. –
Bạn có thể xem [triển khai hiện tại] (https://github.com/sergey-tihon/PowerShellTypeProvider). Nhưng tôi muốn hợp nhất các dự án này thành một dự án. Tôi nghĩ rằng trong trường hợp này nó sẽ dễ sử dụng hơn. –