如何将F#SqlDataConnection TypeProvider与App.Config文件一起使用?

Cli*_*hie 12 f# app-config

我正在使用类型表达式:

type dbSchema = SqlDataConnection<ConnectionStringName="X1", ConfigFile="App.config">
Run Code Online (Sandbox Code Playgroud)

这在编译时非常有效(我可以完全访问所有数据库类型),但它在运行时失败.我认为这是因为在控制台应用程序的bin目录中生成的配置文件被命名为其他内容,例如MyAppName.exe.config,因此App.config找不到该文件.

当然,对于使用的ASP.NET MVC类型的应用程序,web.config没有问题,因为编译和运行时配置文件名是相同的.

幸运的是,App.configbin目录中放置副本确实可以解决问题,但这是我们应该做的吗?有什么想法吗?

and*_*dri 0

我这台电脑上没有 VS2012,但这应该是您正在寻找的:

let exeConfigFile = Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly().Location) + ".config"
let defaultConfigFile = "App.config"
let configFile = if File.Exists(exeConfigFile) then exeConfigFile else defaultConfigFile

type dbSchema = SqlDataConnection<ConnectionStringName="X1", ConfigFile=configFile>
Run Code Online (Sandbox Code Playgroud)