为什么我得到一个不同的XML文件打开行为取决于或打开sln文件?

问题描述:

好吧,我知道这个问题没有很多信息..有人可以在我解释后*改变它:为什么我得到一个不同的XML文件打开行为取决于或打开sln文件?

我的asp.net mvc项目存储在我的桌面上的一个文件夹中。当我双击sln或csproj来打开项目,然后点击Start Debuggin按钮,它一切正常。

但是,当我开始,程序和打开Visual Web开发人员,并从最近的项目,我打开同一个项目,并开始调试我得到一个读取文件错误(无法找到C:\ Program中的路径的一部分文件(x86)\微软的Visual .......“)

它在这行代码BTW。 this.nav = XElement.Load("App_Data/myfile.xml");

这显然是在寻找错误的目录导致项目文件夹在我的桌面。请记住,如果我只需双击csproj文件即可访问该项目,它的工作原理很好。

提前致谢。

您不能依赖ASP.NET应用程序中的进程的工作文件夹。你应该用代码来解决相对路径: -

this.nav = XElement.Load(HttpContext.Current.Server.MapPath("App_Data/myfile.xml")); 

但是引入的HttpContext对象可能会损坏你的代码的可测试性,如果在控制器代码。

+0

它不是,它在一个模型中 – ignaciofuentes 2009-09-04 15:22:01