首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fsx执行路径

Fsx执行路径
EN

Stack Overflow用户
提问于 2014-07-21 14:07:22
回答 1查看 413关注 0票数 1

我有一个在FSI/FSX中使用的c# .net库。作为.net库初始化的一部分,默认情况下,它期望并引用一个自定义配置文件(MyAppConfig.xml),该文件在使用之前加载各种内容。当在c#中使用它时,它会被复制到bin文件夹中,而应用程序默认期望它在那里,并在那里引用它,除非app.config中有一个特定的条目告诉它否则。(我应该补充一点,这一切都是按照约定完成的,而不是像NLog那样注入路径+文件名)

我在一个控制台应用程序中有一个f#源文件,它将执行这个初始化查找,但是我不知道如何使用FSI/FSX来实现这一点。

所以我的program.fs看起来就像

代码语言:javascript
复制
open System
open myApp

module Program =   

    [<EntryPoint>]
    let Main(args) =            
        myApp.Initialization.Load()  // references MyAppConfig.xml

        Console.WriteLine("do my stuff!")
        Console.ReadLine() |> ignore
        0

如果我尝试在FSI或使用FSX中执行同样的操作,我将

代码语言:javascript
复制
#r @"E:\...path to MyApp...\MyApp.dll" 
#I @"E:\...path to MyAppConfig.xml ..."

Environment.CurrentDirectory <- @"E:\...path to MyAppConfig.xml ..."

myApp.Initialization.Load() |> ignore  // fails ... can't find MyAppConfig.xml

//do my stuff

我怀疑我走的路不太对。

我希望你能给我一只牛

编辑:

因此,我设法将调试器附加到c#库,并查看它在哪里查找配置文件--结果是"c:\Program \Microsoft F#\v4.0\“( System.AppDomain.CurrentDomain.BaseDirectory),这再次表明我不太了解如何告诉FSI/FSX使用特定路径。如果我将配置文件(MyAppConfig.xml)复制到该位置,它就能正常工作。

许多thx

S

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 17:12:05

我不确定这意味着什么,但有一种可能性可能会暂时改变应用程序的基础:

代码语言:javascript
复制
let origAppBase = AppDomain.CurrentDomain.BaseDirectory
AppDomain.CurrentDomain.SetData("APPBASE", "path_to_MyAppConfig.xml")
myApp.Initialization.Load() |> ignore
AppDomain.CurrentDomain.SetData("APPBASE", origAppBase) //restore original app base
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24867164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档