C#.NET中的Environment.CurrentDirectory

gop*_*pal 7 c#-3.0

该属性Environment.CurrentDirectory始终返回系统目录的路径,而不是我的应用程序目录.在我同事的PC中,它返回应用程序目录.

问题是什么?我该如何解决?

以下代码对我有用

ePCRSettings = XMLParser.XmlParser.Deserialize<PCRGeneratorSettings>(string.Format("{0}\\ePCRPDFSettings.xml", AppDomain.CurrentDomain.BaseDirectory));

AppDomain.CurrentDomain.BaseDirectory - Returns the directory E:\MyApplications\.
Run Code Online (Sandbox Code Playgroud)

以下代码对我不起作用

ePCRSettings = XMLParser.XmlParser.Deserialize<PCRGeneratorSettings>(string.Format("{0}\\ePCRPDFSettings.xml", Environment.CurrentDirectory));

Environment.CurrentDirectory - Returns c:\windows\system32.
Run Code Online (Sandbox Code Playgroud)

此.dll文件可用于VB 6和ASP.NET应用程序

小智 11

设置当前目录

Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); //or set executing Assembly location path in param

Environment.CurrentDirectory //now returns your app path
Run Code Online (Sandbox Code Playgroud)


Sev*_*Sev 5

使用

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly()的位置.);


Cal*_*nus 1

我怀疑这可能与应用程序运行时的当前用户 ID 有关,例如,如果您在用户会话中运行应用程序(例如在 VS 中调试),那么这可能会返回您当前的目录,但是如果您在 IIS 下运行它,那么这可能就是它默认为系统文件夹的原因?