把一个窗体程序设置开机自启后,程序开机自启读取的不是我指定位置的config.xml,我指定的是读取启动程序同级目录下的config.xml,它读取的却是C盘system32里的config.xml(我并没有在c盘创建config.xml),而且我手动启动程序,程序能正确读取程序同级目录下的config.xml,求大神教我,今晚肯定是睡不着觉了。 |
|
是这样的
用System.Windows.Forms.Application.StartupPath 获取可以保证自启动时一致 |
|
会有这样的情况?没碰到过
|
|
35分 |
var filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "datas", "config.xml"); CurrentDomain.BaseDirectory具有通用性,对于 windows service和asp.net仍然适用。而不是仅用于winform。 |
45分 |
private static string _startupPath = AppDomain.CurrentDomain.BaseDirectory;
public static string GetAppPath() 用GetAppPath()方法或缺配置文件地址。 |
谢谢楼上几位的回答,我试试先。
|
|
我发现问题出在哪里了,我设置的是
//配置文件的路径 public static string ConfigPath = Environment.CurrentDirectory + “\config.xml”; //软件显示列表xml 的路径 public static string SoftListXmlPath = Environment.CurrentDirectory + “\Software.xml”; 但是自启后程序读取这两个xml的路径都变成了C:\Windows\System32 |
|
如果自启动是写进注册表会出现这样情况,改为创建快捷方式到启动目录就不会这样。
|
|
3、4楼正解,用 AppDomain.CurrentDomain.BaseDirectory来定位路径
|