:
System.IO.Directory.SetCurrentDirectory( System.AppDomain.CurrentDomain.BaseDirectory );
指定正在调试的程序的工作目录。在Visual C#中,工作目录是该应用程序的目录,该目录是默认情况下从\ debug中启动的。
http://msdn.microsoft.com/en-us/library/2kf0yb05.aspx
您还可以使用
sembly.getEntryAssembly()或sembly.getExeCutingAssembly()
检索汇编路径(),然后使用位置属性或代码库属性。
您可以自己将相对路径转变为绝对路径,这样:
if (!Path.IsPathRooted(path))
path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + path;
或将当前目录更改为可执行路径:
string exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.SetCurrentDirectory(exePath);
如果这突然开始发生,尤其是在更改项目调试设置之后,而不是通过逆转更改来解决。这可能是由损坏的.VS隐藏文件夹(在解决方案文件夹中)引起的。如果是这种情况,只需删除该文件夹修复它即可。