Application.StartupPath指向奇怪的MS目录

时间:2010-07-03 12:23:05

标签: .net visual-studio

奇怪的错误。其中一个我找不到任何现有资源来解决这个问题。

问题是,当使用Application.StartupPath时,我会指向“C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ DevServer \ 10.0”中的文件夹。当然,这会破坏所有依赖于正确文件夹(我的解决方案实际存在的文件夹)的内容。

更奇怪的是,存在一个单元测试,以确保此路径至少具有正确的根文件夹,有时它将通过,Application.StartupPath将按预期工作,然后是下一个debug,将再次指向上述文件夹。非常混乱,非常讨厌!

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

好像你有Web应用程序,这就是为什么它会旋转Web服务器,这是报告StartupPath的实际应用程序。您的单元测试可能作为控制台应用程序或类似的东西运行,导致不同的StartupPath。对于Web应用程序,您最好使用Server.MapPath来处理文件系统路径。

答案 1 :(得分:0)

对于那些稍后可能会遇到这个问题的人,并认为这可以解决您的问题,我觉得有些事情值得一提。

  1. 要在类库项目或不直接处理“视图”的项目中使用Server.MapPath(),您需要添加对System.Web的引用

    < / LI>
  2. 可悲的是,我找不到确切的帖子,但在试图找到这个问题的答案时,我遇到了另一个帖子(没有回答我的问题)提到一些替代方案(一个我没有很明白)只使用Server.MapPath仍然会导致错误。同一篇文章建议使用HttpContext.Current.Server.MapPath()