在C#中向DLL添加资源(XML)

时间:2011-12-22 17:26:27

标签: c# visual-studio visual-studio-2008 dll resources

我遵循项目结构


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

MyFile.cs 中,我想打开 / dependencies 目录中的 ResFile.xml 并阅读它以满足某些需求。所有的工作都像 Visual Studio 中的魅力,但当我创建 dll 并将其与其他应用程序(作为外部库)一起使用时,我收到错误,因为它无法找到< em> dependencies / ResFile.xml 文件。

那么,如何将resorce文件添加到结果 MyApp.dll 文件中?

1 个答案:

答案 0 :(得分:4)

StackOverflow上有一些关于它的文章,但有一些快速注释和代码......

  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);
            }
        }