Как внедрить ресурсы в уже созданный исполняемый файл - PullRequest
1 голос
/ 18 октября 2010

Я работаю над приложением Windows, которое нужно будет брендировать. Клиент будет продавать это другим предприятиям, и ему потребуется индивидуальный логотип и название для каждой продажи.

Клиент не знает, как пользоваться visual studio!

Я думаю, что мне нужно написать приложение-упаковщик, чтобы добавить собственный логотип и строковые ресурсы в исполняемый файл. Я планирую использовать WPF. Но так как это критическое требование, я бы хотел сделать это в winforms, если это будет проще.

Каков наилучший способ сделать это? Любые предложения приветствуются.

Ответы [ 4 ]

4 голосов
/ 18 октября 2010

Похоже, что вы после того, как скиннинг приложений.Это не значит, что вам нужно распаковать exe и внедрить ресурсы.Вам просто нужно рассмотреть скины с самого начала проекта и создать приложение, чтобы удовлетворить ваши требования скининга.

WPF значительно упростит процесс оформления вашего приложения.Будет несколько разных способов выполнить то, что вы хотите.

Самый простой - оставить изображение логотипа свободным и сослаться на него с относительным путем из файла (ов) XAML, которые должны показать это изображение.

Вам следует заглянуть в словари ресурсов в WPF и узнать, как они помогают группировать ресурсы и поддерживать скины.http://msdn.microsoft.com/en-us/library/ms750613.aspx

Текст будет немного другим, но я не уверен, что вам нужно в тексте.Вы имеете в виду, что вам нужно локализовать строки или вам просто нужен другой текст (все в одной и той же локали) для отображения для разных клиентов?

2 голосов
/ 19 октября 2010

Одним из возможных решений (возможно, не самым простым) является использование родительского приложения, которое компилирует исходный код для генерации дочернего приложения. Вы можете сделать это с CSharpCodeProvider и CompilerParameters классами. Добавьте изображение как встроенный ресурс и получите его в дочернем приложении. Рабочая демонстрация с исходным кодом доступна по адресу Slide Show Builder .

1 голос
/ 18 октября 2010

Моим лучшим предложением для точного вопроса, который вы задали (хотя я подозреваю, что есть другой способ пересмотреть точные требования), было бы написать утилиту, которая использует ildasm для дизассемблирования сборки, затем использовать ilasm для повторной сборки и включить ваш новый.файл ресурсов.

http://msdn.microsoft.com/en-us/library/496e4ekx%28VS.71%29.aspx

0 голосов
/ 18 октября 2010

Тривиальным решением является предоставление растрового изображения вместе с EXE-файлом в виде отдельного файла.На самом деле замена встроенного ресурса в EXE требует декомпиляции с помощью ildasm.exe и повторного объединения с ilasm.exe.Ildasm.exe доступно только в Windows SDK, его можно загрузить отдельно.Возможны ошибки и небольшие шансы, что ваш клиент может сделать это правильно, вам нужно будет предоставить им, скажем, файл .bat, который делает это.

Конечно, кто заинтересован в замене логотипа, дляпо любой причине, не будет замедлено путем замены отдельного файла изображения или с помощью трюка Ildasm.exe.Поэтому нет смысла делать его более сложным, чем нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...