.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# 很好)?
其中之一可能适合您。 我几乎总是使用Assembly.GetEntryAssembly().Location
. 不要在程序集上使用CodeBase
,这可能是您可能意想不到的。
Assembly.GetEntryAssembly().Location
AppDomain.CurrentDomain.BaseDirectory
对于视窗应用:
Application.ExecutablePath
因为正常的方式不起作用,所以我很难说其中哪一种是肯定的。 此外,始终使用 Path.Combine(...)
将两条路径拉在一起。