所以...我曾经认为,当您访问一个文件但指定没有路径的名称(在我的情况下为 CAISLog.csv)时,.NET 会期望该文件与正在运行的 .exe 位于同一路径。
这在我逐步执行解决方案(C# .NET2.* VS2K5)时有效,但是当我以正常模式运行应用程序(由 Websphere MQ 触发器监视器启动并在后台作为网络服务运行)而不是访问文件时在 C:\WINDOWS\system32 中查找 .exe 的路径。如果它很重要父任务的 .exe 与我的应用程序在几乎相同的文件夹结构/路径中
我得到一个匹配的错误:“ System.UnauthorizedAccessException:访问路径 'C:\WINDOWS\system32\CAISLog.csv' 被拒绝。 ”
我的解决方法是完全限定我的文件的位置。但是,我想了解的是“在 IO 期间仅指定文件名时,管理如何解析路径的 .NET 规则是什么?” 我觉得我错过了一些基本概念,这让我很烦恼。
编辑 - 我不确定它本身是否是 .NET 规则,但 Schmuli 似乎更清楚地解释了这个概念。我一定会在未来尝试 Rob Prouse 的建议,所以也对此 +1。
如果有人有一些重新措辞的建议,强调我并不真正关心找到我的 .exe 的路径 - 而只是不明白相对路径解析发生了什么(而且我可能仍然把我的术语搞砸了) ...