F#Type Provider编译为*.exe文件

Ser*_*hon 6 f# type-providers

为什么我无法使用[<TypeProviderAssembly()>][<EntryPoint>]内部创建Type Provider作为*.exe文件?

当我尝试引用这样的TP时#r @"d:\TP\bin\Debug\MyTypeProvider.exe",我看到以下内容:

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.

我需要在单独的进程中有一个类型推断运行时,因为它应该是64bit(与32bitVS进程不同).但我希望将所有内容打包到一个文件中,从VS引用它并从外部进程开始.

kvb*_*kvb 2

也许总是寻找 DLL 而不是 EXE 有一些很好的根本原因,但我怀疑这可能是一个任意的限制。

TypeProviderAssemblyAttribute如果我向构造函数提供程序集的全名(例如),我可以在 FSI 中工作[<TypeProviderAssembly("MyExe, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>],但 IntelliSense 不起作用,并且我无法使用其他项目中的 TP。考虑向团队提交错误 - 但如果您能够证明为什么您的场景需要 EXE 而不是 DLL,这可能会有所帮助。