Добавление ресурсов (XML) в DLL в C # - PullRequest
4 голосов
/ 22 декабря 2011

Я следую структуре проекта


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

В MyFile.cs Я хочу открыть мой ResFile.xml , который находится в / зависимости *Каталог 1009 * и прочитайте его для некоторых нужд.Все работает как шарм в Visual Studio , но когда я делаю dll и использую его с другими приложениями (в качестве внешней библиотеки), я получаю сообщение об ошибке, потому что не может найти файл зависимости / ResFile.xml .

Итак, как файл resorce можно добавить к результату MyApp.dll file?

1 Ответ

4 голосов
/ 22 декабря 2011

Есть несколько статей о StackOverflow об этом, но несколько быстрых заметок и кода ...

  1. Убедитесь, что вы отметили файл как «встроенный ресурс» в свойствах в разделе «Build Action».
  2. Я использую некоторый код для чтения html-файлов из DLL, и это примерно так, как я получаю его в строку. Я надеюсь, что дает вам общую идею.

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