我试图按照此LINK http://msdn.microsoft.com/en-us/library/hh361033.aspx通过SqlDataConnection从通过命令行fsx.exe触发的F#脚本运行数据库查询。从命令行运行F#脚本时缺少名称空间
虽然我从VS2012交互式窗口运行以下脚本行,但打开所有名称空间并没有问题。
#r "FSharp.Core.dll"
#r "System.Data.dll"
#r "FSharp.Data.TypeProviders.dll"
#r "System.Data.Linq.dll"
open Microsoft.FSharp.Linq
open System
open System.Data
open System.Data.Linq
open Microsoft.FSharp.Data.TypeProviders
--> Referenced 'C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\FSharp.Core.dll'
--> Referenced 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Data.dll'
--> Referenced 'C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\Type Providers\FSharp.Data.TypeProviders.dll'
--> Referenced 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Data.Linq.dll'
但是如果我使用FSI.exe在命令行窗口中运行同一个脚本文件,我得到一个错误
Script4.fsx(9,23): error FS0039: The namespace 'Linq' is not defined.
9号线是指Microsoft.FSharp.Linq命名空间。
Q1:我在这里错过了什么?
另外,当我在VS2012交互式窗口中运行脚本时,我可以看到所有的 参考信息/添加的路径/绑定信息和Val信息。但是,如果我从命令行运行脚本,则不会打印出任何内容来帮助我进行调试。 Q2:是否可以在VS2012交互式窗口上打印相同的信息以打印在命令行窗口上?
问候 casbby
嗨JaredPar,我试过你的建议,但它没有帮助。然而,自那之后,我就偶然发现了根本原因。这是由于fsi.exe的配置。不知何故,它加载了F#2.0库。 – casbby