0

感谢您抽出宝贵时间帮助我。

我有一个应用程序要添加到注册表中的启动中,代码如下:

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");

问题是,重新启动计算机后 Application.StartupPath 不再返回我的旧路径,而是返回 C:\Windows\System32\myapp.exe,因此它引发异常:在该文件夹中找不到所需的 ini.xml。我怎样才能解决这个问题?我需要一个返回真实路径的方法才能访问我的ini.xml。谢谢!

4

1 回答 1

1

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

Assembly.GetExecutingAssembly().Location

像这样:

Path.Combine(
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
    "myIniFile.ini")
于 2013-05-21T17:34:59.617 回答