2010-11-19 42 views
2

我讀使用Assembly.GetExecutingAssembly()不是在尋找正確的路徑

C#的嵌入式XML文件:

var AssemblyRef = Assembly.GetExecutingAssembly(); 
TextReader reader = new StreamReader(AssemblyRef.GetManifestResourceStream("Text.xml")); 

它已經工作了一段時間,但開始拋出錯誤。我追蹤了它正在尋找的路徑,它正在查找bin文件夾根目錄下的dll,而不是在Debug或release文件夾中。

一旦它發佈,這很好,但對於本地開發,我不能讓我的一個功能工作。

我編譯時設置爲Debug。任何幫助都會很棒。

回答

0

我改變了電話到這一點,一切都精細。

TextReader reader = new StreamReader(Assembly.GetExecutingAssembly().AssemblyRef.GetManifestResourceStream("Text.xml")); 

使呼叫一個聲明使其工作。我不知道爲什麼。

1

您有:

  • 改變大會的名稱或
  • 更改命名空間或
  • 移動的資源文件夾中的項目
+0

什麼是更快:讀取IO文件或作爲嵌入式資源的XML文件? – Arnej65 2010-11-19 13:39:53

+0

好極了!因爲它已經被加載到內存中。那麼問題是哪一個?我的評論有幫助嗎? – Aliostad 2010-11-19 13:51:34

+0

我檢查了他們全部。非他們已經改變。它就像它不是不是一個'發佈'的來源,並沒有在bin/debug中尋找。但有一段時間是。代碼基礎沒有改變。 – Arnej65 2010-11-19 14:45:55