0

我编写了一个应用程序,将 Windows Explorer 替换为 Kiosk 的外壳。该应用程序维护两个配置文件:一个为应用程序目的使用和维护(app.config),另一个存储在另一个目录中,因此当 GUI 尝试从存储库更新时它不会被覆盖。

当应用程序在正常环境中运行时,它可以完美运行。但是,在启动过程中或切换用户时使用它时,应用程序似乎无法加载其他目录中的信息。

来自经理班

Private Shared rootCP As String
Friend Shared Sub loadConfig()

    Dim dir As New IO.DirectoryInfo(Environment.CurrentDirectory)

    Try
        Dim objReader As New System.IO.StreamReader(dir.Parent.FullName & "\local.config")
        rootCP = objReader.ReadToEnd
        objReader.Close()
    Catch Ex As Exception
        'DEBUG: console.write(ex.message)
    End Try

    dir = Nothing

End Sub

从 MainForm_Load 子

Manager.loadConfig()

另一个函数稍后尝试从 rootCP 字符串检索数据,但只有在系统启动后启动应用程序时才能访问它。有什么想法(VB.NET 或 C# 很好)?

4

1 回答 1

2

其中之一可能对您有用。我几乎总是使用Assembly.GetEntryAssembly().Location. 不要CodeBase在组件上使用,它可能是您可能没想到的。

Assembly.GetEntryAssembly().Location
AppDomain.CurrentDomain.BaseDirectory

对于 Windows 应用程序:

Application.ExecutablePath

因为正常的方法行不通,我很难说这些方法中的哪一个可以确定。此外,始终使用Path.Combine(...)将两条路径拉在一起。

于 2012-04-20T05:13:31.330 回答