我尝试使用最新的ServiceStack版本(4.0.3)和最新的Mono / F#(3.2.5)来运行this Self Hosting example。
它失败,appHost.Init()
上有例外:
{System.IO.FileNotFoundException:找不到虚拟文件文件名:'<> .FSharpSignatureData。'
在ServiceStack.VirtualPath.ResourceVirtualDirectory.CreateVirtualFile(System.String resourceName)[0x00033] in<> /ServiceStack/VirtualPath/ResourceVirtualDirectory.cs:99} System.IO.FileNotFoundException
C#样本不会发生同样的情况。
显然,它会查找在F#程序集中添加为资源但未映射到物理文件的某些文件。
答案 0 :(得分:1)
F#执行一些“元数据缓存”,将资源(FSharpSignatureData,FSharpOptimizationData)放入程序集中。这会导致ServiceStack设置其虚拟文件系统时出现问题,因为它希望将这些资源映射到实际文件(我认为)。
您可以通过将标志--nointerfacedata添加到构建/编译步骤来解决此问题。 (在VS属性>构建>'其他标志')
我一直想把它发布到GitHub问题页面。