.NET 替换外壳在启动期间不检索文件内容

本文关键字:检索 文件 替换 外壳 启动 NET | 更新日期: 2023-09-27 18:31:40

我写了一个应用程序,它取代了Windows资源管理器作为Kiosk目的的shell。 应用程序维护两个配置文件:一个用于应用程序目的 (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# 很好)?

.NET 替换外壳在启动期间不检索文件内容

其中之一可能适合您。 我几乎总是使用Assembly.GetEntryAssembly().Location. 不要在程序集上使用CodeBase,这可能是您可能意想不到的。

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

对于视窗应用:

Application.ExecutablePath

因为正常的方式不起作用,所以我很难说其中哪一种是肯定的。 此外,始终使用 Path.Combine(...) 将两条路径拉在一起。