Динамически изменять ресурс исполняемого файла

У меня есть два исполняемых файла C #, patcher.exe и generator.exe.
Теперь у patcher.exe есть ресурс .Net config.dat, и он пуст.

Я хочу, чтобы генератор.exe мог изменить (полностью перезаписать) config.dat патчера. Это сделано для того, чтобы мы могли распространять патчеры с разной конфигурацией среди разных людей, не зная, что они на самом деле много знают о внутренней обработке или как создается config.dat.

Итак, как динамически изменить ресурс .Net файла patcher.exe с generator.exe?


person Aidiakapi    schedule 28.02.2011    source источник


Ответы (1)


Вы уверены, что редактирование встроенного ресурса во время выполнения - это то, что вам нужно? Поскольку это потребует перекомпиляции.

Судя по звукам, вы можете добиться такой гибкости конфигурации с помощью app.config, указав домен приложения, который вы хотите использовать программно во время выполнения. Этого можно добиться:

AppDomain.CurrentDomain.SetData("CONFIG_FILE", "C:\Path\To\File.config");

Или создав для пользователей настраиваемые разделы конфигурации и включив их.

Наконец, вы можете также изучить сборки Satellite с примером в MSDN, относящемся к приложению с несколькими переводами на разные языки. Здесь


Правые извинения, кажется, я неправильно понял, чего вы пытались достичь. Если я правильно понимаю, похоже, что вы хотите чего-то в соответствии с этим сообщением. Подробнее информация о методе (по общему признанию, образец не является кодом C #): в MSDN, но это дает логику. Затем вы можете использовать UpdateResource (....).

person tomahawk    schedule 28.02.2011
comment
Да, я очень уверен, что это то, что мне нужно. И я не хочу перекомпилировать исходный код, я хочу отредактировать ресурс в файле .exe. Как найти точку входа, вырезать и вставить новые данные. Если это упростит добавление нативного ресурса через ядро. Также имена в описании приведены только для ясности, но это совсем не файл конфигурации. - person Aidiakapi; 28.02.2011
comment
Хорошо, я лучше понимаю, чего вы сейчас пытаетесь достичь. Я обновил свой пост выше. - person tomahawk; 28.02.2011
comment
Ладно, посмотрю :) - person Aidiakapi; 28.02.2011