2009-09-04 3 views
1

[OK]を、私は私が説明した後Someomeはそれを変更すること自由に感じ...その質問は非常に有益ではありません知っている:slnファイルを開いた場所や場所によって、別のXMLファイルのオープン動作が発生するのはなぜですか?

私のasp.net MVCプロジェクトは、私のデスクトップにフォルダに保存されています。 slnまたはcsprojをダブルクリックしてプロジェクトを開き、[デバッグ開始]ボタンを押すと、すべて正常に動作します。

しかし、私はプログラムを起動してVisual Web開発者を開き、最近のプロジェクトから同じプロジェクトを開き、デバッグを開始します。読み込みファイルエラーが発生します(C:\ Programファイル(x86の)\のMicrosoft Visual ....... ")ところで、このコード行で

その。 this.nav = XElement.Load("App_Data/myfile.xml");

それは明らかに間違ったディレクトリに探しているが、プロジェクトフォルダがデスクトップにある原因csprojファイルをダブルクリックするだけでプロジェクトにアクセスすればうまく動作することを覚えておいてください。

ありがとうございます。

答えて

0

ASP.NETアプリケーションでは、プロセスの作業フォルダに頼ることはできません。あなたは、コード内で相対パスを解決する必要があります: -

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

は、しかし、この場合、コントローラのコードでは、あなたのコードのテスト容易性を損傷することがHttpContextオブジェクトを導入します。

+0

それでは、そのモデルでは – ignaciofuentes