2011-12-22 89 views
4

我有後續項目結構將資源(XML)在C#DLL

 

    /build-out/MyApp.dll 
    /dependencies/ResFile.xml 
    /src/MyFile.cs 

MyFile.cs我想開我的ResFile.xml是在/依賴性目錄,閱讀它爲一些需要。所有作品都像Visual Studio中的魅力,但是當我製作dll並將它與其他應用程序(作爲外部庫)一起使用時,出現錯誤,因爲它找不到依賴項/ ResFile.xml文件。

那麼,如何將resorce文件添加到結果MyApp.dll文件?

+1

您將擁有部署在用戶的機器上的應用程序後,一個更大的問題。沒有項目目錄。一個簡單的解決方案是將.xml文件複製到.exe所在的同一目錄中,這樣就不會有問題。或者實際上將它嵌入爲一個真正的資源。項目+屬性,資源選項卡。 – 2011-12-22 19:22:51

回答

4

有關於它在計算器上幾篇文章,但一些快速的筆記和代碼...

  1. 確保您將文件標記爲下生成操作的屬性「嵌入的資源」。
  2. 我正在使用一些代碼來讀取DLL文件中的html文件,這大致是我如何將它轉換爲字符串。給你我希望的一般想法。

    foreach (string resource in Assembly.GetExecutingAssembly().GetManifestResourceNames()) 
        { 
         if (resource.EndsWith("Snippet.htm")) 
         { 
          Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource); 
          byte[] buff = new byte[s.Length]; 
          s.Read(buff, 0, buff.Length); 
    
          string snippet = Encoding.UTF8.GetString(buff); 
         } 
        }