应用程序.在msconfig startup中添加app后,StartupPath会改变

本文关键字:StartupPath 改变 app 添加 msconfig startup 应用程序 | 更新日期: 2023-09-27 18:14:35

感谢您花时间帮助我。

我有一个应用程序,我添加到启动注册表与代码:

RegistryKey setRunAtStartup = Registry.LocalMachine.OpenSubKey  ("SOFTWARE''Microsoft''Windows''CurrentVersion''Run", true);
        setRunAtStartup.SetValue("mls", Application.ExecutablePath.ToString());

我还有一个ini.xml文件需要和我的应用程序在同一个文件夹中,所以我这样访问它:

XmlDocument doc = new XmlDocument();
        doc.Load(Application.StartupPath.ToString() + "/ini.xml");

问题是,重启电脑后应用程序。StartupPath不再返回我的旧路径,而是返回C:'Windows'System32'myapp.exe,因此它抛出一个异常:无法在该文件夹中找到所需的ini.xml。我该如何解决这个问题?我需要一个方法,将返回真实的路径,以便访问我的ini.xml。谢谢你!

应用程序.在msconfig startup中添加app后,StartupPath会改变

不要使用当前工作目录。而不是使用:

Assembly.GetExecutingAssembly().Location

一样:

Path.Combine(
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
    "myIniFile.ini")