2010-02-19 27 views
3

我在描述依賴WCF應用程序的XML文件。它在服務門面構造函數運行時加載,單獨測試應用程序時效果很好。該方法我們單獨的Web測試中的應用是建立在不同的(MVC)項目的終點 - 因此,相對路徑是,我們需要加載XML文件不同。現在的問題是什麼是加載來自這兩個項目是文件的最好方法(這樣,當你單獨運行的第一個項目,它加載的文件,但後來當該DLL的第二個項目被載入它仍然可以找到XML文件) ?C#文件位置Connundrum

回答

0

我試圖「複製到輸出」沒有運氣 - 由於某種原因,我的根路徑是不是哪裏的輸出路徑是(我以前認爲的)。所以抽象掉其他開發商頭痛的任何設置此項目我這樣做:

var _assembly = System.Reflection.Assembly.GetExecutingAssembly(); 
XDocument xdoc = XDocument.Load(new StreamReader(_assembly.GetManifestResourceStream("TheNamespace.Api.TheFile.xml"))); 

哪個當然需要文件是一個嵌入式資源。

1

你可以將它複製到輸出目錄。您可以通過右鍵單擊該文件,選擇屬性並將「複製到輸出目錄」更改爲「始終複製」,從Visual Studio中執行此操作。

在運行時,你將能夠找到當前目錄下的文件中的兩個項目。

0

嘗試Server.MapPath

例如:

使用Server.Mappath(@ 「〜\ App_Data文件\ menudata.xml」)

,那麼你可以把你的文件中的任何位置相對的根目錄您的網站/ web服務。