Изменение графического интерфейса приложения Windows на основе имени файла MSI - PullRequest
0 голосов
/ 18 августа 2010

Мы разрабатываем приложение для Windows на C #.Мы хотели бы изменить графический интерфейс (фоновые изображения и другие управляющие изображения и текст) в зависимости от названия бренда.

Типичный установщик приложения будет иметь имя brandname_programname.msi.Мы должны взять фирменный знак у MSI и распределить GUI на основе этого.Обратите внимание, что мы не передаем никакие другие объекты, настройки, указывающие на различия, отличные от названий брендов в MSI.Как мы можем достичь этого результата?

Нам не нужно решение WPF, пожалуйста.

1 Ответ

4 голосов
/ 18 августа 2010

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

Я считаю, что это очень нестабильное решение, поскольку вы полностью полагаетесь на то, что ваши администраторы не переименовывают MSI-файл - что произойдет, например, если администратор изменит имя с «CompanyA_programname.msi» на просто «programname.msi», оправдывая решение с «Нет смысла иметь наше имя в имени файла - у нас есть только это».

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

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

Конечно, подход папка / zip все еще нестабилен, и вам приходится разбираться со случаем, когда таких файлов нет, но единственная точка отказа все еще отсутствует.

Исходя из моего предыдущего опыта, я настоятельно рекомендую вам создать отдельный MSI-файл для каждой марки. Таким образом вы минимизируете риск сбоя, вызванного неправильным использованием или риском злокачественных действий.

...