2011-12-22 61 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); 
         } 
        }